(command.CommandList children: [ (C {<set>} {<-o>} {<nounset>}) (C {<set>} {<-o>} {<pipefail>}) (C {<set>} {<-o>} {<errexit>}) (command.ShFunction name: log body: (BraceGroup children: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_At '$@'))}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) ] ) ) (command.ShFunction name: versioned-dest body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'branch='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git>} {<rev-parse>} {<--abbrev-ref>} {<HEAD>}) ) } ) (C {<log>} {(DQ <'branch '> ($ Id.VSub_DollarName '$branch'))}) (C {<local>} {<Id.Lit_VarLike 'hash='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<git>} {<rev-parse>} {($ Id.VSub_DollarName '$branch')}) ) } ) (C {<local>} {<Id.Lit_VarLike 'short_hash='> (braced_var_sub token: <Id.VSub_Name hash> suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 0>} length:{<Id.Lit_Digits 8>}) ) } ) (C {<log>} {(DQ <'hash '> ($ Id.VSub_DollarName '$short_hash'))}) (C {<local>} {<Id.Lit_VarLike 'dest='> (DQ <'oilshell.org/git-branch/'> ($ Id.VSub_DollarName '$branch') <'/'> ($ Id.VSub_DollarName '$short_hash') ) } ) (C {<echo>} {($ Id.VSub_DollarName '$dest')}) ] ) ) (command.ShFunction name: spec body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'user='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'host='> ($ Id.VSub_Number '$2')}) (C {<local>} {<dest>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dest) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<versioned-dest>}) ) <'/'> (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<hostname>})) <'/spec'> ) } spids: [160] ) ] ) (C {<ssh>} {($ Id.VSub_DollarName '$user') <Id.Lit_At '@'> ($ Id.VSub_DollarName '$host')} {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$dest')} ) (C {<rsync>} {<--archive>} {<--verbose>} {<--copy-links>} {<'_tmp/spec/'>} {($ Id.VSub_DollarName '$user') <Id.Lit_At '@'> ($ Id.VSub_DollarName '$host') <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dest') <'/'> } ) (C {<echo>} {(DQ <'Visit http://'> ($ Id.VSub_DollarName '$dest') <'/RESULTS.html'>)}) ] ) ) (command.ShFunction name: unit body: (BraceGroup children:[(C {<echo>} {(SQ <'Hello from publish.sh'>)})]) ) (command.ShFunction name: wild body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'user='> ($ Id.VSub_Number '$1')}) (C {<local>} {<Id.Lit_VarLike 'host='> ($ Id.VSub_Number '$2')}) (C {<local>} {<dest>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dest) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<versioned-dest>}) ) ) } spids: [282] ) ] ) (C {<ssh>} {($ Id.VSub_DollarName '$user') <Id.Lit_At '@'> ($ Id.VSub_DollarName '$host')} {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$dest')} ) (C {<rsync>} {<--archive>} {<--verbose>} {<'_release/VERSION/test/wild.wwz'>} {($ Id.VSub_DollarName '$user') <Id.Lit_At '@'> ($ Id.VSub_DollarName '$host') <Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dest') <'/'> } ) (C {<echo>} {(DQ <'Visit http://'> ($ Id.VSub_DollarName '$dest') <'/wild.wwz/'>)}) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )