=== modified file 'common.zsh' --- common.zsh 2017-12-13 00:33:30 +0000 +++ common.zsh 2017-12-12 22:50:13 +0000 @@ -203,12 +203,10 @@ # dependency tracking dep_add_file() { - (($# > 2)) || die local out out=$(sha256sum $1) || die __check_deps__+='if { test -e '${(qqq)1}$' }\n' __check_deps__+='if { pipeline -d { printf "%s\n" '${(qqq)out}$' } sha256sum -c }\n' - (($# == 2)) && setvar $2 ${out%% *} } dep_add_missing() { @@ -227,25 +225,21 @@ } dep_add_dir() { - (($# > 2)) || die [[ -d $1 ]] || die "$0: ${(qqq)1} does not exist or not a directory" local out out=$(tar -cvp -C $1 --mtime=1970-01-01 . | sha256sum -) (( ${(j.|.)pipestatus} )) \ && die "$0: Failed to checksum directory: ${(qqq)1}" __check_deps__+='if { pipeline -d { printf "%s\n" '${(qqq)out}'} fdmove 3 1 pipeline -d { tar -cvp --mtime=1970-01-01 -C '${(qqq)1}$' . } sha256sum -c /proc/self/fd/3 }\n' - (($# == 2)) && setvar $2 ${out%% *} } dep_add_dir_mtimes() { - (($# > 2)) || die [[ -d $1 ]] || die "$0: ${(qqq)1} does not exist or not a directory" local out out=$(tar -cvp -C $1 . | sha256sum -) (( ${(j.|.)pipestatus} )) \ && die "$0: Failed to checksum directory: ${(qqq)1}" __check_deps__+='if { pipeline -d { printf "%s\n" '${(qqq)out}'} fdmove 3 1 pipeline -d { tar -cvp -C '${(qqq)1}$' . } sha256sum -c /proc/self/fd/3 }\n' - (($# == 2)) && setvar $2 ${out%% *} } ifchange() { === modified file 'default.alpine-base.do' --- default.alpine-base.do 2017-12-13 00:33:30 +0000 +++ default.alpine-base.do 2017-11-30 22:12:00 +0000 @@ -1,18 +1,20 @@ #!/bin/zsh DO=$0 main() { - args build_dir fstab arch release repositories alpine_mirror - clone-depend alpine-repo-init \ - arch: release: repositories: alpine_mirror: - eval $(getvars) - local -a apk_args - apk_args=( - --root $build_dir - --arch $arch + apk_args=( ) + + clone-depend-if-changed alpine-repo-init \ + \?arch \?release \?repositories \?alpine_mirror + + apk_args+=( + --root $vars[build_dir] + --arch $vars[arch] add alpine-base ) apk.static $apk_args || die "alpine init failed" + + hash-changes } . ./common.zsh # vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4 === modified file 'default.alpine-repo-init.do' --- default.alpine-repo-init.do 2017-12-13 00:33:30 +0000 +++ default.alpine-repo-init.do 2017-12-01 00:25:40 +0000 @@ -1,32 +1,38 @@ #!/bin/zsh DO=$0 main() { - args build_dir fstab= arch! release=edge repositories=main \ - alpine_mirror=http://dl-3.alpinelinux.org/alpine + checkvars arch + defvar release edge + defvar repositories main + defvar alpine_mirror http://dl-3.alpinelinux.org/alpine + + local repo + local -a apk_args + apk_args=( ) fresh-build-dir - eval $(getvars) - - mkdir -p $build_dir/etc/apk || die "failed to set up apk" - - local repo - for repo in $=repositories; do - # APKINDEX: $alpine_mirror/$release/$repo/$arch/APKINDEX.tar.gz - print -rl - $alpine_mirror/$release/$repo \ - >> $build_dir/etc/apk/repositories \ + + mkdir -p $vars[build_dir]/etc/apk || die "failed to set up apk" + + for repo in $=vars[repositories]; do + ## Fetch APKINDEX files to see if they changed + # depend download-file %filename url=$vars[alpine_mirror]/$vars[release]/$repo/$vars[arch]/APKINDEX.tar.gz + # unset "vars[filename]" + print -rl - $vars[alpine_mirror]/$vars[release]/$repo \ + >> $vars[build_dir]/etc/apk/repositories \ || die "failed to set up apk" done - local -a apk_args - apk_args=( + apk_args+=( --update-cache - --root $build_dir - --arch $arch + --root $vars[build_dir] + --arch $vars[arch] --keys-dir /etc/apk/keys/ --initdb add alpine-keys ) apk.static $apk_args || die "alpine init failed" + hash-build-files } . ./common.zsh # vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4 === modified file 'default.download-file.do' --- default.download-file.do 2017-12-13 00:33:30 +0000 +++ default.download-file.do 2017-12-06 18:51:36 +0000 @@ -1,32 +1,25 @@ #!/bin/zsh DO=$0 main() { - zmodload -F zsh/stat b:zstat - args url! filename mtime size sha256sum - eval $(getvars) + checkvars url redo-always - - local scheme rest filename - scheme=${url%%:*} - rest=/${${${url#*:}#/}#/} - filename=${DO:h:a}/downloads/${scheme}${rest:a} - setvar filename $filename - - local -A stat - if (($+no_refetch)) && [[ -n $no_refetch ]] && \ - (($+previous[mtime] && $+previous[size] )) && [[ -e $filename ]] - then - zstat -H stat +size +mtime $filename - [[ $previous[mtime] == $stat[mtime] ]] \ - && [[ $previous[size] == $stat[size] ]] \ - && exit_unchanged + local scheme rest + + scheme=${vars[url]%%:*} + rest=/${${${vars[url]#*:}#/}#/} + vars[filename]=${DO:h:a}/downloads/${scheme}${rest:a} + + if (($+no_refetch)) && [[ -n $no_refetch ]] && [[ -e $vars[filename] ]]; then + vars[sha256sum]=$(sha256sum $vars[filename]) \ + || die "Could not compute sha256sum" + vars[sha256sum]=${${vars[sha256sum]}%% *} + exit-if-unchanged fi - wget --timestamping --force-directories --protocol-directories -P downloads $url \ - || die "Failed to fetch ${(qqq)url}" - dep_add_file $filename sha256sum - zstat -H stat +size +mtime $filename - setvar size $stat[size] - setvar mtime $stat[mtime] + wget --timestamping --force-directories --protocol-directories -P downloads $vars[url] \ + || die "Failed to fetch ${(qqq)vars[url]}" + vars[sha256sum]=$(sha256sum $vars[filename]) \ + || die "Could not compute sha256sum" + vars[sha256sum]=${${vars[sha256sum]}%% *} } . ./common.zsh # vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4 === modified file 'default.sysresccd-image-mounted.do' --- default.sysresccd-image-mounted.do 2017-12-13 00:33:30 +0000 +++ default.sysresccd-image-mounted.do 2017-12-06 19:05:05 +0000 @@ -1,11 +1,9 @@ #!/bin/zsh DO=$0 main() { - args build_dir fstab \ - url=https://sourceforge.net/projects/systemrescuecd/files/latest/download - depend download-file filename: url: - eval $(getvars) - build-dir-from-image $filename iso9660 + defvar url https://sourceforge.net/projects/systemrescuecd/files/latest/download + depend download-file %filename :url + build-dir-from-image $vars[filename] iso9660 } . ./common.zsh # vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4 === modified file 'default.sysresccd-squashfs-mounted.do' --- default.sysresccd-squashfs-mounted.do 2017-12-13 00:33:30 +0000 +++ default.sysresccd-squashfs-mounted.do 2017-12-06 19:06:15 +0000 @@ -1,10 +1,8 @@ #!/bin/zsh DO=$0 main() { - args build_dir fstab url - depend sysresccd-image-mounted build_dir:iso_dir url: - eval $(getvars) - build-dir-from-image $iso_dir/sysrcd.dat squashfs + depend sysresccd-image-mounted %build_dir=iso_dir \?url + build-dir-from-image $vars[iso_dir]/sysrcd.dat squashfs } . ./common.zsh # vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4 === modified file 'default.sysresccd-supplement-enabled.do' --- default.sysresccd-supplement-enabled.do 2017-12-13 00:33:30 +0000 +++ default.sysresccd-supplement-enabled.do 2017-12-11 22:43:53 +0000 @@ -1,21 +1,21 @@ #!/bin/zsh DO=$0 main() { - args build_dir fstab url - clone-depend sysresccd-squashfs-mounted url: - eval $(getvars) + clone-depend-if-changed sysresccd-squashfs-mounted patch_build_dir data/sysresccd-enable-supplement.patch -p1 fsapply_build_dir data/sysresccd-enable-supplement.fslist #/livemnt/boot/supplement.dat /mnt/supplement squashfs defaults 0 0 confz fstab \ - fstab=$build_dir/etc/fstab \ + fstab=$vars[build_dir]/etc/fstab \ device=/livemnt/boot/supplement.dat \ mountpoint=/mnt/supplement \ filesystem=squashfs \ opts=loop,ro \ || die "Could not update fstab" + + hash-changes } . ./common.zsh # vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4 === modified file 'default.sysresccd-supplement.do' --- default.sysresccd-supplement.do 2017-12-13 00:33:30 +0000 +++ default.sysresccd-supplement.do 2017-12-07 21:57:00 +0000 @@ -1,10 +1,7 @@ #!/bin/zsh DO=$0 main() { - args build_dir fstab fresh-build-dir - eval $(getvars) - local -a repositories local repo @@ -24,8 +21,10 @@ for repo in $repositories; do ifchange /home/ccx/bzr/$repo/.bzr/branch/last-revision - bzr branch /home/ccx/bzr/$repo/ $build_dir/bzr/$repo/ || die + bzr branch /home/ccx/bzr/$repo/ $vars[build_dir]/bzr/$repo/ || die done + + hash-build-files } . ./common.zsh # vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4 === modified file 'default.sysresccd-supplemented-iso.do' --- default.sysresccd-supplemented-iso.do 2017-12-13 00:33:30 +0000 +++ default.sysresccd-supplemented-iso.do 2017-12-11 17:32:54 +0000 @@ -1,12 +1,9 @@ #!/bin/zsh DO=$0 main() { - args fstab sha256sum \ - volid=srcd_sup - filename=$DO:h/work/$TARGET.iso - depend sysresccd-supplemented build_dir:iso_dir fstab: - fstab-mounted - eval $(getvars) + defvar volid srcd_sup + defvar filename $DO:h/work/$TARGET.iso + depend sysresccd-supplemented %build_dir=iso_dir local -a cmd cmd=( @@ -21,13 +18,15 @@ -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot - -o $filename - -volid $volid - $iso_dir + -o $vars[filename] + -volid $vars[volid] + $vars[iso_dir] ) $cmd || die "Could not make ISO image" - dep_add_file $filename sha256sum + vars[sha256sum]=$(sha256sum $vars[filename]) \ + || die "Could not compute sha256sum" + vars[sha256sum]=${${vars[sha256sum]}%% *} } . ./common.zsh # vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4 === modified file 'default.sysresccd-supplemented.do' --- default.sysresccd-supplemented.do 2017-12-13 00:33:30 +0000 +++ default.sysresccd-supplemented.do 2017-12-07 22:28:47 +0000 @@ -1,17 +1,17 @@ #!/bin/zsh DO=$0 main() { - args build_dir fstab sysrcd_dir supplement_dir - depend sysresccd-supplement-enabled build_dir:sysrcd_dir - depend sysresccd-supplement build_dir:supplement_dir - clone-depend sysresccd-image-mounted - eval $(getvars) - - mksquashfs $sysrcd_dir $build_dir/sysrcd.dat -noappend || die - (cd $build_dir && md5sum sysrcd.dat >sysrcd.md5) || die - - mksquashfs $supplement_dir $build_dir/supplement.dat -noappend || die - (cd $build_dir && md5sum supplement.dat >supplement.md5) || die + depend sysresccd-supplement-enabled %build_dir=sysrcd_dir + depend sysresccd-supplement %build_dir=supplement_dir + clone-depend-if-changed sysresccd-image-mounted + + mksquashfs $vars[sysrcd_dir] $vars[build_dir]/sysrcd.dat -noappend || die + (cd $vars[build_dir] && md5sum sysrcd.dat >sysrcd.md5) || die + + mksquashfs $vars[supplement_dir] $vars[build_dir]/supplement.dat -noappend || die + (cd $vars[build_dir] && md5sum supplement.dat >supplement.md5) || die + + hash-changes } . ./common.zsh # vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4 === added file 'default.tarball-unpacked.do' --- default.tarball-unpacked.do 1970-01-01 00:00:00 +0000 +++ default.tarball-unpacked.do 2017-11-14 19:45:25 +0000 @@ -0,0 +1,6 @@ +#!/bin/zsh +main() { + checkvars tarball +} +. ./common.zsh +# vim: fileencoding=utf8 ft=zsh noet sw=4 ts=4 sts=4 === modified file 'default.void-repo-init.do' --- default.void-repo-init.do 2017-12-13 00:33:30 +0000 +++ default.void-repo-init.do 2017-12-01 16:51:12 +0000 @@ -1,21 +1,23 @@ #!/bin/zsh DO=$0 main() { - args build_dir fstab='' repository=http://repo.voidlinux.eu/current + defvar repository http://repo.voidlinux.eu/current + + local -a xbps_args + fresh-build-dir - eval $(getvars) ifchange data/void-keys.fslist - fsapply $build_dir