(List (Com {[LIT_CHARS set]} {[LIT_CHARS -euo]} {[LIT_CHARS pipefail]} ) (If (Subshell (Pipeline (Com {[LIT_CHARS grep]} {[LIT_CHARS -r]} {[LIT_CHARS KJ_DBG]} {[LIT_CHARS src/] [LIT_OTHER "*"]} ) (Com {[LIT_CHARS egrep]} {[LIT_CHARS -v]} {[SQ ]} ) ) ) (List (Com {[LIT_CHARS echo]} {[SQ ]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (Com {[LIT_CHARS egrep]} {[LIT_CHARS -r]} {[SQ ]} {[LIT_CHARS src/] [LIT_OTHER "*"]} ) (List (Com {[LIT_CHARS echo]} {[SQ ]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS make]} {[LIT_CHARS clean]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [LIT_CHARS x][ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS status]} {[LIT_CHARS --porcelain]})]]} {[LIT_NEQUAL "!="]} {[DQ [LIT_CHARS x]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Please commit changes to git before releasing."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS .]} {[LIT_CHARS branch.conf]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS --abbrev-ref]} {[LIT_CHARS HEAD]})]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS master]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('CHANNEL', {[LIT_CHARS dev]})]) (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub IS_STABLE]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS true]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('CHANNEL', {[LIT_CHARS stable]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('CHANNEL', {[LIT_CHARS beta]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "**** Determining next build number for "][VarSub CHANNEL][LIT_CHARS " channel ****"]]} ) (= scope= flags=0 words=[] bindings=[('LAST_BUILD', {[ComSub (Com {[LIT_CHARS curl]} {[LIT_CHARS -fs]} {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //install.sandstorm.io/] [VarSub CHANNEL]})]})]) (If (DParen {A2 AS_OP_GREAT {A2 AS_OP_SLASH {A Atom NODE_ARITH_WORD {[VarSub LAST_BUILD]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1000]}}} {A Atom NODE_ARITH_WORD {[VarSub BRANCH_NUMBER]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: "][VarSub CHANNEL][LIT_CHARS " has already moved past this branch!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " I refuse to replace it with an older branch."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('BASE_BUILD', {[ArithSub {A2 AS_OP_STAR {A Atom NODE_ARITH_WORD {[VarSub BRANCH_NUMBER]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1000]}}}]})]) (= scope= flags=0 words=[] bindings=[('BUILD', {[ArithSub {A3 AS_OP_QMARK {A2 AS_OP_GREAT {A Atom NODE_ARITH_WORD {[VarSub BASE_BUILD]}} {A Atom NODE_ARITH_WORD {[VarSub LAST_BUILD]}}} {A Atom NODE_ARITH_WORD {[VarSub BASE_BUILD]}} {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub LAST_BUILD]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}}]})]) (= scope= flags=0 words=[] bindings=[('BUILD_MINOR', {[DQ [ArithSub {A2 AS_OP_PERCENT {A Atom NODE_ARITH_WORD {[VarSub BUILD]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1000]}}}]]})]) (= scope= flags=0 words=[] bindings=[('DISPLAY_VERSION', {[DQ [VarSub BRANCH_NUMBER][LIT_CHARS .][VarSub BUILD_MINOR]]})]) (= scope= flags=0 words=[] bindings=[('TAG_NAME', {[DQ [LIT_CHARS v][VarSub DISPLAY_VERSION]]})]) (= scope= flags=0 words=[] bindings=[('SIGNING_KEY_ID', {[LIT_CHARS 160D2D577518B58D94C9800B63F227499DA8CCBD]})]) (= scope= flags=0 words=[] bindings=[('EXPECTED_CHANGELOG', {[DQ [LIT_CHARS "### "][VarSub TAG_NAME][LIT_CHARS " ("][ComSub (Com {[LIT_CHARS date]} {[SQ ]})][LIT_CHARS ")"]]})]) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [ComSub (Com {[LIT_CHARS head]} {[LIT_CHARS -n]} {[LIT_CHARS 1]} {[LIT_CHARS CHANGELOG.md]})]]} {[DQ [VarSub EXPECTED_CHANGELOG]] [LIT_OTHER "*"]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Changelog not updated. First line should be:"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [VarSub EXPECTED_CHANGELOG]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('TARBALL', {[LIT_CHARS sandstorm-] [VarSub BUILD] [LIT_CHARS .tar.xz]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "**** Building build "][VarSub BUILD][LIT_CHARS " ****"]]} ) (Com {[LIT_CHARS make]} {[LIT_VAR_LIKE "BUILD="] [VarSub BUILD] =} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "**** Tagging this commit ****"]]} ) (= scope= flags=0 words=[] bindings=[('GIT_REVISION', {[DQ [ComSub (Com redirects=[(FilenameRedirectNode filename={[LIT_CHARS bundle/git-revision]} 0)])]]})]) (Com {[LIT_CHARS git]} {[LIT_CHARS tag]} {[LIT_CHARS -u]} {[VarSub SIGNING_KEY_ID]} {[DQ [VarSub TAG_NAME]]} {[DQ [VarSub GIT_REVISION]]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "Release Sandstorm "][VarSub DISPLAY_VERSION]]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS push]} {[LIT_CHARS origin]} {[DQ [VarSub TAG_NAME]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "**** Pushing build "][VarSub BUILD][LIT_CHARS " ****"]]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[VarSub TARBALL] [LIT_CHARS .sig]} {[VarSub TARBALL] [LIT_CHARS .update-sig]} {[LIT_CHARS install.sh.sig]} ) (Com {[LIT_CHARS gpg]} {[LIT_CHARS -u]} {[VarSub SIGNING_KEY_ID]} {[LIT_CHARS --digest-algo]} {[LIT_CHARS SHA512]} {[LIT_CHARS --detach-sig]} {[VarSub TARBALL]} ) (Com {[LIT_CHARS gpg]} {[LIT_CHARS -u]} {[VarSub SIGNING_KEY_ID]} {[LIT_CHARS --digest-algo]} {[LIT_CHARS SHA512]} {[LIT_CHARS --detach-sig]} {[LIT_CHARS install.sh]} ) (Com {[LIT_CHARS tmp/sandstorm/update-tool]} {[LIT_CHARS sign]} {[TildeSub ''] [LIT_CHARS /.sandstorm-update-keyring]} {[VarSub TARBALL]} < (FilenameRedirectNode filename={[VarSub TARBALL] [LIT_CHARS .update-sig]} "> 1), > ) (Com {[LIT_CHARS echo]} {[VarSub BUILD]} < (FilenameRedirectNode filename={[LIT_CHARS tmp/] [VarSub CHANNEL]} "> 1), > ) (Com {[LIT_CHARS gce-ss]} {[LIT_CHARS copy-files]} {[VarSub TARBALL]} {[LIT_CHARS fe] [LIT_OTHER ":"] [LIT_CHARS /var/www/dl.sandstorm.io]} ) (Com {[LIT_CHARS gce-ss]} {[LIT_CHARS copy-files]} {[VarSub TARBALL] [LIT_CHARS .sig]} {[LIT_CHARS fe] [LIT_OTHER ":"] [LIT_CHARS /var/www/dl.sandstorm.io]} ) (Com {[LIT_CHARS gce-ss]} {[LIT_CHARS copy-files]} {[VarSub TARBALL] [LIT_CHARS .update-sig]} {[LIT_CHARS fe] [LIT_OTHER ":"] [LIT_CHARS /var/www/dl.sandstorm.io]} ) (Com {[LIT_CHARS gce-ss]} {[LIT_CHARS copy-files]} {[LIT_CHARS tmp/] [VarSub CHANNEL]} {[LIT_CHARS fe] [LIT_OTHER ":"] [LIT_CHARS /var/www/install.sandstorm.io]} ) (Com {[LIT_CHARS gce-ss]} {[LIT_CHARS copy-files]} {[LIT_CHARS install.sh]} {[LIT_CHARS fe] [LIT_OTHER ":"] [LIT_CHARS /var/www/install.sandstorm.io]} ) (Com {[LIT_CHARS gce-ss]} {[LIT_CHARS copy-files]} {[LIT_CHARS install.sh.sig]} {[LIT_CHARS fe] [LIT_OTHER ":"] [LIT_CHARS /var/www/install.sandstorm.io]} ) (Com {[LIT_CHARS gce-ss]} {[LIT_CHARS ssh]} {[LIT_CHARS alpha]} {[LIT_CHARS --command]} {[SQ ]} ) )