[arch-releng] [RFC] [PATCH] [configs/*] Use $script_path for "source" files.
Gerardo Exequiel Pozzi
vmlinuz386 at yahoo.com.ar
Sat Aug 13 21:55:06 EDT 2011
On 08/11/2011 09:53 PM, Gerardo Exequiel Pozzi wrote:
> Allows to execute directly build.sh from any directory, using it as working dir.
>
> Signed-off-by: Gerardo Exequiel Pozzi<vmlinuz386 at yahoo.com.ar>
> ---
> configs/baseline/build.sh | 12 +++++++-----
> configs/releng/build.sh | 24 +++++++++++++-----------
> 2 files changed, 20 insertions(+), 16 deletions(-)
>
> diff --git a/configs/baseline/build.sh b/configs/baseline/build.sh
> index 0dbed2a..a07599c 100755
> --- a/configs/baseline/build.sh
> +++ b/configs/baseline/build.sh
> @@ -10,6 +10,8 @@ arch=$(uname -m)
> work_dir=work
> verbose="n"
>
> +script_path=$(readlink -f ${0%/*})
> +
> # Base installation (root-image)
> make_basefs() {
> mkarchiso ${verbose} -D "${install_dir}" -p "base" create "${work_dir}"
> @@ -19,7 +21,7 @@ make_basefs() {
> # Customize installation (root-image)
> make_customize_root_image() {
> if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
> - cp -af root-image ${work_dir}
> + cp -af ${script_path}/root-image ${work_dir}
> :> ${work_dir}/build.${FUNCNAME}
> fi
> }
> @@ -38,7 +40,7 @@ make_boot() {
> if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
> mkdir -p ${work_dir}/iso/${install_dir}/boot/${arch}
> mkinitcpio \
> - -c ./mkinitcpio.conf \
> + -c ${script_path}/mkinitcpio.conf \
> -b ${work_dir}/root-image \
> -k /boot/vmlinuz-linux \
> -g ${work_dir}/iso/${install_dir}/boot/${arch}/archiso.img
> @@ -53,7 +55,7 @@ make_syslinux() {
> mkdir -p ${work_dir}/iso/${install_dir}/boot/syslinux
> sed "s|%ARCHISO_LABEL%|${iso_label}|g;
> s|%INSTALL_DIR%|${install_dir}|g;
> - s|%ARCH%|${arch}|g" syslinux/syslinux.cfg> ${work_dir}/iso/${install_dir}/boot/syslinux/syslinux.cfg
> + s|%ARCH%|${arch}|g" ${script_path}/syslinux/syslinux.cfg> ${work_dir}/iso/${install_dir}/boot/syslinux/syslinux.cfg
> cp ${work_dir}/root-image/usr/lib/syslinux/menu.c32 ${work_dir}/iso/${install_dir}/boot/syslinux/
> :> ${work_dir}/build.${FUNCNAME}
> fi
> @@ -63,7 +65,7 @@ make_syslinux() {
> make_isolinux() {
> if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
> mkdir -p ${work_dir}/iso/isolinux
> - sed "s|%INSTALL_DIR%|${install_dir}|g" isolinux/isolinux.cfg> ${work_dir}/iso/isolinux/isolinux.cfg
> + sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg> ${work_dir}/iso/isolinux/isolinux.cfg
> cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/
> :> ${work_dir}/build.${FUNCNAME}
> fi
> @@ -72,7 +74,7 @@ make_isolinux() {
> # Process aitab
> make_aitab() {
> if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
> - sed "s|%ARCH%|${arch}|g" aitab> ${work_dir}/iso/${install_dir}/aitab
> + sed "s|%ARCH%|${arch}|g" ${script_path}/aitab> ${work_dir}/iso/${install_dir}/aitab
> :> ${work_dir}/build.${FUNCNAME}
> fi
> }
> diff --git a/configs/releng/build.sh b/configs/releng/build.sh
> index 5f1e0db..135cc03 100755
> --- a/configs/releng/build.sh
> +++ b/configs/releng/build.sh
> @@ -10,6 +10,8 @@ arch=$(uname -m)
> work_dir=work
> verbose="n"
>
> +script_path=$(readlink -f ${0%/*})
> +
> # Base installation (root-image)
> make_basefs() {
> mkarchiso ${verbose} -D "${install_dir}" -p "base" create "${work_dir}"
> @@ -18,13 +20,13 @@ make_basefs() {
>
> # Additional packages (root-image)
> make_packages() {
> - mkarchiso ${verbose} -D "${install_dir}" -p "$(grep -v ^# packages.${arch})" create "${work_dir}"
> + mkarchiso ${verbose} -D "${install_dir}" -p "$(grep -v ^# ${script_path}/packages.${arch})" create "${work_dir}"
> }
>
> # Customize installation (root-image)
> make_customize_root_image() {
> if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
> - cp -af root-image ${work_dir}
> + cp -af ${script_path}/root-image ${work_dir}
> chmod 750 ${work_dir}/root-image/etc/sudoers.d
> chmod 440 ${work_dir}/root-image/etc/sudoers.d/g_wheel
> mkdir -p ${work_dir}/root-image/etc/pacman.d
> @@ -55,7 +57,7 @@ make_boot() {
> local _dst_boot=${work_dir}/iso/${install_dir}/boot
> mkdir -p ${_dst_boot}/${arch}
> mkinitcpio \
> - -c ./mkinitcpio.conf \
> + -c ${script_path}/mkinitcpio.conf \
> -b ${_src} \
> -k /boot/vmlinuz-linux \
> -g ${_dst_boot}/${arch}/archiso.img
> @@ -74,8 +76,8 @@ make_syslinux() {
> mkdir -p ${_dst_syslinux}
> sed "s|%ARCHISO_LABEL%|${iso_label}|g;
> s|%INSTALL_DIR%|${install_dir}|g;
> - s|%ARCH%|${arch}|g" syslinux/syslinux.cfg> ${_dst_syslinux}/syslinux.cfg
> - cp syslinux/splash.png ${_dst_syslinux}
> + s|%ARCH%|${arch}|g" ${script_path}/syslinux/syslinux.cfg> ${_dst_syslinux}/syslinux.cfg
> + cp ${script_path}/syslinux/splash.png ${_dst_syslinux}
> cp ${_src_syslinux}/*.c32 ${_dst_syslinux}
> cp ${_src_syslinux}/*.com ${_dst_syslinux}
> cp ${_src_syslinux}/*.0 ${_dst_syslinux}
> @@ -91,7 +93,7 @@ make_syslinux() {
> make_isolinux() {
> if [[ ! -e ${work_dir}/build.${FUNCNAME} ]]; then
> mkdir -p ${work_dir}/iso/isolinux
> - sed "s|%INSTALL_DIR%|${install_dir}|g" isolinux/isolinux.cfg> ${work_dir}/iso/isolinux/isolinux.cfg
> + sed "s|%INSTALL_DIR%|${install_dir}|g" ${script_path}/isolinux/isolinux.cfg> ${work_dir}/iso/isolinux/isolinux.cfg
> cp ${work_dir}/root-image/usr/lib/syslinux/isolinux.bin ${work_dir}/iso/isolinux/
> :> ${work_dir}/build.${FUNCNAME}
> fi
> @@ -120,7 +122,7 @@ make_core_repo() {
> mkdir -p ${work_dir}/repo-core-any
> mkdir -p ${work_dir}/repo-core-${arch}
> pacman -Sy
> - _urls=$(pacman -Sddp $(comm -2 -3<(pacman -Sql core | sort )<(grep -v ^# core.exclude.${arch} | sort)))
> + _urls=$(pacman -Sddp $(comm -2 -3<(pacman -Sql core | sort )<(grep -v ^# ${script_path}/core.exclude.${arch} | sort)))
> for _url in ${_urls}; do
> _pkg_name=${_url##*/}
> _cached_pkg=/var/cache/pacman/pkg/${_pkg_name}
> @@ -147,7 +149,7 @@ make_core_repo() {
> make_aitab() {
> local _iso_type=${1}
> if [[ ! -e ${work_dir}/build.${FUNCNAME}_${_iso_type} ]]; then
> - sed "s|%ARCH%|${arch}|g" aitab.${_iso_type}> ${work_dir}/iso/${install_dir}/aitab
> + sed "s|%ARCH%|${arch}|g" ${script_path}/aitab.${_iso_type}> ${work_dir}/iso/${install_dir}/aitab
> :> ${work_dir}/build.${FUNCNAME}_${_iso_type}
> fi
> }
> @@ -198,9 +200,9 @@ make_dual() {
> rm -f ${work_dir}/dual/iso/${install_dir}/i686/repo-core-i686.sfs
> rm -f ${work_dir}/dual/iso/${install_dir}/x86_64/repo-core-x86_64.sfs
> fi
> - paste -d"\n"<(sed "s|%ARCH%|i686|g" aitab.${_iso_type}) \
> -<(sed "s|%ARCH%|x86_64|g" aitab.${_iso_type}) | uniq> ${work_dir}/dual/iso/${install_dir}/aitab
> - for _cfg in syslinux.dual/*.cfg; do
> + paste -d"\n"<(sed "s|%ARCH%|i686|g" ${script_path}/aitab.${_iso_type}) \
> +<(sed "s|%ARCH%|x86_64|g" ${script_path}/aitab.${_iso_type}) | uniq> ${work_dir}/dual/iso/${install_dir}/aitab
> + for _cfg in ${script_path}/syslinux.dual/*.cfg; do
> sed "s|%ARCHISO_LABEL%|${iso_label}|g;
> s|%INSTALL_DIR%|${install_dir}|g" ${_cfg}> ${work_dir}/dual/iso/${install_dir}/boot/syslinux/${_cfg##*/}
> done
I will merge this in 24 hours. Its safe, since does not change current
build workflow, just add another to do.
--
Gerardo Exequiel Pozzi
\cos^2\alpha + \sin^2\alpha = 1
More information about the arch-releng
mailing list