(command.CommandList children: [ (C {<set>} {<-e>}) (C {<set>} {<-o>} {<pipefail>}) (C {<export>} {<Id.Lit_VarLike 'DOCKER_PKG='> (SQ <'github.com/docker/docker'>)}) (C {<export>} {<Id.Lit_VarLike 'SCRIPTDIR='> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<cd>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} { (DQ (braced_var_sub token: <Id.VSub_Name BASH_SOURCE> bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>}) ) ) } ) ) ) } ) (C {<pwd>}) ] ) ) ) } ) (C {<export>} {<Id.Lit_VarLike 'MAKEDIR='> (DQ ($ Id.VSub_DollarName '$SCRIPTDIR') <'/make'>)}) (C {<export>} {<Id.Lit_VarLike 'PKG_CONFIG='> (braced_var_sub token: <Id.VSub_Name PKG_CONFIG> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<pkg-config>}) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:inContainer) op: assign_op.Equal rhs: {(DQ <AssumeSoInitially>)} spids: [136] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<go>} {<env>} {<GOHOSTOS>}) ) ) } {<Id.Lit_Equals '='>} {(SQ <windows>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$FROM_DOCKERFILE'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<unset>} {<inContainer>})] spids: [167 180] ) ] ) ] spids: [141 164] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$PWD'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'/go/src/'> ($ Id.VSub_DollarName '$DOCKER_PKG'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<unset>} {<inContainer>})] spids: [193 212] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$inContainer'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (BraceGroup children: [ (C {<echo>} {(DQ <'# WARNING! I don\'t seem to be running in a Docker container.'>)}) (C {<echo>} {(DQ <'# The result of this command might be an incorrect build, and will not be'>)} ) (C {<echo>} {(DQ <'# officially supported.'>)}) (C {<echo>} {(DQ <'#'>)}) (C {<echo>} {(DQ <'# Try this instead: make all'>)}) (C {<echo>} {(DQ <'#'>)}) ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] ) ] spids: [225 238] ) ] ) (C {<echo>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEFAULT_BUNDLES) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{<binary-daemon>} {<dynbinary>} {<test-integration>} {<test-docker-py>} {<cross>}] ) } spids: [300] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERSION) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name VERSION> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'./VERSION'>} ) ] do_fork: F ) ) } ) ) } spids: [323] ) ] ) (command.Pipeline children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BUILDTIME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple words: [ {<date>} {<-u>} {<-d>} { (DQ <'@'> (braced_var_sub token: <Id.VSub_Name SOURCE_DATE_EPOCH> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}) ) } ) ) ) } {<--rfc-3339>} {<ns>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<sed>} {<-e>} {(SQ <'s/ /T/'>)}) ] negated: F ) ) } spids: [336] ) ] ) ] negated: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$DOCKER_GITCOMMIT'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GITCOMMIT) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$DOCKER_GITCOMMIT'))} spids: [392] ) ] ) ] spids: [378 389] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{<command>} {<-v>} {<git>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<Id.Lit_LBracket '['>} {<-e>} {<.git>} {<Id.Lit_RBracket ']'>}) (command.Simple words: [{<git>} {<rev-parse>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GITCOMMIT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git>} {<rev-parse>} {<--short>} {<HEAD>}) ) } spids: [433] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git>} {<status>} {<--porcelain>} {<--untracked-files> <Id.Lit_Equals '='> <no>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GITCOMMIT) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$GITCOMMIT') <-unsupported>)} spids: [471] ) ] ) (C {<echo>} {(DQ <'#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'>)}) (C {<echo>} {(DQ <'# GITCOMMIT = '> ($ Id.VSub_DollarName '$GITCOMMIT'))}) (C {<echo>} {(DQ <'# The version you are building is listed as unsupported because'>)} ) (C {<echo>} { (DQ < '# there are some files in the git repository that are in an uncommitted state.' > ) } ) (C {<echo>} { (DQ < '# Commit these changes, or add to .gitignore to remove the -unsupported from the version.' > ) } ) (C {<echo>} {(DQ <'# Here is the current list:'>)}) (C {<git>} {<status>} {<--porcelain>} {<--untracked-files> <Id.Lit_Equals '='> <no>}) (C {<echo>} {(DQ <'#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'>)}) ] spids: [445 468] ) ] ) ] spids: [397 430] ) ] else_action: [ (command.Simple words: [{<echo>} {(SQ <'error: .git directory missing and DOCKER_GITCOMMIT not specified'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [ {<echo>} {(SQ <' Please either build with the .git directory accessible, or specify the'>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [ {<echo>} {(SQ <' exact (--short) commit hash you are building using DOCKER_GITCOMMIT for'>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<echo>} {(SQ <' future accountability in diagnosing build issues. Thanks!'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$AUTO_GOPATH'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<-rf>} {<.gopath>}) (C {<mkdir>} {<-p>} {<'.gopath/src/'> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {(DQ (${ Id.VSub_Name DOCKER_PKG))}) ) ) } ) (C {<ln>} {<-sf>} {<'../../../..'>} {<'.gopath/src/'> (DQ (${ Id.VSub_Name DOCKER_PKG))}) (C {<export>} {<Id.Lit_VarLike 'GOPATH='> (DQ (${ Id.VSub_Name PWD) <'/.gopath'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<go>} {<env>} {<GOOS>}) ) ) } {<Id.Lit_Equals '='>} {(SQ <solaris>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<export>} {<Id.Lit_VarLike 'GO_VERSION='> (braced_var_sub token: <Id.VSub_Name GO_VERSION> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {(DQ <1.8.1>)} ) ) } ) (C {<export>} {<Id.Lit_VarLike 'GOPATH='> (DQ (${ Id.VSub_Name GOPATH) <':/usr/lib/gocode/'> (${ Id.VSub_Name GO_VERSION)) } ) ] spids: [656 679] ) ] ) ] spids: [591 602] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$GOPATH'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {(SQ <'error: missing GOPATH; please see https://golang.org/doc/code.html#GOPATH'>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<echo>} {(SQ <' alternatively, set AUTO_GOPATH=1'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [721 734] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{(${ Id.VSub_Name PKG_CONFIG)} {(SQ <'libsystemd >= 209'>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOCKER_BUILDTAGS) op: assign_op.PlusEqual rhs: {(DQ <' journald'>)} spids: [783] ) ] ) ] spids: [764 780] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{(${ Id.VSub_Name PKG_CONFIG)} {(SQ <libsystemd-journal>)}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOCKER_BUILDTAGS) op: assign_op.PlusEqual rhs: {(DQ <' journald journald_compat'>)} spids: [807] ) ] ) ] spids: [788 804] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<command>} {<-v>} {<gcc>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Pipeline children: [ (command.Simple words: [{<gcc>} {<-E>} {<->} {<-o>} {<'/dev/null'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_TLess '<<<'> loc: (redir_loc.Fd fd:0) arg: {(SQ <'#include <btrfs/version.h>'>)} ) ] do_fork: T ) ] negated: T ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOCKER_BUILDTAGS) op: assign_op.PlusEqual rhs: {(SQ <' btrfs_noversion'>)} spids: [863] ) ] ) ] spids: [818 860] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{<command>} {<-v>} {<gcc>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Pipeline children: [ (command.Subshell child: (command.Pipeline children: [ (C {<echo>} {<-e>} { (SQ < '#include <libdevmapper.h>\\nint main() { dm_task_deferred_remove(NULL); }' > ) } ) (command.Simple words: [ {<gcc>} {<-xc>} {<->} {<-o>} {<'/dev/null'>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<pkg-config>} {<--libs>} {<devmapper>}) ) } ] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) ) ] negated: T ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DOCKER_BUILDTAGS) op: assign_op.PlusEqual rhs: {(SQ <' libdm_no_deferred_remove'>)} spids: [938] ) ] ) ] spids: [877 935] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IAMSTATIC) op: assign_op.Equal rhs: {(SQ <true>)} spids: [950] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$DOCKER_DEBUG'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LDFLAGS) op: assign_op.Equal rhs: {(SQ <-w>)} spids: [971] ) ] ) ] spids: [955 968] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LDFLAGS_STATIC) op: assign_op.Equal rhs: {(SQ )} spids: [979] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXTLDFLAGS_STATIC) op: assign_op.Equal rhs: {(SQ <-static>)} spids: [983] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ORIG_BUILDFLAGS) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {<-tags>} {(DQ <'autogen netgo static_build '> ($ Id.VSub_DollarName '$DOCKER_BUILDTAGS'))} {<-installsuffix>} {<netgo>} ] ) } spids: [994] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBUILD_FLAG) op: assign_op.Equal rhs: {(DQ <-a>)} spids: [1020] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$DOCKER_INCREMENTAL_BINARY'))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <1>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$DOCKER_INCREMENTAL_BINARY'))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:REBUILD_FLAG) op: assign_op.Equal rhs: {(DQ <-i>)} spids: [1063] ) ] ) ] spids: [1025 1060] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ORIG_BUILDFLAGS) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{($ Id.VSub_DollarName '$REBUILD_FLAG')}] ) } spids: [1070] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BUILDFLAGS) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {($ Id.VSub_DollarName '$BUILDFLAGS')} { (DQ (braced_var_sub token: <Id.VSub_Name ORIG_BUILDFLAGS> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) ) } ] ) } spids: [1078] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name DOCKER_ENGINE_GOARCH))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <arm>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name TIMEOUT> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonEquals ':='> arg_word:{<10m>}) ) } ) ] spids: [1098 1118] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name DOCKER_ENGINE_GOARCH))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <windows>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name TIMEOUT> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonEquals ':='> arg_word:{<8m>}) ) } ) ] spids: [1129 1149] ) ] else_action: [ (C {<Id.Lit_Colon ':'>} { (braced_var_sub token: <Id.VSub_Name TIMEOUT> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonEquals ':='> arg_word:{<5m>}) ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LDFLAGS_STATIC_DOCKER) op: assign_op.Equal rhs: { (DQ <'\n'> <'\t'> ($ Id.VSub_DollarName '$LDFLAGS_STATIC') <'\n'> <'\t-extldflags '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$EXTLDFLAGS_STATIC') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> ) } spids: [1174] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-s>}) ) ) } {<Id.Lit_Equals '='>} {(SQ <FreeBSD>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<export>} {<Id.Lit_VarLike 'CC='> <clang>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LDFLAGS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$LDFLAGS') <' -extld clang'>)} spids: [1235] ) ] ) ] spids: [1188 1209] ) ] ) (command.ShFunction name: bundle body: (BraceGroup children: [ (command.Sentence child: (C {<local>} {<Id.Lit_VarLike 'bundle='> (DQ ($ Id.VSub_Number '$1'))}) terminator: <Id.Op_Semi _> ) (C {<shift>}) (C {<echo>} { (DQ <'---> Making bundle: '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName '$bundle'))}) ) <' (in '> ($ Id.VSub_DollarName '$DEST') <')'> ) } ) (C {<source>} {(DQ ($ Id.VSub_DollarName '$SCRIPTDIR') <'/make/'> ($ Id.VSub_DollarName '$bundle'))} {(DQ ($ Id.VSub_At '$@'))} ) ] ) ) (command.ShFunction name: main body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} { (DQ (braced_var_sub token: <Id.VSub_Name KEEPBUNDLE> suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:(word.Empty)) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Removing bundles/'>)}) (C {<rm>} {<-rf>} {(DQ <'bundles/*'>)}) (C {<echo>}) ] spids: [1301 1317] ) ] ) (C {<mkdir>} {<-p>} {<bundles>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<go>} {<env>} {<GOHOSTOS>}) ) ) } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(SQ <windows>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<-f>} {<'bundles/latest'>}) (C {<ln>} {<-sf>} {<.>} {<'bundles/latest'>}) ] spids: [1354 1378] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-lt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bundles) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (braced_var_sub token: <Id.VSub_Name DEFAULT_BUNDLES> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] ) } spids: [1421] ) ] ) ] spids: [1405 1418] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bundles) op: assign_op.Equal rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{($ Id.VSub_At '$@')}])} spids: [1435] ) ] ) ] ) (command.ForEach iter_name: bundle iter_words: [ { (braced_var_sub token: <Id.VSub_Name bundles> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {<export>} {<Id.Lit_VarLike 'DEST='> (DQ <'bundles/'> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName '$bundle'))}) ) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-s>}) ) ) } right: {<CYGWIN> <Id.Lit_Other '*'>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<export>} {<Id.Lit_VarLike 'DEST='> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cygpath>} {<-mw>} {(DQ ($ Id.VSub_DollarName '$DEST'))}) ) ) } ) ] spids: [1480 1500] ) ] ) (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$DEST'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ABS_DEST) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<cd>} {(DQ ($ Id.VSub_DollarName '$DEST'))}) (C {<pwd>} {<-P>}) ] ) ) ) } spids: [1531] ) ] ) (C {<bundle>} {(DQ ($ Id.VSub_DollarName '$bundle'))}) (C {<echo>}) ] ) ) ] ) ) (C {<main>} {(DQ ($ Id.VSub_At '$@'))}) ] )