containers (4638B)
1 #!/usr/bin/env pthbs-build 2 #+busybox.f4ef3d511c029095beda8d21dd48f7730bec63fb09792ca951402d6620338089 3 #+zsh.4ac9e4166454e8d60c15837b7ca4938abe99db029b3fffa11b1cfd54d40ae09b 4 #+pthbs-banginstall.30ed98ef3fedfb6b25b3f58c27e845f123a22a756b37a5cd75764315bba23571 5 #+execline.c89bee1b1207461afa2d2ab9250f0940a2a6bbca3e45bdd60037049a75f4adf9 6 #+alpine-keys.4ecd9fac6efcc329a98af1b0b1318771a77eb83ac10832c6e769ebf11c14cae1 7 #+apk-tools.c38f943bab7fe83e4c5e2c1029b587565e70bcc76cf96e55232e29a13d42b5fa 8 #+xbps.f860fd980433f32edb85953f72c3d3f50872ad6f9cfb4e7a0cfa5b9529a3ae6d 9 #+container-bin-image.5f40ff6528dcff01a8f533c745347b6e6035838f63cd8cd6e5cf39989d2c66b2 10 #@git:6f1870365d2a7e410b48f3fe633d6f1b658738ba:containers 11 12 : ${JOBS:=1} 13 prefix=/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 '/versions/apk-tools.c38f943bab7fe83e4c5e2c1029b587565e70bcc76cf96e55232e29a13d42b5fa/command/apk.static' "$pkgdir/deps/command/" 47 ln -sf '/versions/xbps.f860fd980433f32edb85953f72c3d3f50872ad6f9cfb4e7a0cfa5b9529a3ae6d/command/xbps-install.static' "$pkgdir/deps/command/" 48 49 for f in '/versions/alpine-keys.4ecd9fac6efcc329a98af1b0b1318771a77eb83ac10832c6e769ebf11c14cae1'/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 '/versions/xbps.f860fd980433f32edb85953f72c3d3f50872ad6f9cfb4e7a0cfa5b9529a3ae6d'/keys/void/*; do 58 ln -sf "$f" "$pkgdir/deps/keys/void/" 59 done 60 61 test -d '/versions/container-bin-image.5f40ff6528dcff01a8f533c745347b6e6035838f63cd8cd6e5cf39989d2c66b2/container-bin-image' 62 test -f '/versions/container-bin-image.5f40ff6528dcff01a8f533c745347b6e6035838f63cd8cd6e5cf39989d2c66b2/container-bin-image/if' 63 ln -sf '/versions/container-bin-image.5f40ff6528dcff01a8f533c745347b6e6035838f63cd8cd6e5cf39989d2c66b2/container-bin-image' "$pkgdir/deps/" 64 65 cd "$pthbs_destdir/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