(command.CommandList children: [ (command.ShFunction name: usage body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USAGE) op: assign_op.Equal rhs: { (DQ <'Usage: '> ($ Id.VSub_Number '$0') <' i386|amd64 [target dir] [be|dev|<stable version>]]'> <Id.Lit_BadBackslash '\\'> <'n\n'> <Id.Lit_BadBackslash '\\'> <'n\n'> <'The first mandatory argument speciifies the CPU architecture using'> <Id.Lit_BadBackslash '\\'> <'n\n'> <'the Debian convention (e.g. i386 and amd64).'> <Id.Lit_BadBackslash '\\'> <'n\n'> <Id.Lit_BadBackslash '\\'> <'n\n'> <'The second optional argument specifies the destination'> <Id.Lit_BadBackslash '\\'> <'n\n'> <'directory. This defaults to \'debian_<architecture>\'.'> <Id.Lit_BadBackslash '\\'> <'n\n'> <Id.Lit_BadBackslash '\\'> <'n\n'> <'The third optional argument specifies whether the chroot is'> <Id.Lit_BadBackslash '\\'> <'n\n'> <'populated with a Dart checkout. Use \'be\' for bleeding edge, \'dev\''> <Id.Lit_BadBackslash '\\'> <'n\n'> <'for trunk/developer or the specific version number for a stable'> <Id.Lit_BadBackslash '\\'> <'n\n'> <'version (e.g. 1.2).'> ) } spids: [35] ) ] ) (C {<echo>} {<-e>} {($ Id.VSub_DollarName '$USAGE')}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-lt>} {<1>} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<3>} {<Id.Lit_RBracket ']'>} ) ] ) ] ) action: [(C {<usage>})] spids: [94 118] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARCH) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [126] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>}) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHROOT) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [145] ) ] ) ] spids: [130 142] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHROOT) op: assign_op.Equal rhs: {<debian_> ($ Id.VSub_DollarName '$ARCH')} spids: [151] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number '$3'))} {<Id.Lit_RBracket ']'>}) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHANNEL) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [173] ) ] ) ] spids: [158 170] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ARCH'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <i386>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ARCH'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <amd64>)} {<Id.Lit_RBracket ']'>} ) ] ) ] ) action: [(C {<usage>})] spids: [179 213] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SVN_REPRO) op: assign_op.Equal rhs: {(DQ <'http://dart.googlecode.com/svn/'>)} spids: [221] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$CHANNEL'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$CHANNEL'))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <be>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SVN_PATH) op: assign_op.Equal rhs: {(DQ <'branches/bleeding_edge/deps/all.deps'>)} spids: [262] ) ] ) ] spids: [241 259] ) (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$CHANNEL'))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <dev>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SVN_PATH) op: assign_op.Equal rhs: {(DQ <'trunk/deps/all.deps'>)} spids: [289] ) ] ) ] spids: [268 286] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SVN_PATH) op: assign_op.Equal rhs: {(DQ <'branches/'> ($ Id.VSub_DollarName '$CHANNEL') <'/deps/all.deps'>)} spids: [298] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SRC_URI) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$SVN_REPRO') ($ Id.VSub_DollarName '$SVN_PATH')} spids: [309] ) ] ) ] spids: [226 238] ) ] ) (C {<debootstrap>} {<--arch> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$ARCH')} {<--components> <Id.Lit_Equals '='> <main> <Id.Lit_Comma ','> <restricted> <Id.Lit_Comma ','> <universe> <Id.Lit_Comma ','> <multiverse> } {<wheezy>} {($ Id.VSub_DollarName '$CHROOT')} {<http> <Id.Lit_Colon ':'> <'//http.us.debian.org/debian/'>} ) (C {<chroot>} {($ Id.VSub_DollarName '$CHROOT')} {<apt-get>} {<update>}) (C {<chroot>} {($ Id.VSub_DollarName '$CHROOT')} {<apt-get>} {<-y>} {<install>} {<debhelper>} {<python>} {<git>} {<gcc>} {<sudo>} {<make>} ) (C {<chroot>} {($ Id.VSub_DollarName '$CHROOT')} {<groupadd>} {<--gid>} {<1001>} {<chrome-bot>}) (C {<chroot>} {($ Id.VSub_DollarName '$CHROOT')} {<useradd>} {<--gid>} {<1001>} {<--uid>} {<1001>} {<--create-home>} {<chrome-bot>} ) (C {<mkdir>} {($ Id.VSub_DollarName '$CHROOT') <'/b'>}) (C {<chown>} {<1001> <Id.Lit_Colon ':'> <1001>} {($ Id.VSub_DollarName '$CHROOT') <'/b'>}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 443 stdin_parts: [<'#!/bin/sh\n'> <'su -c /b/init_chroot.sh chrome-bot\n'>] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot_trampoline.sh'>} ) ] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 463 stdin_parts: [<'#!/bin/sh\n'> <'cd /b\n'>] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot.sh'>} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$SRC_URI'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 503 stdin_parts: [ < 'git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git\n' > <'export PATH=$PATH:/b/depot_tools\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot.sh'>} ) ] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 522 stdin_parts: [ <'gclient config '> ($ Id.VSub_DollarName '$SRC_URI') <'\n'> <'gclient sync\n'> <'gclient runhooks\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot.sh'>} ) ] do_fork: T ) ] spids: [474 486] ) ] ) (C {<chmod>} {<755>} {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot_trampoline.sh'>}) (C {<chown>} {<1001> <Id.Lit_Colon ':'> <1001>} {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot.sh'>} ) (C {<chmod>} {<755>} {($ Id.VSub_DollarName '$CHROOT') <'/b/init_chroot.sh'>}) (C {<chroot>} {($ Id.VSub_DollarName '$CHROOT')} {<'/bin/sh'>} {<'/b/init_chroot_trampoline.sh'>}) ] )