(CommandList children: [ (C {(set)} {(-euo)} {(pipefail)}) (C {(shopt)} {(-s)} {(extglob)}) (C {(rm)} {(-rf)} {(bundle)}) (FuncDef name: fail body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ("make-bundle.sh: FAILED at line ") ($ VSub_Number "$1"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[86])] ) (C {(rm)} {(-rf)} {(bundle)}) (C {(exit)} {(1)}) ] spids: [76] ) spids: [72 75] ) (C {(trap)} {(SQ <"fail ${LINENO}">)} {(ERR)}) (FuncDef name: copyDep body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:FILE) op: Equal rhs: {($ VSub_Number "$1")} spids: [127] ) ] spids: [125] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:DST) op: Equal rhs: {(bundle) (DQ (BracedVarSub token: <VSub_Name FILE> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\/">) (usr) (EscapedLiteralPart token: <Lit_EscapedChar "\\/"> ) (local) } replace: {(EscapedLiteralPart token:<Lit_EscapedChar "\\/">) (usr)} do_all: False do_prefix: True do_suffix: False ) spids: [136 147] ) ) } spids: [133] ) ] spids: [131] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-e)} {(DQ ($ VSub_Name "$DST"))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [(C {(Lit_Other ":")})] spids: [-1 165] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name "$FILE"))} right: {(/etc/) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-f)} {(DQ ($ VSub_Name "$FILE"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Name "$FILE"))}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {(tmp/host.list)} spids: [220] ) ] ) ] spids: [-1 211] ) ] spids: [-1 225] ) ] spids: [175 191] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-h)} {(DQ ($ VSub_Name "$FILE"))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (C {(mkdir)} {(-p)} { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ ($ VSub_Name "$DST"))})] ) left_token: <Left_CommandSub "$("> spids: [272 278] ) } ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:LINK) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(readlink)} {(-f)} {(DQ ($ VSub_Name "$FILE"))})] ) left_token: <Left_CommandSub "$("> spids: [284 292] ) } spids: [283] ) ] spids: [281] ) (C {(ln)} {(-sf)} { (DQ (BracedVarSub token: <VSub_Name LINK> suffix_op: (PatSub pat: {(EscapedLiteralPart token:<Lit_EscapedChar "\\/">) (usr) (EscapedLiteralPart token: <Lit_EscapedChar "\\/"> ) (local) } replace: {(EscapedLiteralPart token:<Lit_EscapedChar "\\/">) (usr)} do_all: False do_prefix: True do_suffix: False ) spids: [300 311] ) ) } {(DQ ($ VSub_Name "$DST"))} ) (C {(copyDep)} {(DQ ($ VSub_Name "$LINK"))}) ] spids: [228 241] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-d)} {(DQ ($ VSub_Name "$FILE"))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [(C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$DST"))})] spids: [326 339] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-f)} {(DQ ($ VSub_Name "$FILE"))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (C {(mkdir)} {(-p)} { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ ($ VSub_Name "$DST"))})] ) left_token: <Left_CommandSub "$("> spids: [379 385] ) } ) (C {(cp)} {(DQ ($ VSub_Name "$FILE"))} {(DQ ($ VSub_Name "$DST"))}) ] spids: [355 368] ) ] spids: [-1 399] ) ] spids: [117] ) spids: [113 116] ) (FuncDef name: copyDeps body: (BraceGroup children: [ (While cond: [(Sentence child:(C {(read)} {(FILE)}) terminator:<Op_Semi ";">)] body: (DoGroup children:[(C {(copyDep)} {(DQ ($ VSub_Name "$FILE"))})] spids:[423433]) ) ] spids: [408] ) spids: [404 407] ) (ForEach iter_name: CMD iter_words: [{(zip)} {(unzip)} {(xz)} {(gpg)}] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(which)} {(DQ ($ VSub_Name "$CMD"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [469] ) ] ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ("Please install ") ($ VSub_Name "$CMD"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[484])] ) (C {(fail)} {(${ VSub_Name LINENO)}) ] spids: [-1 474] ) ] spids: [-1 495] ) ] spids: [456 497] ) spids: [446 454] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:METEOR_DEV_BUNDLE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(./find-meteor-dev-bundle.sh)})]) left_token: <Left_CommandSub "$("> spids: [501 503] ) } spids: [500] ) ] spids: [500] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NODE_BUILD_ROOT) op: Equal rhs: {(/var/tmp/sandstorm-node-build-dir)} spids: [530] ) ] spids: [530] ) (C {(echo)} {(DQ ("Building node out-of-tree"))}) (C {(rm)} {(-rf)} {(DQ ($ VSub_Name "$NODE_BUILD_ROOT"))}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$NODE_BUILD_ROOT"))}) (C {(cp)} {(-a)} {(deps/node)} {(DQ ($ VSub_Name "$NODE_BUILD_ROOT"))}) (C {(pushd)} {(DQ ($ VSub_Name "$NODE_BUILD_ROOT") (/node))}) (C {(./configure)} {(--partly-static)}) (C {(make)} {(-j) (CommandSubPart command_list: (CommandList children:[(C {(nproc)})]) left_token: <Left_CommandSub "$("> spids: [582 584] ) } ) (C {(popd)}) (C {(mkdir)} {(-p)} {(deps/node/out)}) (C {(rm)} {(-rf)} {(deps/node/out/) (Lit_Other "*")}) (C {(mv)} {(DQ ($ VSub_Name "$NODE_BUILD_ROOT") (/node/out)) (/) (Lit_Other "*")} {(deps/node/out/)}) (C {(cp)} {(-r)} {(shell-build/bundle)} {(bundle)}) (C {(rm)} {(-f)} {(bundle/README)}) (C {(cp)} {(meteor-bundle-main.js)} {(bundle/sandstorm-main.js)}) (Subshell child: (AndOr children: [ (C {(cd)} {(bundle/programs/server)}) (SimpleCommand words: [{(DQ ($ VSub_Name "$METEOR_DEV_BUNDLE") (/bin/npm))} {(install)}] more_env: [ (env_pair name: PATH val: {($ VSub_Name "$PWD") (/deps/node/out/Release) (Lit_Other ":") ($ VSub_Name "$METEOR_DEV_BUNDLE") (/lib/node_modules/.bin) (Lit_Other ":") ($ VSub_Name "$METEOR_DEV_BUNDLE") (/bin) (Lit_Other ":") ($ VSub_Name "$PATH") } spids: [670] ) ] ) ] op_id: Op_DAmp ) spids: [661 688] ) (C {(mkdir)} {(-p)} {(bundle/bin)}) (C {(cp)} {(bin/sandstorm-http-bridge)} {(bundle/bin/sandstorm-http-bridge)}) (C {(cp)} {(bin/sandstorm)} {(bundle/sandstorm)}) (C {(cp)} {(deps/node/out/Release/node)} {(bundle/bin)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OLD_BUNDLE_BASE) op: Equal rhs: {(sandstorm-171)} spids: [735] ) ] spids: [735] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OLD_BUNDLE_FILENAME) op: Equal rhs: {($ VSub_Name "$OLD_BUNDLE_BASE") (.tar.xz)} spids: [738] ) ] spids: [738] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OLD_BUNDLE_PATH) op: Equal rhs: {(hack/) ($ VSub_Name "$OLD_BUNDLE_FILENAME")} spids: [742] ) ] spids: [742] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OLD_BUNDLE_SHA256) op: Equal rhs: {(ebffd643dffeba349f139bee34e4ce33fd9b1298fafc1d6a31eb35a191059a99)} spids: [746] ) ] spids: [746] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OLD_MONGO_FILES) op: Equal rhs: { (DQ ($ VSub_Name "$OLD_BUNDLE_BASE") ("/bin/mongo ") ($ VSub_Name "$OLD_BUNDLE_BASE") (/bin/mongod) ) } spids: [749] ) ] spids: [749] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-e)} {(DQ ($ VSub_Name "$OLD_BUNDLE_PATH"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("Fetching ") ($ VSub_Name "$OLD_BUNDLE_FILENAME") (" to extract a mongo 2.6...")) } ) (C {(curl)} {(--output)} {(DQ ($ VSub_Name "$OLD_BUNDLE_PATH"))} {(https) (Lit_Other ":") (//dl.sandstorm.io/) ($ VSub_Name "$OLD_BUNDLE_FILENAME")} ) ] spids: [-1 773] ) ] spids: [-1 798] ) (SimpleCommand words: [{(sha256sum)} {(--check)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ($ VSub_Name "$OLD_BUNDLE_SHA256") (" ") ($ VSub_Name "$OLD_BUNDLE_PATH") ("\n"))} do_expansion: True here_end: EOF was_filled: True spids: [808] ) ] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:rc) op:Equal rhs:{($ VSub_QMark "$?")} spids:[818])] spids: [818] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_Name "$rc")} {(-ne)} {(0)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Old bundle did not match expected checksum. Aborting."))}) (C {(exit)} {(1)}) ] spids: [-1 834] ) ] spids: [-1 848] ) (C {(tar)} {(xf)} {($ VSub_Name "$OLD_BUNDLE_PATH")} {(--transform) (Lit_Other "=") (s/) (Lit_Other "^") (${ VSub_Name OLD_BUNDLE_BASE) (/bundle/)} {($ VSub_Name "$OLD_MONGO_FILES")} ) (C {(cp)} { (CommandSubPart command_list: (CommandList children:[(C {(which)} {(zip)} {(unzip)} {(xz)} {(gpg)})]) left_token: <Left_CommandSub "$("> spids: [874 884] ) } {(bundle/bin)} ) (C {(ln)} {(-s)} {(../sandstorm)} {(bundle/bin/spk)}) (C {(chmod)} {(u) (Lit_Other "+") (w)} {(bundle/bin/) (Lit_Other "*")}) (C {(mkdir)} {(-p)} (BracedWordTree parts: [(bundle/usr/include/) (BracedAltPart words:[{(capnp)}{(sandstorm)}])] ) ) (C {(cp)} {(src/capnp/) (KW_Bang "!")}) (Subshell child:(C {(Lit_Other "*") (test) (Lit_Other "*")}) spids:[941945]) (C {(.capnp)} {(bundle/usr/include/capnp)}) (C {(cp)} {(src/sandstorm/) (Lit_Other "*") (.capnp)} {(bundle/usr/include/sandstorm)}) (C {(cp)} {(-r)} {(node_modules)} {(bundle)}) (Pipeline children: [ (Subshell child: (AndOr children: [ (C {(ldd)} {(bundle/bin/) (Lit_Other "*")} { (CommandSubPart command_list: (CommandList children: [(C {(find)} {(bundle)} {(-name)} {(SQ <"*.node">)})] ) left_token: <Left_CommandSub "$("> spids: [980 990] ) } ) (C {(true)}) ] op_id: Op_DPipe ) spids: [974 995] ) (C {(grep)} {(-o)} {(SQ <"[[:space:]]/[^ ]*">)}) (C {(copyDeps)}) ] negated: False ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(tmp/dnstest.c)} spids:[1023]) (HereDoc op_id: Redir_DLess fd: -1 body: {("#include <sys/types.h>\n") ("#include <sys/socket.h>\n") ("#include <netdb.h>\n") ("#include <stdlib.h>\n") ("\n") ("int main() {\n") (" struct addrinfo* result;\n") (" getaddrinfo(\"example.com\", \"http\", NULL, &result);\n") (" return 0;\n") ("}\n") } do_expansion: False here_end: __EOF__ was_filled: True spids: [1027] ) ] ) (C {(gcc)} {(tmp/dnstest.c)} {(-o)} {(tmp/dnstest)}) (Pipeline children: [ (SimpleCommand words: [{(strace)} {(tmp/dnstest)}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1046])] ) (C {(grep)} {(-o)} {(SQ <"\"/[^\"]*\"">)}) (C {(tr)} {(-d)} {(SQ <"\"">)}) (C {(copyDeps)}) ] negated: False ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_DGreat fd:-1 arg_word:{(tmp/host.list)} spids:[1091]) (HereDoc op_id: Redir_DLess fd: -1 body: {("/etc/gai.conf\n") ("/etc/host.conf\n") ("/etc/hosts\n") ("/etc/nsswitch.conf\n") ("/etc/resolvconf\n") ("/etc/resolv.conf\n") ("/etc/services\n") ("/run/resolvconf\n") ("/run/systemd/resolve/resolv.conf\n") } do_expansion: False here_end: __EOF__ was_filled: True spids: [1095] ) ] ) (Pipeline children: [ (C {(cat)} {(tmp/host.list)}) (C {(grep)} {(-v)} {(SQ <"/ld[.]so[.]">)}) (C {(sort)}) (SimpleCommand words: [{(uniq)}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(bundle/host.list)} spids:[1127])] ) ] negated: False ) (C {(mkdir)} {(-p)} (BracedWordTree parts: [ (bundle/) (BracedAltPart words: [{(dev)} {(proc)} {(tmp)} {(etc)} {(etc.host)} {(run)} {(run.host)} {(var)}] ) ] ) ) (C {(touch)} (BracedWordTree parts: [(bundle/dev/) (BracedAltPart words:[{(null)}{(zero)}{(random)}{(urandom)}{(fuse)}])] ) ) (C {(mkdir)} {(-p)} {(bundle/usr/lib/locale)}) (C {(localedef)} {(--no-archive)} {(--inputfile) (Lit_Other "=") (./localedata-C)} {(--charmap) (Lit_Other "=") (UTF-8)} {(bundle/usr/lib/locale/C.UTF-8)} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-e)} {(.git)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(git)} {(rev-parse)} {(HEAD)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(bundle/git-revision)} spids: [1228] ) ] ) ] spids: [-1 1219] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(DQ (unknown))}] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(bundle/git-revision)} spids:[1241])] ) ] spids: [1232 1245] ) (SimpleCommand words: [ {(echo)} { (DQ ($ VSub_Name "$USER") ("@") ($ VSub_Name "$HOSTNAME") (" ") (CommandSubPart command_list: (CommandList children:[(C {(date)})]) left_token: <Left_CommandSub "$("> spids: [1254 1256] ) ) } ] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(bundle/buildstamp)} spids:[1259])] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(bundle/README.md)} spids:[1266]) (HereDoc op_id: Redir_DLess fd: -1 body: {("# Sandstorm Bundle\n") ("\n") ("See: http://sandstorm.io\n") ("\n") ("This is a self-contained, batteries-included Sandstorm server. It should\n") ("work on any Linux kernel whose version is 3.13 or newer. The rest of your\n") ("filesystem is not touched and may as well be empty; everything will run in\n") ("a chroot.\n") ("\n") ("This bundle is intended to be installed using the Sandstorm installer or\n") ("updater. To install Sandstorm, please run:\n") ("\n") (" curl https://install.sandstorm.io | bash\n") ("\n") ("If you have already installed Sandstorm, you can update your installation to\n") ("this version by running:\n") ("\n") (" service sandstorm update <filename>.tar.xz\n") } do_expansion: False here_end: __EOF__ was_filled: True spids: [1270] ) ] ) ] )