(CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-lt)} {(3)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ('Usage: ') ($ VSub_Number '$0') (' [-b] image-label image-name base-bits-dir [extra-bits-dir]') ) } ] redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/stderr)} spids:[96])] ) (C {(exit)} {(1)}) ] spids: [-1 85] ) ] spids: [-1 105] ) (Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(-b)}] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOPT) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [119] ) ] spids: [119] ) terminator: <Op_Semi ';'> ) (C {(shift)}) ] spids: [116 117 127 -1] ) ] spids: [108 114 129] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LABEL) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(tr)} {(SQ <'[:lower:]'>)} {(SQ <'[:upper:]'>)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [132 150] ) } spids: [131] ) ] spids: [131] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NAME) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [155] ) ] spids: [155] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASEBITSDIR) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [163] ) ] spids: [163] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:publisher) op: Equal rhs: {(DQ ('The FreeBSD Project. http://www.FreeBSD.org/'))} spids: [172] ) ] spids: [172] ) (SimpleCommand words: [{(echo)} {(DQ (/dev/iso9660/) ($ VSub_Name '$LABEL') (' / cd9660 ro 0 0'))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name '$BASEBITSDIR') (/etc/fstab))} spids: [185] ) ] ) (C {(makefs)} {(-t)} {(cd9660)} {(-o)} {(rockridge)} {(-o)} {(Lit_VarLike 'label=') (DQ ($ VSub_Name '$LABEL'))} {(-o)} {(Lit_VarLike 'publisher=') (DQ ($ VSub_Name '$publisher'))} {(DQ ($ VSub_Name '$NAME') (.tmp))} {(DQ ($ VSub_At '$@'))} ) (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$BASEBITSDIR') (/etc/fstab))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (x) ($ VSub_Name '$BOPT'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (x-b))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mv)} {(DQ ($ VSub_Name '$NAME') (.tmp))} {(DQ ($ VSub_Name '$NAME'))}) (C {(exit)} {(0)}) ] spids: [-1 254] ) ] spids: [-1 273] ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TMPIMGDIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(mktemp)} {(-d)} {(/tmp/bootfs.XXXXXXXX)})] ) left_token: <Left_Backtick '`'> spids: [277 283] ) } spids: [276] ) ] spids: [276] ) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOOTFSDIR) op: Equal rhs: {(DQ ($ VSub_Name '$TMPIMGDIR') (/bootfs))} spids: [291] ) ] spids: [291] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOOTFSIMG) op: Equal rhs: {(DQ ($ VSub_Name '$TMPIMGDIR') (/bootfs.img))} spids: [297] ) ] spids: [297] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$BOOTFSDIR') (/boot))}) (C {(cp)} {(-p)} {(DQ ($ VSub_Name '$BASEBITSDIR') (/boot/loader))} {(DQ ($ VSub_Name '$BOOTFSDIR') (/boot))} ) (C {(makefs)} {(-t)} {(ffs)} {(-B)} {(be)} {(-M)} {(512k)} {(DQ ($ VSub_Name '$BOOTFSIMG'))} {(DQ ($ VSub_Name '$BOOTFSDIR'))} ) (C {(dd)} {(Lit_VarLike 'if=') (DQ ($ VSub_Name '$BASEBITSDIR') (/boot/boot1))} {(Lit_VarLike 'of=') (DQ ($ VSub_Name '$BOOTFSIMG'))} {(Lit_VarLike 'bs=') (512)} {(Lit_VarLike 'conv=') (notrunc) (Lit_Comma ',') (sync)} ) (C {(Lit_Other ':')} { (BracedVarSub token: <VSub_Name CYLSIZE> suffix_op: (StringUnary op_id:VTest_ColonEquals arg_word:{(640)}) spids: [379 383] ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ISOSIZE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(stat)} {(-f)} {(Lit_Other '%') (z)} {(DQ ($ VSub_Name '$NAME') (.tmp))}) ] ) left_token: <Left_CommandSub '$('> spids: [386 398] ) } spids: [385] ) ] spids: [385] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ISOBLKS) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Slash left: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$ISOSIZE')}) right: (ArithWord w:{(Lit_Digits 511)}) ) right: (ArithWord w:{(Lit_Digits 512)}) ) spids: [401 414] ) } spids: [400] ) ] spids: [400] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ISOCYLS) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Slash left: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$ISOBLKS')}) right: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$CYLSIZE')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) right: (ArithWord w:{($ VSub_Name '$CYLSIZE')}) ) spids: [417 436] ) } spids: [416] ) ] spids: [416] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOOTFSSIZE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(stat)} {(-f)} {(Lit_Other '%') (z)} {(DQ ($ VSub_Name '$BOOTFSIMG'))}) ] ) left_token: <Left_CommandSub '$('> spids: [440 451] ) } spids: [439] ) ] spids: [439] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOOTFSBLKS) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Slash left: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$BOOTFSSIZE')}) right: (ArithWord w:{(Lit_Digits 511)}) ) right: (ArithWord w:{(Lit_Digits 512)}) ) spids: [454 467] ) } spids: [453] ) ] spids: [453] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOOTFSCYLS) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Slash left: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$BOOTFSBLKS')}) right: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$CYLSIZE')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) right: (ArithWord w:{($ VSub_Name '$CYLSIZE')}) ) spids: [470 489] ) } spids: [469] ) ] spids: [469] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ENDCYL) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$ISOCYLS')}) right: (ArithWord w:{($ VSub_Name '$BOOTFSCYLS')}) ) spids: [493 500] ) } spids: [492] ) ] spids: [492] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NSECTS) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Star left: (ArithBinary op_id: Arith_Star left: (ArithWord w:{($ VSub_Name '$ENDCYL')}) right: (ArithWord w:{(Lit_Digits 1)}) ) right: (ArithWord w:{($ VSub_Name '$CYLSIZE')}) ) spids: [503 514] ) } spids: [502] ) ] spids: [502] ) (C {(dd)} {(Lit_VarLike 'if=') (DQ ($ VSub_Name '$NAME') (.tmp))} {(Lit_VarLike 'of=') (DQ ($ VSub_Name '$NAME'))} {(Lit_VarLike 'bs=') (DQ (${ VSub_Name CYLSIZE) (b))} {(Lit_VarLike 'conv=') (notrunc) (Lit_Comma ',') (sync)} ) (C {(dd)} {(Lit_VarLike 'if=') (DQ ($ VSub_Name '$BOOTFSIMG'))} {(Lit_VarLike 'of=') (DQ ($ VSub_Name '$NAME'))} {(Lit_VarLike 'bs=') (DQ (${ VSub_Name CYLSIZE) (b))} {(Lit_VarLike 'seek=') ($ VSub_Name '$ISOCYLS')} {(Lit_VarLike 'conv=') (notrunc) (Lit_Comma ',') (sync)} ) (C {(dd)} {(Lit_VarLike 'if=') (/dev/zero)} {(Lit_VarLike 'of=') (DQ ($ VSub_Name '$NAME'))} {(Lit_VarLike 'bs=') (DQ (${ VSub_Name CYLSIZE) (b))} {(Lit_VarLike 'seek=') ($ VSub_Name '$ENDCYL')} {(Lit_VarLike 'count=') (2)} {(Lit_VarLike 'conv=') (notrunc) (Lit_Comma ',') (sync)} ) (C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$NAME') (.tmp))} {(DQ ($ VSub_Name '$TMPIMGDIR'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MD) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(mdconfig)} {(-a)} {(-t)} {(vnode)} {(-S)} {(512)} {(-y)} {(1)} {(-x)} {(DQ ($ VSub_Name '$CYLSIZE'))} {(-f)} {(DQ ($ VSub_Name '$NAME'))} ) ] ) left_token: <Left_Backtick '`'> spids: [621 649] ) } spids: [620] ) ] spids: [620] ) (C {(gpart)} {(create)} {(-s)} {(VTOC8)} {($ VSub_Name '$MD')}) (C {(gpart)} {(add)} {(-i)} {(1)} {(-s)} { (DQ (ArithSubPart anode: (ArithBinary op_id: Arith_Star left: (ArithBinary op_id: Arith_Star left: (ArithWord w:{($ VSub_Name '$ISOCYLS')}) right: (ArithWord w:{($ VSub_Name '$CYLSIZE')}) ) right: (ArithWord w:{(Lit_Digits 512)}) ) spids: [675 686] ) (b) ) } {(-t)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\!'>) (4)} {($ VSub_Name '$MD')} ) (C {(gpart)} {(add)} {(-i)} {(6)} {(-s)} { (DQ (ArithSubPart anode: (ArithBinary op_id: Arith_Star left: (ArithBinary op_id: Arith_Star left: (ArithWord w:{($ VSub_Name '$BOOTFSCYLS')}) right: (ArithWord w:{($ VSub_Name '$CYLSIZE')}) ) right: (ArithWord w:{(Lit_Digits 512)}) ) spids: [711 722] ) (b) ) } {(-t)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\!'>) (2)} {($ VSub_Name '$MD')} ) (C {(mdconfig)} {(-d)} {(-u)} { (BracedVarSub token: <VSub_Name MD> suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(md)}) spids: [739 743] ) } ) ] )