From d7db6adbb1f9b58e86148117d5449c18232c8a43 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Sun, 28 Dec 2014 22:25:58 -0700 Subject: [PATCH 1/8] makechrootpkg: cache dir --- makechrootpkg.in | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/makechrootpkg.in b/makechrootpkg.in index 126d1da..aef2702 100644 --- a/makechrootpkg.in +++ b/makechrootpkg.in @@ -56,6 +56,7 @@ usage() { echo 'Flags:' echo '-h This help' echo '-c Clean the chroot before building' + echo '-X Set pacman cache to pass to arch-nspawn' echo '-d Bind directory into build chroot as read-write' echo '-D Bind directory into build chroot as read-only' echo '-u Update the working copy of the chroot before building' @@ -274,12 +275,13 @@ move_products() { } # }}} -while getopts 'hcur:I:l:nCTD:d:U:' arg; do +while getopts 'hcuX:r:I:l:nCTD:d:U:' arg; do case "$arg" in c) clean_first=1 ;; D) bindmounts_ro+=("--bind-ro=$OPTARG") ;; d) bindmounts_rw+=("--bind=$OPTARG") ;; u) update_first=1 ;; + X) cache_dir="$OPTARG" ;; r) passeddir="$OPTARG" ;; I) install_pkgs+=("$OPTARG") ;; l) copy="$OPTARG" ;; @@ -302,6 +304,10 @@ chrootdir=$(readlink -e "$passeddir") [[ ! -d $chrootdir ]] && die "No chroot dir defined, or invalid path '%s'" "$passeddir" [[ ! -d $chrootdir/root ]] && die "Missing chroot dir root directory. Try using: mkarchroot %s/root base-devel" "$chrootdir" +if [ -n "$cache_dir" ]; then + cache_dir="-c $cache_dir" +fi + if [[ ${copy:0:1} = / ]]; then copydir=$copy else @@ -361,7 +367,7 @@ download_sources prepare_chroot -if arch-nspawn "$copydir" \ +if arch-nspawn $cache_dir "$copydir" \ --bind="${PWD//:/\\:}:/startdir" \ --bind="${SRCDEST//:/\\:}:/srcdest" \ "${bindmounts_ro[@]}" "${bindmounts_rw[@]}" \ -- 2.36.1