(List (Com {[LIT_CHARS set]} {[LIT_CHARS -e]} ) (= scope= flags=0 words=[] bindings=[('mkimg', {[DQ [ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub 0]]})]]})]) (FunctionDef usage [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "usage: "][VarSub mkimg][LIT_CHARS " [-d dir] [-t tag] script [script-args]"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " ie: "][VarSub mkimg][LIT_CHARS " -t someuser/debian debootstrap --variant=minbase jessie"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub mkimg][LIT_CHARS " -t someuser/ubuntu debootstrap --include=ubuntu-minimal --components=main,universe trusty"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub mkimg][LIT_CHARS " -t someuser/busybox busybox-static"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub mkimg][LIT_CHARS " -t someuser/centos:5 rinse --distribution centos-5"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub mkimg][LIT_CHARS " -t someuser/mageia:4 mageia-urpmi --version=4"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub mkimg][LIT_CHARS " -t someuser/mageia:4 mageia-urpmi --version=4 --mirror=http://somemirror/"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('scriptDir', {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [ComSub (Com {[LIT_CHARS readlink]} {[LIT_CHARS -f]} {[DQ [VarSub BASH_SOURCE]]})]]})][LIT_CHARS /mkimage]]})]) (= scope= flags=0 words=[] bindings=[('optTemp', {[ComSub (Com {[LIT_CHARS getopt]} {[LIT_CHARS --options]} {[SQ ]} {[LIT_CHARS --longoptions]} {[SQ ]} {[LIT_CHARS --name]} {[DQ [VarSub mkimg]]} {[LIT_CHARS --]} {[DQ [VarSub @]]})]})]) (Com {[LIT_CHARS eval]} {[LIT_CHARS set]} {[LIT_CHARS --]} {[DQ [VarSub optTemp]]} ) (Com {[LIT_CHARS unset]} {[LIT_CHARS optTemp]} ) (= scope= flags=0 words=[] bindings=[('dir', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('tag', {[SQ ]})]) (While (Com {[LIT_CHARS true]} ) (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS -d]}, {[LIT_CHARS --dir]}], [{[LIT_CHARS -t]}, {[LIT_CHARS --tag]}], [{[LIT_CHARS -h]}, {[LIT_CHARS --help]}], [{[LIT_CHARS --]}]] (List (= scope= flags=0 words=[] bindings=[('dir', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS shift]} {[LIT_CHARS 2]} ) ) (List (= scope= flags=0 words=[] bindings=[('tag', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS shift]} {[LIT_CHARS 2]} ) ) (Com {[LIT_CHARS usage]} ) (List (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS break]} ) ) ) ) (= scope= flags=0 words=[] bindings=[('script', {[DQ [VarSub 1]]})]) (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub script]]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS usage]} ) ) (Com {[LIT_CHARS shift]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -x]} {[DQ [VarSub scriptDir][LIT_CHARS /][VarSub script]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "error: "][VarSub script][LIT_CHARS " does not exist or is not executable"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " see "][VarSub scriptDir][LIT_CHARS " for possible scripts"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub script]]} {[LIT_CHARS .] [LIT_OTHER "*"]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "error: "][VarSub script][LIT_CHARS " is a script helper, not a script"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " see "][VarSub scriptDir][LIT_CHARS " for possible scripts"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('delDir', {[SQ ]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub dir]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (= scope= flags=0 words=[] bindings=[('dir', {[DQ [ComSub (Com {[LIT_CHARS mktemp]} {[LIT_CHARS -d]} {[VarSub TMPDIR test_op=VS_TEST_COLON_HYPHEN {[LIT_SLASH /] [LIT_CHARS var] [LIT_SLASH /] [LIT_CHARS tmp]}] [LIT_CHARS /docker-mkimage.XXXXXXXXXX]})]]})]) (= scope= flags=0 words=[] bindings=[('delDir', {[LIT_CHARS 1]})]) ) ) (= scope= flags=0 words=[] bindings=[('rootfsDir', {[DQ [VarSub dir][LIT_CHARS /rootfs]]})]) (Subshell (List (Com {[LIT_CHARS set]} {[LIT_CHARS -x]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub rootfsDir]]} ) ) ) (Com {[DQ [VarSub scriptDir][LIT_CHARS /][VarSub script]]} {[DQ [VarSub rootfsDir]]} {[DQ [VarSub @]]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub rootfsDir][LIT_CHARS /dev]]} {[DQ [VarSub rootfsDir][LIT_CHARS /proc]]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub rootfsDir][LIT_CHARS /dev]]} {[DQ [VarSub rootfsDir][LIT_CHARS /proc]]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub rootfsDir][LIT_CHARS /etc]]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub rootfsDir][LIT_CHARS /etc/resolv.conf]]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "nameserver 8.8.8.8\n"] [LIT_CHARS "nameserver 8.8.4.4\n"]} 0), > ) (= scope= flags=0 words=[] bindings=[('tarFile', {[DQ [VarSub dir][LIT_CHARS /rootfs.tar.xz]]})]) (Com {[LIT_CHARS touch]} {[DQ [VarSub tarFile]]} ) (Subshell (List (Com {[LIT_CHARS set]} {[LIT_CHARS -x]} ) (Com {[LIT_CHARS tar]} {[LIT_CHARS --numeric-owner]} {[LIT_CHARS -caf]} {[DQ [VarSub tarFile]]} {[LIT_CHARS -C]} {[DQ [VarSub rootfsDir]]} {[LIT_CHARS --transform] [LIT_DBRACKET_LIKE "="] [SQ ]} {[LIT_CHARS .]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "+ cat > '"][VarSub dir][LIT_CHARS "/Dockerfile'"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub dir][LIT_CHARS /Dockerfile]]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "FROM scratch\n"] [LIT_CHARS "ADD rootfs.tar.xz /\n"]} 0), > ) (For shell [{[LIT_CHARS /bin/bash]}, {[LIT_CHARS /usr/bin/fish]}, {[LIT_CHARS /usr/bin/zsh]}, {[LIT_CHARS /bin/sh]}]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -x]} {[DQ [VarSub rootfsDir][LIT_CHARS /][VarSub shell]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Subshell (List (Com {[LIT_CHARS set]} {[LIT_CHARS -x]} ) (Com {[LIT_CHARS echo]} {[SQ ] [DQ [VarSub shell]] [SQ ]} < (FilenameRedirectNode filename={[DQ [VarSub dir][LIT_CHARS /Dockerfile]]} >"> 1), > ) ) ) (Com {[LIT_CHARS break]} ) ) ) ) (Subshell (List (Com {[LIT_CHARS set]} {[LIT_CHARS -x]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub rootfsDir]]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub tag]]} {[LIT_DBRACKET_LIKE "]"]} ) (Subshell (List (Com {[LIT_CHARS set]} {[LIT_CHARS -x]} ) (Com {[LIT_CHARS docker]} {[LIT_CHARS build]} {[LIT_CHARS -t]} {[DQ [VarSub tag]]} {[DQ [VarSub dir]]} ) ) ) (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub delDir]]} {[LIT_DBRACKET_LIKE "]"]} ) (Subshell (List (Com {[LIT_CHARS set]} {[LIT_CHARS -x]} ) (Com {[LIT_CHARS docker]} {[LIT_CHARS build]} {[DQ [VarSub dir]]} ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub delDir]]} {[LIT_DBRACKET_LIKE "]"]} ) (Subshell (List (Com {[LIT_CHARS set]} {[LIT_CHARS -x]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub dir]]} ) ) ) ) )