containers (4719B)
1 #!/usr/bin/env pthbs-build 2 #+busybox.ee3440974794767b833fd3299226771f170d3f8601cf225cb884f0a513db8ab3 3 #+zsh.f79a20125b2f520d3719411e6f0895cf4f2e0657565c3fef07b3069436b8960f 4 #+pthbs-banginstall.7ddbf08ba8b1298841fad793d4ed7ba4979b9346155195489fc5e492ed5f0fe2 5 #+execline.1505a32c24aa5dbf362550f39283c9ff1936e717e5a82d220f8212cd9e604d8f 6 #+alpine-keys.dedc78b0b50e461d33a449adf40691698925b5eb9af8a6b69e7c0ece6b708ef4 7 #+apk-tools.e556b101ee41fc88c653ea4a9c405942ce921c65d378def15c77fd19aec3beaf 8 #+xbps.a8e42fa55614db5c7453b7513e917b19070a71abb801ef22cff7ef004e13241b 9 #+container-bin-image.0f876e2e86efb0645ccd18192741eed44985d3e770c31f19b5e31503ca4d77f8 10 #@git:6f1870365d2a7e410b48f3fe633d6f1b658738ba:containers 11 12 : ${JOBS:=1} 13 prefix=/home/ccx/versions/$pthbs_package 14 pkgdir="$pthbs_destdir/$prefix" 15 mkdir -p "$pkgdir/" 16 cd 'containers' 17 18 for d in bin sbin command; do 19 if test -d "$d"; then 20 pthbs-banginstall "$d"/* "$pkgdir" 21 fi 22 done 23 24 if test -d vim; then 25 mkdir -p "$pkgdir/vimfiles/pack/plugins/start" 26 mv -v vim "$pkgdir/vimfiles/pack/plugins/start/$pthbs_package" 27 fi 28 29 if test -d zsh-functions; then 30 mkdir -p "$pkgdir/zsh" 31 mv -v zsh-functions "$pkgdir/zsh/site-functions" 32 fi 33 mkdir "$pkgdir/data" 34 mv -v service_scripts container_template "$pkgdir/data/" 35 printf '%s\n' >"$pkgdir/zsh/site-functions/confz_containers_pthbs_init" \ 36 "typeset -g container_template_dir='$prefix/data/container_template'" \ 37 "typeset -g container_service_script_dir='$prefix/data/service_scripts'" \ 38 "typeset -g container_ns_bin_dir='$prefix/deps/container-bin-image'" \ 39 'container_ns_bin_dir=${container_ns_bin_dir:P}' \ 40 "typeset -g container_alpine_keys_dir='$prefix/deps/keys/alpine/x86_64'" \ 41 "typeset -g container_apk_executable='$prefix/deps/command/apk.static'" \ 42 "typeset -g container_void_keys_dir='$prefix/deps/keys/void'" \ 43 "typeset -g container_xbps_install_executable='$prefix/deps/command/xbps-install.static'" 44 45 mkdir -p "$pkgdir/deps/command" 46 ln -sf '/home/ccx/versions/apk-tools.e556b101ee41fc88c653ea4a9c405942ce921c65d378def15c77fd19aec3beaf/command/apk.static' "$pkgdir/deps/command/" 47 ln -sf '/home/ccx/versions/xbps.a8e42fa55614db5c7453b7513e917b19070a71abb801ef22cff7ef004e13241b/command/xbps-install.static' "$pkgdir/deps/command/" 48 49 for f in '/home/ccx/versions/alpine-keys.dedc78b0b50e461d33a449adf40691698925b5eb9af8a6b69e7c0ece6b708ef4'/keys/alpine/*/*; do 50 test -f "$f" 51 d=$(basename "${f%/*}") 52 mkdir -p "$pkgdir/deps/keys/alpine/$d" 53 ln -sf "$f" "$pkgdir/deps/keys/alpine/$d/" 54 done 55 56 mkdir -p "$pkgdir/deps/keys/void" 57 for f in '/home/ccx/versions/xbps.a8e42fa55614db5c7453b7513e917b19070a71abb801ef22cff7ef004e13241b'/keys/void/*; do 58 ln -sf "$f" "$pkgdir/deps/keys/void/" 59 done 60 61 test -d '/home/ccx/versions/container-bin-image.0f876e2e86efb0645ccd18192741eed44985d3e770c31f19b5e31503ca4d77f8/container-bin-image' 62 test -f '/home/ccx/versions/container-bin-image.0f876e2e86efb0645ccd18192741eed44985d3e770c31f19b5e31503ca4d77f8/container-bin-image/if' 63 ln -sf '/home/ccx/versions/container-bin-image.0f876e2e86efb0645ccd18192741eed44985d3e770c31f19b5e31503ca4d77f8/container-bin-image' "$pkgdir/deps/" 64 65 cd "$pthbs_destdir/home/ccx/versions/$pthbs_package" 66 find -type d -o -print | awk -F/ ' 67 BEGIN { 68 x["./command/container_sysroot_run"]=1 69 x["./command/ns_run"]=1 70 x["./command/ns_umount_script.awk"]=1 71 x["./command/pidns_run.py"]=1 72 x["./zsh/site-functions/confz_containers_init"]=1 73 x["./zsh/site-functions/confz_site_containers_init"]=1} 74 75 function r1(s) { 76 sub("^[.]/[^/]*", ".", s) 77 return s 78 } 79 function s1(repl, s) { 80 sub("^[.]/[^/]*", "./"repl, s) 81 return s 82 } 83 function link(src) { 84 x[$0]=0 85 printf "%s\t%s\n", $0, src 86 printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" 87 } 88 $1!="."{exit 1} 89 90 91 $2 == "zsh" { link($0); next } 92 $2 == "vimfiles" { link($0); next } 93 $2 == "command" { link($0); next } 94 $2 == "bin" { link(s1("command", $0)); next } 95 96 $2 == "library.so" { link($0); next } 97 $2 == "library" { link($0); next } 98 $2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } 99 $2 == "lib" && $NF ~ /\.so(|\..*)$/ { link(s1("library.so", $0)); next } 100 101 $2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } 102 103 $2 == "man" { link($0); next } 104 $2 == "info" { link($0); next } 105 $2 == "doc" { link($0); next } 106 $2 == "icons" { link($0); next } 107 $2 == "terminfo" { link($0); next } 108 $2 == "data" { link($0); next } 109 $2 == "include" { link($0); next } 110 111 { printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } 112 113 END { 114 for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } 115 for(fname in x) { 116 if(x[fname]) { 117 printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" 118 exit 3 119 } 120 } 121 }' >.install-links.new 122 mv .install-links.new .install-links