(command.CommandList children: [ (C {<set>} {<-e>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERSION) op: assign_op.Equal rhs: {(SQ <'@VERSION@'>)} spids: [8] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [(C {<unset>} {<TMP>} {<TEMP>} {<TMPDIR>}) (C {<true>})] ) (C {<export>} {<PATH>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-x>} {<'/debootstrap/debootstrap'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEBOOTSTRAP_DIR) op: assign_op.Equal rhs: {<'/debootstrap'>} spids: [69] ) ] ) ] spids: [55 66] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEBOOTSTRAP_DIR) op: assign_op.Equal rhs: {<'/usr/share/debootstrap'>} spids: [76] ) ] ) ] ) ] spids: [39 52] ) ] ) (C {<.>} {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/functions'>}) (command.Simple words: [{<exec>}] redirects: [(redir op:<Id.Redir_GreatAnd '4>&'> loc:(redir_loc.Fd fd:4) arg:{<1>})] do_fork: T ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:LANG) op:assign_op.Equal rhs:{<C>} spids:[96])] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USE_COMPONENTS) op: assign_op.Equal rhs: {<main>} spids: [99] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KEYRING) op: assign_op.Equal rhs: {(DQ )} spids: [102] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DISABLE_KEYRING) op: assign_op.Equal rhs: {(DQ )} spids: [106] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FORCE_KEYRING) op: assign_op.Equal rhs: {(DQ )} spids: [110] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VARIANT) op: assign_op.Equal rhs: {(DQ )} spids: [114] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MERGED_USR) op: assign_op.Equal rhs: {(DQ <no>)} spids: [118] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARCH) op: assign_op.Equal rhs: {(DQ )} spids: [123] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_ARCH) op: assign_op.Equal rhs: {(DQ )} spids: [127] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_OS) op: assign_op.Equal rhs: {(DQ )} spids: [131] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KEEP_DEBOOTSTRAP_DIR) op: assign_op.Equal rhs: {(DQ )} spids: [135] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USE_DEBIANINSTALLER_INTERACTION) op: assign_op.Equal rhs: {(DQ )} spids: [139] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SECOND_STAGE_ONLY) op: assign_op.Equal rhs: {(DQ )} spids: [143] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PRINT_DEBS) op: assign_op.Equal rhs: {(DQ )} spids: [147] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHROOTDIR) op: assign_op.Equal rhs: {(DQ )} spids: [151] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAKE_TARBALL) op: assign_op.Equal rhs: {(DQ )} spids: [155] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXTRACTOR_OVERRIDE) op: assign_op.Equal rhs: {(DQ )} spids: [159] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:UNPACK_TARBALL) op: assign_op.Equal rhs: {(DQ )} spids: [163] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ADDITIONAL) op: assign_op.Equal rhs: {(DQ )} spids: [167] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXCLUDE) op: assign_op.Equal rhs: {(DQ )} spids: [171] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERBOSE) op: assign_op.Equal rhs: {(DQ )} spids: [175] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CERTIFICATE) op: assign_op.Equal rhs: {(DQ )} spids: [179] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHECKCERTIF) op: assign_op.Equal rhs: {(DQ )} spids: [183] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PRIVATEKEY) op: assign_op.Equal rhs: {(DQ )} spids: [187] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEF_MIRROR) op: assign_op.Equal rhs: {(DQ <'http://deb.debian.org/debian'>)} spids: [192] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEF_HTTPS_MIRROR) op: assign_op.Equal rhs: {(DQ <'https://deb.debian.org/debian'>)} spids: [197] ) ] ) (C {<export>} {<LANG>} {<USE_COMPONENTS>}) (C {<umask>} {<022>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESOLVE_DEPS) op: assign_op.Equal rhs: {<true>} spids: [225] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHAT_TO_DO) op: assign_op.Equal rhs: {(DQ <'finddebs dldebs first_stage second_stage'>)} spids: [229] ) ] ) (command.ShFunction name: am_doing_phase body: (BraceGroup children: [ (command.Sentence child:(C {<local>} {<x>}) terminator:<Id.Op_Semi _>) (command.ForEach iter_names: [x] iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '$@'))}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<echo>} {(DQ <' '> ($ Id.VSub_DollarName '$WHAT_TO_DO') <' '>)} ) (C {<grep>} {<-q>} {(DQ <' '> ($ Id.VSub_DollarName '$x') <' '>)}) ] negated: F ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) terminator: <Id.Op_Semi _> ) ] spids: [266 289] ) ] ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] ) ) (command.ShFunction name: usage_err body: (BraceGroup children: [ (C {<info>} {<USAGE1>} {(DQ <'usage: [OPTION]... <suite> <target> [<mirror> [<script>]]'>)}) (C {<info>} {<USAGE2>} { (DQ <'Try '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) (braced_var_sub token: <Id.VSub_Number 0> suffix_op: (suffix_op.Unary tok: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) ) <' --help\' for more information.'> ) } ) (C {<error>} {(DQ ($ Id.VSub_At '$@'))}) ] ) ) (command.ShFunction name: usage body: (BraceGroup children: [ (C {<echo>} { (DQ <'Usage: '> (braced_var_sub token: <Id.VSub_Number 0> suffix_op: (suffix_op.Unary tok: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) ) <' [OPTION]... <suite> <target> [<mirror> [<script>]]'> ) } ) (C {<echo>} {(DQ <'Bootstrap a Debian base system into a target directory.'>)}) (C {<echo>}) (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: 431 stdin_parts: [ <' --help display this help and exit\n'> <' --version display version information and exit\n'> <' --verbose don\'t turn off the output of wget\n'> <'\n'> < ' --download-only download packages, but don\'t perform installation\n' > < ' --print-debs print the packages to be installed, and exit\n' > <'\n'> < ' --arch=A set the architecture to install (use if no dpkg)\n' > <' [ --arch=powerpc ]\n'> <'\n'> < ' --include=A,B,C adds specified names to the list of base packages\n' > <' --exclude=A,B,C removes specified packages from the list\n'> < ' --components=A,B,C use packages from the listed components of the\n' > <' archive\n'> <' --variant=X use variant X of the bootstrap scripts\n'> < ' (currently supported variants: buildd, fakechroot,\n' > <' minbase)\n'> <' --merged-usr make /{bin,sbin,lib}/ symlinks to /usr/\n'> <' --keyring=K check Release files against keyring K\n'> <' --no-check-gpg avoid checking Release file signatures\n'> <' --force-check-gpg force checking Release file signatures\n'> < ' (also disables automatic fallback to HTTPS in case\n' > <' of a missing keyring), aborting otherwise\n'> < ' --no-resolve-deps don\'t try to resolve dependencies automatically\n' > <'\n'> < ' --unpack-tarball=T acquire .debs from a tarball instead of http\n' > < ' --make-tarball=T download .debs and create a tarball (tgz format)\n' > <' --second-stage-target=DIR\n'> < ' Run second stage in a subdirectory instead of root\n' > < ' (can be used to create a foreign chroot)\n' > <' (requires --second-stage)\n'> < ' --extractor=TYPE override automatic .deb extractor selection\n' > <' (supported: '> ($ Id.VSub_DollarName '$EXTRACTORS_SUPPORTED') <')\n'> < ' --debian-installer used for internal purposes by debian-installer\n' > <' --private-key=file read the private key from file\n'> < ' --certificate=file use the client certificate stored in file (PEM)\n' > < ' --no-check-certificate do not check certificate against certificate authorities\n' > ] ) ) ] do_fork: T ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$PKGDETAILS'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<error>} {<1>} {<NO_PKGDETAILS>} { (DQ < 'No pkgdetails available; either install perl, or build pkgdetails.c from the base-installer source package' > ) } ) ] spids: [439 452] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [(command.Sentence child:(C {<true>}) terminator:<Id.Op_Semi _>)] ) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<--help>}] action: [ (C {<usage>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] spids: [508 509 520 -1] ) (case_arm pat_list: [{<--version>}] action: [ (C {<echo>} {(DQ <'debootstrap '> ($ Id.VSub_DollarName '$VERSION'))}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] spids: [523 524 540 -1] ) (case_arm pat_list: [{<--debian-installer>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.Subshell child: (command.Simple words: [{<echo>} {<-n>} {(DQ )}] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] do_fork: T ) redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<error>} {<1>} {<ARG_DIBYHAND>} { (DQ < 'If running debootstrap by hand, don\'t use --debian-installer' > ) } ) ] spids: [547 567] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USE_DEBIANINSTALLER_INTERACTION) op: assign_op.Equal rhs: {<yes>} spids: [584] ) ] ) (C {<shift>}) ] spids: [543 544 591 -1] ) (case_arm pat_list: [{<--foreign>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$PRINT_DEBS'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHAT_TO_DO) op: assign_op.Equal rhs: {(DQ <'finddebs dldebs first_stage'>)} spids: [619] ) ] ) ] spids: [598 616] ) ] ) (C {<shift>}) ] spids: [594 595 631 -1] ) (case_arm pat_list: [{<--second-stage>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHAT_TO_DO) op: assign_op.Equal rhs: {(DQ <second_stage>)} spids: [638] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SECOND_STAGE_ONLY) op: assign_op.Equal rhs: {<true>} spids: [644] ) ] ) (C {<shift>}) ] spids: [634 635 651 -1] ) (case_arm pat_list: [ {<--second-stage-target>} {<--second-stage-target> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'> } ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$SECOND_STAGE_ONLY'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<error>} {<1>} {<STAGE2ONLY>} {(DQ <'option %s only applies in the second stage'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] spids: [663 682] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--second-stage-target>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHROOTDIR) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [732] ) ] ) (C {<shift>} {<2>}) ] spids: [703 729] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--second-stage-target='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHROOTDIR) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--second-stage-target='>} ) ) ) } spids: [768] ) ] ) (C {<shift>}) ] spids: [743 765] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument: %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ] spids: [654 660 802 -1] ) (case_arm pat_list: [{<--print-debs>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHAT_TO_DO) op: assign_op.Equal rhs: {(DQ <'finddebs printdebs kill_target'>)} spids: [809] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PRINT_DEBS) op: assign_op.Equal rhs: {<true>} spids: [815] ) ] ) (C {<shift>}) ] spids: [805 806 822 -1] ) (case_arm pat_list: [{<--download-only>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHAT_TO_DO) op: assign_op.Equal rhs: {(DQ <'finddebs dldebs'>)} spids: [829] ) ] ) (C {<shift>}) ] spids: [825 826 838 -1] ) (case_arm pat_list: [ {<--make-tarball>} {<--make-tarball> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:WHAT_TO_DO) op: assign_op.Equal rhs: {(DQ <'finddebs dldebs maketarball kill_target'>)} spids: [850] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--make-tarball>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAKE_TARBALL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [885] ) ] ) (C {<shift>} {<2>}) ] spids: [856 882] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--make-tarball='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MAKE_TARBALL) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--make-tarball='>} ) ) ) } spids: [921] ) ] ) (C {<shift>}) ] spids: [896 918] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ] spids: [841 847 955 -1] ) (case_arm pat_list: [{<--resolve-deps>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESOLVE_DEPS) op: assign_op.Equal rhs: {<true>} spids: [966] ) ] ) (C {<shift>}) ] spids: [958 959 973 -1] ) (case_arm pat_list: [{<--no-resolve-deps>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RESOLVE_DEPS) op: assign_op.Equal rhs: {<false>} spids: [980] ) ] ) (C {<shift>}) ] spids: [976 977 987 -1] ) (case_arm pat_list: [{<--keep-debootstrap-dir>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KEEP_DEBOOTSTRAP_DIR) op: assign_op.Equal rhs: {<true>} spids: [994] ) ] ) (C {<shift>}) ] spids: [990 991 1001 -1] ) (case_arm pat_list: [ {<--arch>} {<--arch> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--arch>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARCH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [1042] ) ] ) (C {<shift>} {<2>}) ] spids: [1013 1039] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--arch='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARCH) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--arch='>} ) ) ) } spids: [1078] ) ] ) (C {<shift>}) ] spids: [1053 1075] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ] spids: [1004 1010 1112 -1] ) (case_arm pat_list: [ {<--extractor>} {<--extractor> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--extractor>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXTRACTOR_OVERRIDE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [1153] ) ] ) (C {<shift>} {<2>}) ] spids: [1124 1150] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--extractor='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXTRACTOR_OVERRIDE) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--extractor='>} ) ) ) } spids: [1189] ) ] ) (C {<shift>}) ] spids: [1164 1186] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<valid_extractor>} {(DQ ($ Id.VSub_DollarName '$EXTRACTOR_OVERRIDE'))} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [ {<type>} { (DQ ($ Id.VSub_DollarName '$EXTRACTOR_OVERRIDE' ) ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<error>} {<1>} {<MISSINGEXTRACTOR>} {(DQ <'The selected extractor cannot be found: %s'>)} {(DQ ($ Id.VSub_DollarName '$EXTRACTOR_OVERRIDE'))} ) ] spids: [1235 1252] ) ] ) ] spids: [1223 1232] ) ] else_action: [ (C {<error>} {<1>} {<BADEXTRACTOR>} {(DQ <'%s: unknown extractor'>)} {(DQ ($ Id.VSub_DollarName '$EXTRACTOR_OVERRIDE'))} ) ] ) ] spids: [1115 1121 1294 -1] ) (case_arm pat_list: [ {<--unpack-tarball>} {<--unpack-tarball> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'> } ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--unpack-tarball>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:UNPACK_TARBALL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [1335] ) ] ) (C {<shift>} {<2>}) ] spids: [1306 1332] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--unpack-tarball='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:UNPACK_TARBALL) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--unpack-tarball='>} ) ) ) } spids: [1371] ) ] ) (C {<shift>}) ] spids: [1346 1368] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$UNPACK_TARBALL'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<error>} {<1>} {<NOTARBALL>} {(DQ <'%s: No such file or directory'>)} {(DQ ($ Id.VSub_DollarName '$UNPACK_TARBALL'))} ) ] spids: [1405 1421] ) ] ) ] spids: [1297 1303 1442 -1] ) (case_arm pat_list: [ {<--include>} {<--include> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--include>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ADDITIONAL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [1482] ) ] ) (C {<shift>} {<2>}) ] spids: [1454 1479] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--include='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ADDITIONAL) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--include='>} ) ) ) } spids: [1518] ) ] ) (C {<shift>} {<1>}) ] spids: [1493 1515] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ADDITIONAL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$ADDITIONAL'))}) (C {<tr>} {<Id.Lit_Comma ','>} {(DQ <' '>)}) ] negated: F ) ) ) } spids: [1554] ) ] ) ] spids: [1445 1451 1576 -1] ) (case_arm pat_list: [ {<--exclude>} {<--exclude> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--exclude>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXCLUDE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [1616] ) ] ) (C {<shift>} {<2>}) ] spids: [1588 1613] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--exclude='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXCLUDE) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--exclude='>} ) ) ) } spids: [1652] ) ] ) (C {<shift>} {<1>}) ] spids: [1627 1649] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXCLUDE) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$EXCLUDE'))}) (C {<tr>} {<Id.Lit_Comma ','>} {(DQ <' '>)}) ] negated: F ) ) ) } spids: [1688] ) ] ) ] spids: [1579 1585 1710 -1] ) (case_arm pat_list: [{<--verbose>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VERBOSE) op: assign_op.Equal rhs: {<true>} spids: [1717] ) ] ) (C {<export>} {<VERBOSE>}) (C {<shift>} {<1>}) ] spids: [1713 1714 1731 -1] ) (case_arm pat_list: [ {<--components>} {<--components> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--components>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USE_COMPONENTS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [1771] ) ] ) (C {<shift>} {<2>}) ] spids: [1743 1768] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--components='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USE_COMPONENTS) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--components='>} ) ) ) } spids: [1807] ) ] ) (C {<shift>} {<1>}) ] spids: [1782 1804] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USE_COMPONENTS) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$USE_COMPONENTS'))} ) (C {<tr>} {<Id.Lit_Comma ','>} {(DQ <'|'>)}) ] negated: F ) ) ) } spids: [1843] ) ] ) ] spids: [1734 1740 1865 -1] ) (case_arm pat_list: [ {<--variant>} {<--variant> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--variant>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VARIANT) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [1905] ) ] ) (C {<shift>} {<2>}) ] spids: [1877 1902] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--variant='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VARIANT) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--variant='>} ) ) ) } spids: [1941] ) ] ) (C {<shift>} {<1>}) ] spids: [1916 1938] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ] spids: [1868 1874 1977 -1] ) (case_arm pat_list: [{<--merged-usr>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MERGED_USR) op: assign_op.Equal rhs: {<yes>} spids: [1984] ) ] ) (C {<shift>}) ] spids: [1980 1981 1991 -1] ) (case_arm pat_list: [{<--no-merged-usr>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MERGED_USR) op: assign_op.Equal rhs: {<no>} spids: [1998] ) ] ) (C {<shift>}) ] spids: [1994 1995 2005 -1] ) (case_arm pat_list: [ {<--keyring>} {<--keyring> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{<gpgv>} {<--version>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<error>} {<1>} {<NEEDGPGV>} { (DQ < 'gpgv not installed, but required for Release verification' > ) } ) ] spids: [2017 2032] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--keyring>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KEYRING) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [2077] ) ] ) (C {<shift>} {<2>}) ] spids: [2049 2074] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--keyring='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KEYRING) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--keyring='>} ) ) ) } spids: [2113] ) ] ) (C {<shift>} {<1>}) ] spids: [2088 2110] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ] spids: [2008 2014 2149 -1] ) (case_arm pat_list: [{<--no-check-gpg>}] action: [ (C {<shift>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DISABLE_KEYRING) op: assign_op.Equal rhs: {<1>} spids: [2161] ) ] ) ] spids: [2152 2153 2165 -1] ) (case_arm pat_list: [{<--force-check-gpg>}] action: [ (C {<shift>} {<1>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FORCE_KEYRING) op: assign_op.Equal rhs: {<1>} spids: [2177] ) ] ) ] spids: [2168 2169 2181 -1] ) (case_arm pat_list: [ {<--certificate>} {<--certificate> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--certificate>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CERTIFICATE) op: assign_op.Equal rhs: {(DQ <'--certificate='> ($ Id.VSub_Number '$2'))} spids: [2221] ) ] ) (C {<shift>} {<2>}) ] spids: [2193 2218] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--certificate='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CERTIFICATE) op: assign_op.Equal rhs: { (DQ <'--certificate='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--certificate='>} ) ) ) } spids: [2258] ) ] ) (C {<shift>} {<1>}) ] spids: [2233 2255] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ] spids: [2184 2190 2297 -1] ) (case_arm pat_list: [ {<--private-key>} {<--private-key> <Id.Lit_Equals '='> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>} ] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {(DQ <--private-key>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PRIVATEKEY) op: assign_op.Equal rhs: {(DQ <'--private-key='> ($ Id.VSub_Number '$2'))} spids: [2337] ) ] ) (C {<shift>} {<2>}) ] spids: [2309 2334] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--private-key='>} ) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PRIVATEKEY) op: assign_op.Equal rhs: { (DQ <'--private-key='> (braced_var_sub token: <Id.VSub_Number 1> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'--private-key='>} ) ) ) } spids: [2374] ) ] ) (C {<shift>} {<1>}) ] spids: [2349 2371] ) ] else_action: [ (C {<error>} {<1>} {<NEEDARG>} {(DQ <'option requires an argument %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] ) ] spids: [2300 2306 2413 -1] ) (case_arm pat_list: [{<--no-check-certificate>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHECKCERTIF) op: assign_op.Equal rhs: {(DQ <--no-check-certificate>)} spids: [2420] ) ] ) (C {<shift>}) ] spids: [2416 2417 2429 -1] ) (case_arm pat_list: [{<-> <Id.Lit_Star '*'>}] action: [ (C {<error>} {<1>} {<BADARG>} {(DQ <'unrecognized or invalid option %s'>)} {(DQ ($ Id.VSub_Number '$1'))} ) ] spids: [2432 2434 2452 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [2455 2456 2462 -1] ) ] ) ] ) ) ] spids: [472 487] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$DISABLE_KEYRING'))} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName '$FORCE_KEYRING'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<error>} {<1>} {<BADARG>} { (DQ <'Both --no-check-gpg and --force-check-gpg specified, please pick one (at most)'> ) } ) ] spids: [2477 2498] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$SECOND_STAGE_ONLY'))} {<Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SUITE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/suite'>}) ) } spids: [2538] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARCH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/arch'>}) ) } spids: [2547] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-e>} {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/variant'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:VARIANT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/variant'>}) ) } spids: [2571] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SUPPORTED_VARIANTS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$VARIANT'))} spids: [2580] ) ] ) ] spids: [2556 2568] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$CHROOTDIR'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGET) op: assign_op.Equal rhs: {<'/'>} spids: [2605] ) ] ) ] spids: [2589 2602] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGET) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$CHROOTDIR')} spids: [2612] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCRIPT) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/suite-script'>} spids: [2619] ) ] ) ] spids: [2518 2535] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number '$2'))} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<usage_err>} {<1>} {<NEEDSUITETARGET>} {(DQ <'You must specify a suite and a target.'>)} ) ] spids: [2626 2651] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SUITE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [2668] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGET) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [2674] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USER_MIRROR) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$3'))} spids: [2680] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGET) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name TARGET> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) ) ) } spids: [2686] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name TARGET> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Slash '/'>} ) ) ) } {<Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name TARGET))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name TARGET> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) ) } {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$TARGET'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGET) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<echo>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<pwd>}) ) <'/'> ($ Id.VSub_DollarName '$TARGET') ) } ) ) ) } spids: [2748] ) ] ) ] spids: [2722 2745] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TARGET) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} { (DQ (braced_var_sub token: <Id.VSub_Name TARGET> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'> <Id.Lit_Other '*'>} ) ) ) } ) terminator: <Id.Op_Semi _> ) (C {<echo>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<pwd>}) ) <'/'> (braced_var_sub token: <Id.VSub_Name TARGET> suffix_op: (suffix_op.Unary tok: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) ) ) } ) ] ) ) ) } spids: [2769] ) ] ) ] ) ] spids: [2696 2719] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCRIPT) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/scripts/'> ($ Id.VSub_Number '$1'))} spids: [2811] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$VARIANT'))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-e>} {(DQ (${ Id.VSub_Name SCRIPT) <.> (${ Id.VSub_Name VARIANT))} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCRIPT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name SCRIPT) <.> (${ Id.VSub_Name VARIANT))} spids: [2853] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SUPPORTED_VARIANTS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$VARIANT'))} spids: [2865] ) ] ) ] spids: [2819 2850] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$4'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SCRIPT) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$4'))} spids: [2894] ) ] ) ] spids: [2874 2891] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<in_path>} {<dpkg>}) (command.Simple words: [{<dpkg>} {<--print-architecture>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_ARCH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<'/usr/bin/dpkg'>} {<--print-architecture>}) ) } spids: [2933] ) ] ) ] spids: [2909 2930] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<in_path>} {<udpkg>}) (command.Simple words: [{<udpkg>} {<--print-architecture>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_ARCH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<'/usr/bin/udpkg'>} {<--print-architecture>}) ) } spids: [2966] ) ] ) ] spids: [2942 2963] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-e>} {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/arch'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_ARCH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<cat>} {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/arch'>}) ) } spids: [2990] ) ] ) ] spids: [2975 2987] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_OS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$HOST_ARCH'))} spids: [3002] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$HOST_OS'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>}))} arms: [ (case_arm pat_list: [{<Linux>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_OS) op: assign_op.Equal rhs: {<linux>} spids: [3041] ) ] ) ] spids: [3037 3038 3045 -1] ) (case_arm pat_list: [{<'GNU/kFreeBSD'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_OS) op: assign_op.Equal rhs: {<kfreebsd>} spids: [3052] ) ] ) ] spids: [3048 3049 3056 -1] ) (case_arm pat_list: [{<GNU>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_OS) op: assign_op.Equal rhs: {<hurd>} spids: [3063] ) ] ) ] spids: [3059 3060 3067 -1] ) (case_arm pat_list: [{<FreeBSD> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOST_OS) op: assign_op.Equal rhs: {<freebsd>} spids: [3075] ) ] ) ] spids: [3070 3072 3079 -1] ) ] ) ] spids: [3010 3023] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$ARCH'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARCH) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$HOST_ARCH')} spids: [3103] ) ] ) ] spids: [3087 3100] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$ARCH'))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$HOST_OS'))} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<error>} {<1>} {<WHATARCH>} {(DQ <'Couldn\'t work out current architecture'>)})] spids: [3109 3134] ) ] ) (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 '$HOST_OS'))} {<Id.Lit_Equals '='>} {(DQ <kfreebsd>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$HOST_OS'))} {<Id.Lit_Equals '='>} {(DQ <freebsd>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [module] iterable: (for_iter.Words words:[{<linprocfs>} {<fdescfs>} {<tmpfs>} {<linsysfs>}]) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<kldstat>} {<-m>} {(DQ ($ Id.VSub_DollarName '$module'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (C {<warning>} {<SANITYCHECK>} {(DQ <'Probably required module %s is not loaded'>)} {(DQ ($ Id.VSub_DollarName '$module'))} ) ] ) ] ) ) ] spids: [3151 3184] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$TARGET'))} {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHROOT_CMD) op: assign_op.Equal rhs: {(DQ )} spids: [3260] ) ] ) ] spids: [3240 3257] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHROOT_CMD) op: assign_op.Equal rhs: {(DQ <'chroot '> ($ Id.VSub_DollarName '$TARGET'))} spids: [3267] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$SHA_SIZE'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SHA_SIZE) op: assign_op.Equal rhs: {<256>} spids: [3292] ) ] ) ] spids: [3276 3289] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [(C {<in_path>} {(DQ <sha> (${ Id.VSub_Name SHA_SIZE) <sum>)})] negated: T ) (command.Pipeline children: [(C {<in_path>} {(DQ <sha> (${ Id.VSub_Name SHA_SIZE))})] negated: T ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SHA_SIZE) op: assign_op.Equal rhs: {<1>} spids: [3328] ) ] ) ] spids: [3297 3325] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEBOOTSTRAP_CHECKSUM_FIELD) op: assign_op.Equal rhs: {(DQ <SHA> ($ Id.VSub_DollarName '$SHA_SIZE'))} spids: [3333] ) ] ) (C {<export>} {<ARCH>} {<SUITE>} {<TARGET>} {<CHROOT_CMD>} {<SHA_SIZE>} {<DEBOOTSTRAP_CHECKSUM_FIELD>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<am_doing_phase>} {<first_stage>} {<second_stage>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<in_path>} {<id>}) (C {<Id.Lit_LBracket '['>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<id>} {<-u>}) ) } {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<error>} {<1>} {<NEEDROOT>} {(DQ <'debootstrap can only run as root'>)})] spids: [3367 3392] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<check_sane_mount>} {(DQ ($ Id.VSub_DollarName '$TARGET'))}) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<error>} {<1>} {<NOEXEC>} { (DQ <'Cannot install into target \''> ($ Id.VSub_DollarName '$TARGET') <'\' mounted with noexec or nodev'> ) } ) ] spids: [3413 3424] ) ] ) ] spids: [3355 3364] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} {(DQ ($ Id.VSub_DollarName '$SCRIPT'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<error>} {<1>} {<NOSCRIPT>} {(DQ <'No such script: %s'>)} {(DQ ($ Id.VSub_DollarName '$SCRIPT'))} ) ] spids: [3445 3460] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$TARGET'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap'>)})] spids: [3484 3501] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$USE_DEBIANINSTALLER_INTERACTION'))} {<Id.Lit_Equals '='>} {<yes>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<exec>}] redirects: [(redir op:<Id.Redir_GreatAnd '4>&'> loc:(redir_loc.Fd fd:4) arg:{<3>})] do_fork: T ) ] spids: [3539 3554] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<am_doing_phase>} {<printdebs>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<exec>}] redirects: [(redir op:<Id.Redir_GreatAnd '4>&'> loc:(redir_loc.Fd fd:4) arg:{<2>})] do_fork: T ) ] spids: [3570 3577] ) ] else_action: [ (command.Simple words: [{<exec>}] redirects: [(redir op:<Id.Redir_GreatAnd '4>&'> loc:(redir_loc.Fd fd:4) arg:{<1>})] do_fork: T ) (command.Simple words: [{<exec>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/debootstrap.log'>)} ) ] do_fork: T ) (command.Simple words: [{<exec>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$UNPACK_TARBALL'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name UNPACK_TARBALL> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<Id.Lit_Slash '/'>} ) ) ) } {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$UNPACK_TARBALL'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<error>} {<1>} {<TARPATH>} {(DQ <'Tarball must be given a complete path'>)}) ] spids: [3649 3670] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name UNPACK_TARBALL> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<.tar>} ) ) ) } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$UNPACK_TARBALL'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Subshell child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<cd>} {(DQ ($ Id.VSub_DollarName '$TARGET'))}) (C {<tar>} {<-xf>} {(DQ ($ Id.VSub_DollarName '$UNPACK_TARBALL'))}) ] ) ) ] spids: [3687 3709] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name UNPACK_TARBALL> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<.tgz>} ) ) ) } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$UNPACK_TARBALL'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Subshell child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<cd>} {(DQ ($ Id.VSub_DollarName '$TARGET'))}) (command.Pipeline children: [ (C {<zcat>} {(DQ ($ Id.VSub_DollarName '$UNPACK_TARBALL'))}) (C {<tar>} {<-xf>} {<->}) ] negated: F ) ] ) ) ] spids: [3731 3753] ) ] else_action: [ (C {<error>} {<1>} {<NOTTAR>} {(DQ <'Unknown tarball: must be either .tar or .tgz'>)}) ] ) ] spids: [3635 3646] ) ] ) (C {<.>} {(DQ ($ Id.VSub_DollarName '$SCRIPT'))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$SECOND_STAGE_ONLY'))} {<Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIRRORS) op: assign_op.Equal rhs: {<null> <Id.Lit_Colon ':'>} spids: [3831] ) ] ) ] spids: [3811 3828] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIRRORS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$DEF_MIRROR'))} spids: [3838] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$USER_MIRROR'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIRRORS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$USER_MIRROR'))} spids: [3864] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MIRRORS) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name MIRRORS> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Percent '%'> arg_word: {<Id.Lit_Slash '/'>} ) ) ) } spids: [3870] ) ] ) ] spids: [3844 3861] ) ] ) ] ) (C {<export>} {<MIRRORS>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ok) op: assign_op.Equal rhs: {<false>} spids: [3890] ) ] ) (command.ForEach iter_names: [v] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName '$SUPPORTED_VARIANTS')}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<doing_variant>} {($ Id.VSub_DollarName '$v')}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ok) op: assign_op.Equal rhs: {<true>} spids: [3914] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [3905 3912] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children:[(C {($ Id.VSub_DollarName '$ok')})] negated:T) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<error>} {<1>} {<UNSUPPVARIANT>} {(DQ <'unsupported variant'>)})] spids: [3922 3929] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<am_doing_phase>} {<finddebs>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (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 '$FINDDEBS_NEEDS_INDICES'))} {<Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$RESOLVE_DEPS'))} {<Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<download_indices>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GOT_INDICES) op: assign_op.Equal rhs: {<true>} spids: [4000] ) ] ) ] spids: [3959 3994] ) ] ) (C {<work_out_debs>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:base) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<without>} { (DQ ($ Id.VSub_DollarName '$base') <' '> ($ Id.VSub_DollarName '$ADDITIONAL') ) } {(DQ ($ Id.VSub_DollarName '$EXCLUDE'))} ) ) } spids: [4012] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$RESOLVE_DEPS'))} {<Id.Lit_Equals '='>} {<true>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:requiredX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<echo>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$required')}) (C {<tr>} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {<sort>}) (C {<uniq>}) ] negated: F ) ) } ) ) } spids: [4047] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:baseX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<echo>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$base')}) (C {<tr>} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {<sort>}) (C {<uniq>}) ] negated: F ) ) } ) ) } spids: [4079] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:baseN) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<without>} {(DQ ($ Id.VSub_DollarName '$baseX'))} {(DQ ($ Id.VSub_DollarName '$requiredX'))} ) ) } spids: [4112] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:baseU) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<without>} {(DQ ($ Id.VSub_DollarName '$baseX'))} {(DQ ($ Id.VSub_DollarName '$baseN'))} ) ) } spids: [4126] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$baseU'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<info>} {<REDUNDANTBASE>} {(DQ <'Found packages in base already in required: %s'>)} {(DQ ($ Id.VSub_DollarName '$baseU'))} ) ] spids: [4141 4158] ) ] ) (C {<info>} {<RESOLVEREQ>} {(DQ <'Resolving dependencies of required packages...'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:required) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<resolve_deps>} {($ Id.VSub_DollarName '$requiredX')}) ) } spids: [4187] ) ] ) (C {<info>} {<RESOLVEBASE>} {(DQ <'Resolving dependencies of base packages...'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:base) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<resolve_deps>} {($ Id.VSub_DollarName '$baseX')}) ) } spids: [4204] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:base) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<without>} {(DQ ($ Id.VSub_DollarName '$base'))} {(DQ ($ Id.VSub_DollarName '$required'))} ) ) } spids: [4212] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:requiredX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<without>} {(DQ ($ Id.VSub_DollarName '$required'))} {(DQ ($ Id.VSub_DollarName '$requiredX'))} ) ) } spids: [4227] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:baseX) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<without>} {(DQ ($ Id.VSub_DollarName '$base'))} {(DQ ($ Id.VSub_DollarName '$baseX'))} ) ) } spids: [4241] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$requiredX'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<info>} {<NEWREQUIRED>} {(DQ <'Found additional required dependencies: %s'>)} {(DQ ($ Id.VSub_DollarName '$requiredX'))} ) ] spids: [4255 4272] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$baseX'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<info>} {<NEWBASE>} {(DQ <'Found additional base dependencies: %s'>)} {(DQ ($ Id.VSub_DollarName '$baseX'))} ) ] spids: [4291 4308] ) ] ) ] spids: [4029 4044] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:all_debs) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$required') <' '> ($ Id.VSub_DollarName '$base'))} spids: [4331] ) ] ) ] spids: [3949 3956] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<am_doing_phase>} {<printdebs>}) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<echo>} {(DQ ($ Id.VSub_DollarName '$all_debs'))})] spids: [4341 4348] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<am_doing_phase>} {<dldebs>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$GOT_INDICES'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<download_indices>})] spids: [4370 4388] ) ] ) (C {<download>} {($ Id.VSub_DollarName '$all_debs')}) ] spids: [4360 4367] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<am_doing_phase>} {<maketarball>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} {($ Id.VSub_DollarName '$TARGET')}) terminator: <Id.Op_Semi _> ) (C {<tar>} {<czf>} {<->} {<'var/lib/apt'>} {<'var/cache/apt'>}) ] ) redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$MAKE_TARBALL')} ) ] ) ] spids: [4404 4411] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<am_doing_phase>} {<first_stage>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<choose_extractor>}) (C {<first_stage_install>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<am_doing_phase>} {<second_stage>})] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {(DQ ($ Id.VSub_Number '$0'))} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/debootstrap'>)} ) (C {<cp>} {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/functions'>} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/functions'>)} ) (C {<cp>} {($ Id.VSub_DollarName '$SCRIPT')} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/suite-script'>)} ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$ARCH'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/arch'>)} ) ] do_fork: T ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$SUITE'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/suite'>)} ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ )} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$VARIANT'))} {<Id.Lit_RBracket ']'>} ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$VARIANT'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/variant'>)} ) ] do_fork: T ) ] ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$required'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/required'>)} ) ] do_fork: T ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$base'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/base'>)} ) ] do_fork: T ) (C {<chmod>} {<755>} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/debootstrap'>)} ) ] spids: [4468 4477] ) ] ) ] spids: [4438 4445] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<am_doing_phase>} {<second_stage>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$SECOND_STAGE_ONLY'))} {<Id.Lit_Equals '='>} {<true>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:required) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/required'>} ) ) ) } spids: [4638] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:base) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {($ Id.VSub_DollarName '$DEBOOTSTRAP_DIR') <'/base'>}) ) ) } spids: [4649] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:all_debs) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$required') <' '> ($ Id.VSub_DollarName '$base') ) } spids: [4660] ) ] ) ] spids: [4620 4635] ) ] ) (C {<second_stage_install>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-e>} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/etc/apt/sources.list'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/etc/apt/sources.list'>)}) ] spids: [4697 4711] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name MIRRORS> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {<'http:'> <Id.Lit_Slash '/'> <Id.Lit_Slash '/'>} ) ) ) } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$MIRRORS'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<setup_apt_sources>} { (DQ (braced_var_sub token: <Id.VSub_Name MIRRORS> suffix_op: (suffix_op.Unary tok: <Id.VOp1_DPercent '%%'> arg_word: {<' '> <Id.Lit_Other '*'>} ) ) ) } ) (C {<mv_invalid_to>} { (DQ (braced_var_sub token: <Id.VSub_Name MIRRORS> suffix_op: (suffix_op.Unary tok: <Id.VOp1_DPercent '%%'> arg_word: {<' '> <Id.Lit_Other '*'>} ) ) ) } ) ] spids: [4727 4751] ) ] else_action: [ (C {<setup_apt_sources>} {(DQ ($ Id.VSub_DollarName '$DEF_MIRROR'))}) (C {<mv_invalid_to>} {(DQ ($ Id.VSub_DollarName '$DEF_MIRROR'))}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-e>} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/debootstrap.log'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$KEEP_DEBOOTSTRAP_DIR'))} {<Id.Lit_Equals '='>} {<true>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/debootstrap.log'>)} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/var/log/bootstrap.log'>)} ) ] spids: [4816 4831] ) ] else_action: [ (C {<mv>} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/debootstrap.log'>)} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/var/log/bootstrap.log'>)} ) ] ) ] spids: [4799 4813] ) ] ) (C {<sync>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$KEEP_DEBOOTSTRAP_DIR'))} {<Id.Lit_Equals '='>} {<true>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-x>} { (DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/debootstrap'> ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<chmod>} {<644>} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap/debootstrap'>)} ) ] spids: [4911 4925] ) ] ) ] spids: [4893 4908] ) ] else_action: [(C {<rm>} {<-rf>} {(DQ ($ Id.VSub_DollarName '$TARGET') <'/debootstrap'>)})] ) ] spids: [4610 4617] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<am_doing_phase>} {<kill_target>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$KEEP_DEBOOTSTRAP_DIR'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<true>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<info>} {<KILLTARGET>} {(DQ <'Deleting target directory'>)}) (C {<rm>} {<-rf>} {(DQ ($ Id.VSub_DollarName '$TARGET'))}) ] spids: [4969 4985] ) ] ) ] spids: [4959 4966] ) ] ) ] )