(command.CommandList children: [ (command.ShFunction name: usage body: (command.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_Other '\\') ('n\n') (Id.Lit_Other '\\') ('n\n') ('The first mandatory argument speciifies the CPU architecture using') (Id.Lit_Other '\\') ('n\n') ('the Debian convention (e.g. i386 and amd64).') (Id.Lit_Other '\\') ('n\n') (Id.Lit_Other '\\') ('n\n') ('The second optional argument specifies the destination') (Id.Lit_Other '\\') ('n\n') ("directory. This defaults to 'debian_<architecture>'.") (Id.Lit_Other '\\') ('n\n') (Id.Lit_Other '\\') ('n\n') ('The third optional argument specifies whether the chroot is') (Id.Lit_Other '\\') ('n\n') ("populated with a Dart checkout. Use 'be' for bleeding edge, 'dev'") (Id.Lit_Other '\\') ('n\n') ('for trunk/developer or the specific version number for a stable') (Id.Lit_Other '\\') ('n\n') ('version (e.g. 1.2).') ) } spids: [35] ) ] ) (C {(echo)} {(-e)} {($ Id.VSub_DollarName '$USAGE')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:81) arg_word: {(1)} ) ] ) ) (command.If arms: [ (if_arm cond: [ (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: [ (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: [ (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: [ (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: [ (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$CHANNEL'))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.If arms: [ (if_arm cond: [ (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: [ (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_Other ':') (//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_Other ':') (1001)} {($ Id.VSub_DollarName '$CHROOT') (/b)}) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:431) fd: -1 here_begin: {(EOF)} here_end_span_id: 443 stdin_parts: [('#!/bin/sh\n') ('su -c /b/init_chroot.sh chrome-bot\n')] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:435) fd: -1 arg_word: {($ Id.VSub_DollarName '$CHROOT') (/b/init_chroot_trampoline.sh)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:450) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:453))} here_end_span_id: 463 stdin_parts: [('#!/bin/sh\n') ('cd /b\n')] ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:456) fd: -1 arg_word: {($ Id.VSub_DollarName '$CHROOT') (/b/init_chroot.sh)} ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$SRC_URI'))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:490) fd: -1 here_begin: {(SQ (Token id:Id.Lit_Chars val:EOF span_id:493))} 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.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:496) fd: -1 arg_word: {($ Id.VSub_DollarName '$CHROOT') (/b/init_chroot.sh)} ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:507) fd: -1 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.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:511) fd: -1 arg_word: {($ Id.VSub_DollarName '$CHROOT') (/b/init_chroot.sh)} ) ] ) ] spids: [474 486] ) ] ) (C {(chmod)} {(755)} {($ Id.VSub_DollarName '$CHROOT') (/b/init_chroot_trampoline.sh)}) (C {(chown)} {(1001) (Id.Lit_Other ':') (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)}) ] )