(CommandList children: [ (C {(set)} {(-ex)}) (FuncDef name: cleanup body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name POSTCLEANUP))} right: {(true)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalOr left: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name CI))} right: {(true)} ) right: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name FORCE))} right: {(true)} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (ForEach iter_name: mp iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(mount)}) (C {(grep)} {(rkt)}) (C {(awk)} {(SQ <'{print $3}'>)}) (C {(tac)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [80 100] ) } ] do_arg_iter: False body: (DoGroup children: [(C {(sudo)} {(umount)} {(DQ (${ VSub_Name mp))})] spids: [103 117] ) spids: [79 101] ) (ForEach iter_name: link iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(ip)} {(link)}) (C {(grep)} {(rkt)}) (C {(cut)} {(-d) (SQ <':'>)} {(-f2)}) (C {(cut)} {(-d) (SQ <'@'>)} {(-f1)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [127 159] ) } ] do_arg_iter: False body: (DoGroup children: [ (C {(sudo)} {(ip)} {(link)} {(del)} {(DQ (${ VSub_Name link))}) ] spids: [162 180] ) spids: [126 160] ) (C {(sudo)} {(rm)} {(-rf)} {(/var/lib/cni/networks/) (Lit_Other '*')}) ] spids: [-1 71] ) ] spids: [-1 193] ) (C {(sudo)} {(rm)} {(-rf)} {(DQ (${ VSub_Name BUILD_DIR))}) ] spids: [-1 39] ) ] spids: [-1 209] ) ] spids: [19] ) spids: [15 18] ) (FuncDef name: ciSkip body: (BraceGroup children: [ (C {(cat)} {(last-commit)}) (C {(echo)}) (C {(echo)} {(DQ ('Build skipped as requested in the last commit.'))}) (C {(exit)} {(0)}) ] spids: [221] ) spids: [217 220] ) (FuncDef name: getBranchingPoint body: (BraceGroup children: [ (Pipeline children: [ (C {(diff)} {(--old-line-format) (Lit_Other '=') (SQ )} {(--new-line-format) (Lit_Other '=') (SQ )} { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(rev-list)} {(--first-parent)} { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Number '$1')} ) spids: [284 288] ) ) } ) ] ) left_token: <Left_ProcSubIn '<('> spids: [276 290] ) } { (CommandSubPart command_list: (CommandList children: [ (C {(git)} {(rev-list)} {(--first-parent)} { (DQ (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Number '$2')} ) spids: [302 306] ) ) } ) ] ) left_token: <Left_ProcSubIn '<('> spids: [294 308] ) } ) (C {(head)} {(-1)}) ] negated: False ) ] spids: [259] ) spids: [255 258] ) (FuncDef name: semaphoreCIConfiguration body: (BraceGroup children: [ (AndOr children:[(C {(git)} {(fetch)})(C {(true)})] op_id:Op_DPipe) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BRANCHING_POINT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(getBranchingPoint)} {(HEAD)} {(origin/master)})] ) left_token: <Left_CommandSub '$('> spids: [351 357] ) } spids: [350] ) ] spids: [350] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRC_CHANGES) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(git)} {(diff-tree)} {(--no-commit-id)} {(--name-only)} {(-r)} {(HEAD..) (${ VSub_Name BRANCHING_POINT)} ) (C {(grep)} {(-cEv)} {(${ VSub_Name DOC_CHANGE_PATTERN)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [361 386] ) } spids: [360] ) ] spids: [360] ) (C {(true)}) ] op_id: Op_DPipe ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DOC_CHANGES) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(git)} {(diff-tree)} {(--no-commit-id)} {(--name-only)} {(-r)} {(HEAD..) (${ VSub_Name BRANCHING_POINT)} ) (C {(grep)} {(-cE)} {(${ VSub_Name DOC_CHANGE_PATTERN)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [394 419] ) } spids: [393] ) ] spids: [393] ) (C {(true)}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(/opt/change-go-version.sh)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(.)} {(/opt/change-go-version.sh)}) (C {(change-go-version)} {(1.7)}) (C {(export)} {(Lit_VarLike 'CC=') (gcc-5)}) ] spids: [-1 442] ) ] spids: [-1 467] ) ] spids: [326] ) spids: [322 325] ) (FuncDef name: checkFlavorValue body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FLAVORS) op: Equal rhs: {(DQ ('coreos host kvm none src fly'))} spids: [479] ) ] spids: [479] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name RKT_STAGE1_USR_FROM))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(set)} {(-)}) (C {(echo)} {(DQ ('Flavor is not set'))}) (C {(exit)} {(1)})] spids: [-1 500] ) ] spids: [-1 520] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ (${ VSub_Name FLAVORS))} right: {(DQ (${ VSub_Name RKT_STAGE1_USR_FROM))} ) ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (C {(set)} {(-)}) (C {(echo)} {(DQ ('Unknown flavor: ') (${ VSub_Name RKT_STAGE1_USR_FROM))}) (C {(echo)} {(DQ ('Available flavors: ') (${ VSub_Name FLAVORS))}) (C {(exit)} {(1)}) ] spids: [-1 546] ) ] spids: [-1 579] ) ] spids: [476] ) spids: [472 475] ) (FuncDef name: parseParameters body: (BraceGroup children: [ (While cond: [ (Sentence child: (C {(getopts)} {(DQ ('f:s:r:cxujdv'))} {(option)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {(${ VSub_Name option)} arms: [ (case_arm pat_list: [{(f)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RKT_STAGE1_USR_FROM) op: Equal rhs: {(DQ (${ VSub_Name OPTARG))} spids: [621] ) ] spids: [621] ) ] spids: [617 618 629 -1] ) (case_arm pat_list: [{(s)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$RKT_STAGE1_USR_FROM')} right: {(DQ (src))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RKT_STAGE1_SYSTEMD_VER) op: Equal rhs: {(DQ (${ VSub_Name OPTARG))} spids: [654] ) ] spids: [654] ) ] spids: [-1 651] ) ] else_action: [ (C {(echo)} { (DQ ('Only ') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (src) (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (' flavor requires systemd version') ) } ) ] spids: [662 676] ) ] spids: [632 633 679 -1] ) (case_arm pat_list: [{(r)}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name '$RKT_STAGE1_USR_FROM')} right: {(DQ (src))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RKT_STAGE1_SYSTEMD_REV) op: Equal rhs: {(DQ (${ VSub_Name OPTARG))} spids: [704] ) ] spids: [704] ) ] spids: [-1 701] ) ] else_action: [ (C {(echo)} { (DQ ('Only ') (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (src) (EscapedLiteralPart token:<Lit_EscapedChar '\\`'>) (' flavor requires systemd revision') ) } ) ] spids: [712 726] ) ] spids: [682 683 729 -1] ) (case_arm pat_list: [{(x)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FORCE) op: Equal rhs: {(true)} spids: [736] ) ] spids: [736] ) ] spids: [732 733 740 -1] ) (case_arm pat_list: [{(u)}] action: [(C {(set)} {(-)}) (C {(usage)}) (C {(exit)} {(0)})] spids: [743 744 760 -1] ) (case_arm pat_list: [{(c)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PRECLEANUP) op: Equal rhs: {(true)} spids: [767] ) ] spids: [767] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:POSTCLEANUP) op: Equal rhs: {(true)} spids: [771] ) ] spids: [771] ) ] spids: [763 764 775 -1] ) (case_arm pat_list: [{(j)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:JUSTBUILD) op: Equal rhs: {(true)} spids: [782] ) ] spids: [782] ) ] spids: [778 779 786 -1] ) (case_arm pat_list: [{(d)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIRTYBUILD) op: Equal rhs: {(true)} spids: [793] ) ] spids: [793] ) ] spids: [789 790 797 -1] ) (case_arm pat_list: [{(v)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VERBOSITY) op: Equal rhs: {(DQ ('V=3'))} spids: [804] ) ] spids: [804] ) ] spids: [800 801 810 -1] ) (case_arm pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\?'>)}] action: [ (C {(set)} {(-)}) (C {(echo)} {(DQ ('Invalid parameter -') (${ VSub_Name OPTARG))}) (C {(usage)}) (C {(exit)} {(1)}) ] spids: [813 814 840 -1] ) ] spids: [608 614 843] ) ] spids: [605 846] ) ) (C {(checkFlavorValue)}) ] spids: [591] ) spids: [587 590] ) (FuncDef name: configure body: (BraceGroup children: [ (Case to_match: {(DQ (${ VSub_Name RKT_STAGE1_USR_FROM))} arms: [ (case_arm pat_list: [{(coreos)} {(kvm)} {(fly)}] action: [ (C {(./configure)} {(--with-stage1-flavors) (Lit_Other '=') (DQ (${ VSub_Name RKT_STAGE1_USR_FROM))} {(--with-stage1-default-flavor) (Lit_Other '=') (DQ (${ VSub_Name RKT_STAGE1_USR_FROM))} {(--enable-functional-tests)} {(--enable-tpm) (Lit_Other '=') (auto)} {(--enable-insecure-go)} ) ] spids: [875 880 916 -1] ) (case_arm pat_list: [{(host)}] action: [ (C {(./configure)} {(--with-stage1-flavors) (Lit_Other '=') (host)} {(--with-default-stage1-flavor) (Lit_Other '=') (host)} {(--enable-functional-tests) (Lit_Other '=') (auto)} {(--enable-tpm) (Lit_Other '=') (auto)} {(--enable-insecure-go)} ) ] spids: [919 920 950 -1] ) (case_arm pat_list: [{(src)}] action: [ (C {(./configure)} {(--with-stage1-flavors) (Lit_Other '=') (DQ (${ VSub_Name RKT_STAGE1_USR_FROM))} {(--with-stage1-default-flavor) (Lit_Other '=') (DQ (${ VSub_Name RKT_STAGE1_USR_FROM))} {(--with-stage1-systemd-version) (Lit_Other '=') (DQ (BracedVarSub token: <VSub_Name RKT_STAGE1_SYSTEMD_VER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(v999)}) spids: [982 986] ) ) } {(--with-stage1-systemd-revision) (Lit_Other '=') (DQ (BracedVarSub token: <VSub_Name RKT_STAGE1_SYSTEMD_REV> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(master)}) spids: [994 998] ) ) } {(--enable-functional-tests)} {(--enable-tpm) (Lit_Other '=') (auto)} {(--enable-insecure-go)} ) ] spids: [953 954 1014 -1] ) (case_arm pat_list: [{(none)}] action: [ (C {(./configure)} {(--with-stage1-default-name) (Lit_Other '=') (DQ (example.com/some-stage1-for-rkt)) } {(--with-stage1-default-version) (Lit_Other '=') (DQ (0.0.1))} {(--enable-tpm) (Lit_Other '=') (auto)} {(--enable-insecure-go)} ) ] spids: [1017 1018 1054 -1] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(echo)} {(DQ ('Unknown flavor: ') (${ VSub_Name RKT_STAGE1_USR_FROM))}) (C {(exit)} {(1)}) ] spids: [1057 1058 1076 -1] ) ] spids: [864 872 1079] ) ] spids: [861] ) spids: [857 860] ) (FuncDef name: build body: (BraceGroup children: [ (C {(./autogen.sh)}) (C {(configure)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CORES) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(grep)} {(-c)} {(Lit_Other '^') (processor)} {(/proc/cpuinfo)}) ] ) left_token: <Left_CommandSub '$('> spids: [1103 1112] ) } spids: [1102] ) ] spids: [1102] ) (C {(echo)} {(DQ ('Running make with ') (${ VSub_Name CORES) (' threads'))}) (C {(make)} {(DQ (-j) (${ VSub_Name CORES))} {(${ VSub_Name VERBOSITY)}) (C {(make)} {(manpages)} {(bash-completion)}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name PRECLEANUP)} right: {(true)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-rf)} { (DQ (${ VSub_Name BUILD_DIR) (/tmp/usr_from_) (${ VSub_Name RKT_STAGE1_USR_FROM) ) } ) ] spids: [-1 1163] ) ] spids: [-1 1181] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(${ VSub_Name JUSTBUILD)} right: {(true)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(make)} {(${ VSub_Name VERBOSITY)} {(check)}) (C {(make)} {(DQ (-j) (${ VSub_Name CORES))} {(clean)}) ] spids: [-1 1199] ) ] spids: [-1 1223] ) ] spids: [1091] ) spids: [1087 1090] ) (FuncDef name: buildFolder body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name RKT_STAGE1_USR_FROM))} right: {(DQ (src))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:POSTFIX) op: Equal rhs: {(DQ (-) (${ VSub_Name RKT_STAGE1_SYSTEMD_VER))} spids: [1260] ) ] spids: [1260] ) ] spids: [-1 1257] ) ] spids: [-1 1269] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BUILD_DIR) op: Equal rhs: {(DQ (build-rkt-) (${ VSub_Name RKT_STAGE1_USR_FROM) (${ VSub_Name POSTFIX))} spids: [1272] ) ] spids: [1272] ) ] spids: [1235] ) spids: [1231 1234] ) (FuncDef name: detectChanges body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:HEAD) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(git)} {(rev-parse)} {(HEAD)})]) left_token: <Left_Backtick '`'> spids: [1300 1306] ) } spids: [1299] ) ] spids: [1299] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MASTER) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(git)} {(rev-parse)} {(origin/master)})] ) left_token: <Left_Backtick '`'> spids: [1310 1316] ) } spids: [1309] ) ] spids: [1309] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name HEAD)} right: {(${ VSub_Name MASTER)} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRC_CHANGES) op: Equal rhs: {(1)} spids: [1339] ) ] spids: [1339] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DOC_CHANGES) op: Equal rhs: {(1)} spids: [1343] ) ] spids: [1343] ) ] spids: [-1 1336] ) (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolBinary op_id: BoolBinary_eq left: {(${ VSub_Name SRC_CHANGES)} right: {(0)} ) right: (BoolBinary op_id: BoolBinary_eq left: {(${ VSub_Name DOC_CHANGES)} right: {(0)} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('No changes detected and HEAD is not origin/master'))}) (C {(exit)} {(0)}) ] spids: [1347 1372] ) ] spids: [-1 1387] ) ] spids: [1296] ) spids: [1292 1295] ) (FuncDef name: copyCode body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(whereis)} {(-b)} {(rsync)}) (C {(awk)} {(SQ <'{print $2}'>)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [1406 1420] ) } right: {(DQ )} ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rsync)} {(-aq)} {(../)} {(${ VSub_Name BUILD_DIR)} {(--exclude) (Lit_Other '=') (DQ ('.git*'))} {(--exclude) (Lit_Other '=') (builds)} {(--exclude-from) (Lit_Other '=') (../.gitignore)} ) ] spids: [-1 1430] ) ] else_action: [ (C {(echo)} { (DQ ('Cannot find ') (CommandSubPart command_list: (CommandList children:[(C {(rsync)})]) left_token: <Left_Backtick '`'> spids: [1465 1467] ) (', which is required by this shell script') ) } ) (C {(exit)} {(1)}) ] spids: [1458 1477] ) ] spids: [1399] ) spids: [1395 1398] ) (FuncDef name: setCodeInBuildEnv body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(${ VSub_Name DIRTYBUILD)} right: {(SQ )} ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(detectChanges)})] spids: [-1 1508] ) ] spids: [-1 1514] ) (C {(copyCode)}) (C {(pushd)} {(DQ (${ VSub_Name BUILD_DIR))}) ] spids: [1489] ) spids: [1485 1488] ) (FuncDef name: usage body: (BraceGroup children: [ (C {(echo)} {(DQ ('build-and-run-tests.sh usage:'))}) (C {(echo)} {(-e)} {(DQ (-c) (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) (Cleanup))}) (C {(echo)} {(-e)} { (DQ (-d) (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) ('Use unsaved changes for build') ) } ) (C {(echo)} {(-e)} {(DQ (-f) (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) ('Select flavor'))} ) (C {(echo)} {(-e)} { (DQ (-j) (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) ("Don't run tests after build") ) } ) (C {(echo)} {(-e)} {(DQ (-s) (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) ('Systemd version'))} ) (C {(echo)} {(-e)} {(DQ (-r) (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) ('Systemd revision'))} ) (C {(echo)} {(-e)} {(DQ (-u) (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) ('Show this message'))} ) (C {(echo)} {(-e)} { (DQ (-v) (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) ('Run make with verbose flag') ) } ) (C {(echo)} {(-e)} { (DQ (-x) (EscapedLiteralPart token:<Lit_EscapedChar '\\t'>) ("Use with '-c' to force cleanup on non-CI systems") ) } ) ] spids: [1538] ) spids: [1534 1537] ) (FuncDef name: prepareBuildEnv body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ (builds/) (${ VSub_Name BUILD_DIR))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(sudo)} {(rm)} {(-rf)} {(DQ (builds/) (${ VSub_Name BUILD_DIR))})] spids: [-1 1679] ) ] spids: [-1 1696] ) (C {(mkdir)} {(-p)} {(builds)}) ] spids: [1656] ) spids: [1652 1655] ) (FuncDef name: docsScan body: (BraceGroup children:[(C {(Lit_Other ':')})] spids:[1715]) spids: [1711 1714] ) (FuncDef name: main body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(Sentence child:(C {(test)} {(-e)} {(ci-skip)}) terminator:<Op_Semi ';'>)] action: [(C {(ciSkip)})] spids: [-1 1764] ) ] spids: [-1 1770] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:SRC_CHANGES) op:Equal rhs:{(1)} spids:[1774])] spids: [1774] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DOC_CHANGES) op:Equal rhs:{(1)} spids:[1781])] spids: [1781] ) (C {(parseParameters)} {(DQ (${ VSub_At '@'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DOC_CHANGE_PATTERN) op: Equal rhs: { (DQ (' -e ^Documentation/ ') (' -e ^dist/ ') (' -e ^logos/ ') (' -e ^(MAINTAINERS|LICENSE|DCO)') (Lit_Other '$') (' ') (' -e ') (EscapedLiteralPart token:<Lit_EscapedChar '\\.'>) (md) (Lit_Other '$') (' -e ') (EscapedLiteralPart token:<Lit_EscapedChar '\\.'>) ('(jpeg|jpg|png|svg)') (Lit_Other '$') (' ') ) } spids: [1799] ) ] spids: [1799] ) (C {(buildFolder)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (BracedVarSub token: <VSub_Name SEMAPHORE> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )}) spids: [1840 1843] ) ) } {(Lit_Other '=') (Lit_Other '=')} {(true)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(semaphoreCIConfiguration)})] spids: [-1 1855] ) ] spids: [-1 1861] ) (C {(prepareBuildEnv)}) (C {(cd)} {(builds)}) (C {(setCodeInBuildEnv)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name SRC_CHANGES)} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(build)})] spids: [-1 1892] ) ] spids: [-1 1898] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(${ VSub_Name DOC_CHANGES)} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(docsScan)})] spids: [-1 1916] ) ] spids: [-1 1922] ) (C {(cleanup)}) ] spids: [1747] ) spids: [1743 1746] ) (C {(main)} {(DQ (${ VSub_At '@'))}) ] )