(CommandList children: [ (Sentence child: (FuncDef name: display_help body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name PROGDIR) (/doc/help-index))} {(Lit_Other ']')} ) ] action: [(C {(cat)} {(${ VSub_Name PROGDIR) (/doc/help-index)})] spids: [16777215 112] ) ] else_action: [ (C {(echo)} {(DQ ('Error: ') (${ VSub_Name PROGDIR) ('/doc/help-index not found'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [123 142] ) ] spids: [93] ) spids: [89 92] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: display_command_help body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})] action: [ (C {(echo)} {(DQ ('Error: No command specified to display help for'))}) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 171] ) ] spids: [16777215 186] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name PROGDIR) (/doc/help-) (${ VSub_Number 1))} {(Lit_Other ']')} ) ] action: [(C {(cat)} {(${ VSub_Name PROGDIR) (/doc/help-) (${ VSub_Number 1)})] spids: [16777215 210] ) ] else_action: [ (C {(echo)} { (DQ ('Error: ') (${ VSub_Name PROGDIR) (/doc/help-) (${ VSub_Number 1) (' not found') ) } ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [224 247] ) ] spids: [155] ) spids: [151 154] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: convert_byte_to_megabyte body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Number 1))} {(Lit_Other ']')})] action: [ (C {(echo)} {(DQ ('Error: No bytes specified!'))}) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 278] ) ] spids: [16777215 293] ) (C {(expr)} {(-e)} {(${ VSub_Number 1)} {(/)} {(1048576)}) ] spids: [260] ) spids: [256 259] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: convert_blocks_to_megabyte body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Number 1))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Error: No blocks specified!'))}) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 339] ) ] spids: [16777215 354] ) (C {(expr)} {(-e)} {(${ VSub_Number 1)} {(/)} {(2048)}) ] spids: [320] ) spids: [316 319] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: strip_white_space body: (BraceGroup children: [ (If arms: [ (if_arm cond: [(C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Number 1))} {(Lit_Other ']')})] action: [ (C {(echo)} {(DQ ('Error: No value setup to strip whitespace from!'))}) (ControlFlow token: <ControlFlow_Exit exit> arg_word: {(1)} ) ] spids: [16777215 399] ) ] spids: [16777215 415] ) (C {(export)} {(Lit_VarLike 'VAL=') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(tr)} {(-d)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [422 438] ) } ) ] spids: [381] ) spids: [377 380] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: exit_err body: (BraceGroup children: [ (C {(echo)} {(DQ ('EXITERROR: ') ($ VSub_Number '$1'))}) (SimpleCommand words: [{(echo)} {(DQ ('EXITERROR: ') (${ VSub_Number 1))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$LOGOUT')} spids: [480] ) ] ) (C {(unmount_all_filesystems_failure)}) (C {(echo)} {(DQ ('For more details see log file: ') ($ VSub_Name '$LOGOUT'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [451] ) spids: [447 450] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: rc_nohalt body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CMD) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [520] ) ] spids: [520] ) (If arms: [ (if_arm cond: [(C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name CMD))} {(Lit_Other ']')})] action: [(C {(exit_err)} {(DQ ('Error: missing argument in rc_nohalt()'))})] spids: [16777215 542] ) ] spids: [16777215 552] ) (SimpleCommand words: [{(echo)} {(DQ ('Running: ') (${ VSub_Name CMD))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name LOGOUT)} spids: [565] ) ] ) (SimpleCommand words: [{(${ VSub_Name CMD)}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name LOGOUT)} spids: [575] ) (Redir op_id: Redir_DGreat fd: 2 arg_word: {(${ VSub_Name LOGOUT)} spids: [580] ) ] ) ] spids: [517] ) spids: [513 516] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: rc_halt body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CMD) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [600] ) ] spids: [600] ) (If arms: [ (if_arm cond: [(C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name CMD))} {(Lit_Other ']')})] action: [(C {(exit_err)} {(DQ ('Error: missing argument in rc_halt()'))})] spids: [16777215 622] ) ] spids: [16777215 632] ) (SimpleCommand words: [{(echo)} {(DQ ('Running: ') (${ VSub_Name CMD))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name LOGOUT)} spids: [645] ) ] ) (SimpleCommand words: [{(eval)} {(${ VSub_Name CMD)}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name LOGOUT)} spids: [657] ) (Redir op_id: Redir_DGreat fd: 2 arg_word: {(${ VSub_Name LOGOUT)} spids: [662] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STATUS) op: Equal rhs: {(DQ ($ VSub_QMark '$?'))} spids: [668] ) ] spids: [668] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(DQ (${ VSub_Name STATUS))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (0))} {(Lit_Other ']')} ) ] action: [ (C {(exit_err)} {(DQ ('Error ') (${ VSub_Name STATUS) (': ') (${ VSub_Name CMD))} ) ] spids: [16777215 694] ) ] spids: [16777215 711] ) ] spids: [597] ) spids: [593 596] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: rc_halt_echo body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CMD) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [727] ) ] spids: [727] ) (If arms: [ (if_arm cond: [(C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name CMD))} {(Lit_Other ']')})] action: [(C {(exit_err)} {(DQ ('Error: missing argument in rc_halt_echo()'))})] spids: [16777215 749] ) ] spids: [16777215 759] ) (SimpleCommand words: [{(echo)} {(DQ ('Running: ') (${ VSub_Name CMD))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name LOGOUT)} spids: [772] ) ] ) (Pipeline children: [ (SimpleCommand words: [{(${ VSub_Name CMD)}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[782])] ) (C {(tee)} {(-a)} {(${ VSub_Name LOGOUT)}) ] negated: F ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STATUS) op: Equal rhs: {(DQ ($ VSub_QMark '$?'))} spids: [797] ) ] spids: [797] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$STATUS'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (0))} {(Lit_Other ']')} ) ] action: [ (C {(exit_err)} {(DQ ('Error ') (${ VSub_Name STATUS) (': ') ($ VSub_Name '$CMD'))} ) ] spids: [16777215 821] ) ] spids: [16777215 836] ) ] spids: [724] ) spids: [720 723] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: rc_nohalt_echo body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CMD) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [853] ) ] spids: [853] ) (If arms: [ (if_arm cond: [(C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name CMD))} {(Lit_Other ']')})] action: [(C {(exit_err)} {(DQ ('Error: missing argument in rc_nohalt_echo()'))})] spids: [16777215 875] ) ] spids: [16777215 885] ) (SimpleCommand words: [{(echo)} {(DQ ('Running: ') (${ VSub_Name CMD))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name LOGOUT)} spids: [898] ) ] ) (Pipeline children: [ (SimpleCommand words: [{(${ VSub_Name CMD)}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[908])] ) (C {(tee)} {(-a)} {(${ VSub_Name LOGOUT)}) ] negated: F ) ] spids: [850] ) spids: [846 849] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: echo_log body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STR) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [937] ) ] spids: [937] ) (If arms: [ (if_arm cond: [(C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name STR))} {(Lit_Other ']')})] action: [(C {(exit_err)} {(DQ ('Error: missing argument in echo_log()'))})] spids: [16777215 959] ) ] spids: [16777215 969] ) (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name STR))}) (C {(tee)} {(-a)} {(${ VSub_Name LOGOUT)}) ] negated: F ) ] spids: [934] ) spids: [930 933] ) terminator: <Op_Semi ';'> ) (FuncDef name: is_num body: (BraceGroup children: [ (SimpleCommand words: [{(expr)} {($ VSub_Number '$1')} {(Lit_Other '+')} {(1)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[1014])] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark '$?')}) ] spids: [1003] ) spids: [999 1002] ) (Sentence child: (FuncDef name: fetch_file body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FETCHFILE) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [1036] ) ] spids: [1036] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FETCHOUTFILE) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [1042] ) ] spids: [1042] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXITFAILED) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [1048] ) ] spids: [1048] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXITFILE) op: Equal rhs: {(DQ (${ VSub_Name TMPDIR) (/.fetchExit))} spids: [1055] ) ] spids: [1055] ) (SimpleCommand words: [{(rm)} {(${ VSub_Name FETCHOUTFILE)}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1071] ) (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [1074] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SIZE) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Slash left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (C {(fetch)} {(-s)} {(DQ (${ VSub_Name FETCHFILE))}) ] ) left_token: <Left_Backtick '`'> spids: [1082 1092] ) } ) right: (ArithWord w:{(Lit_Digits 1024)}) ) spids: [1080 1099] ) } spids: [1079] ) ] spids: [1079] ) (C {(echo)} {(DQ ('FETCH: ') (${ VSub_Name FETCHFILE))}) (SimpleCommand words: [{(echo)} {(DQ ('FETCH: ') (${ VSub_Name FETCHOUTFILE))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name LOGOUT)} spids: [1121] ) ] ) (Sentence child: (Subshell child: (CommandList children: [ (Sentence child: (SimpleCommand words: [ {(fetch)} {(-o)} {(${ VSub_Name FETCHOUTFILE)} {(DQ (${ VSub_Name FETCHFILE))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [1144] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1147] ) ] ) terminator: <Op_Semi ';'> ) (SimpleCommand words: [{(echo)} {(DQ ($ VSub_QMark '$?'))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(${ VSub_Name EXITFILE)} spids: [1158] ) ] ) ] ) spids: [1128 1164] ) terminator: <Op_Amp '&'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PID) op: Equal rhs: {(DQ ($ VSub_Bang '$!'))} spids: [1169] ) ] spids: [1169] ) (While cond: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:z) op:Equal rhs:{(1)} spids:[1178])] spids: [1178] ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name FETCHOUTFILE))} {(Lit_Other ']')} ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DSIZE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(du)} {(-k)} {(${ VSub_Name FETCHOUTFILE)}) (C {(tr)} {(-d)} {(SQ <'\\t'>)}) (C {(cut)} {(-d)} {(SQ </>)} {(-f)} {(1)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [1205 1237] ) } spids: [1204] ) ] spids: [1204] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (CommandSubPart command_list: (CommandList children: [ (C {(is_num)} {(DQ ($ VSub_Name '$DSIZE'))}) ] ) left_token: <Left_CommandSub '$('> spids: [1244 1250] ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$SIZE')} {(-lt)} {($ VSub_Name '$DSIZE')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DSIZE) op: Equal rhs: {(DQ ($ VSub_Name '$SIZE'))} spids: [1275] ) ] spids: [1275] ) terminator: <Op_Semi ';'> ) ] spids: [16777215 1273] ) ] spids: [16777215 1281] ) (C {(echo)} { (DQ ('SIZE: ') (${ VSub_Name SIZE) (' DOWNLOADED: ') (${ VSub_Name DSIZE) ) } ) (SimpleCommand words: [ {(echo)} { (DQ ('SIZE: ') (${ VSub_Name SIZE) (' DOWNLOADED: ') (${ VSub_Name DSIZE) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(${ VSub_Name LOGOUT)} spids: [1312] ) ] ) ] spids: [16777215 1256] ) ] spids: [16777215 1318] ) ] spids: [16777215 1201] ) ] spids: [16777215 1321] ) (SimpleCommand words: [{(ps)} {(-p)} {(${ VSub_Name PID)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [1337] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1340] ) ] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')}) ] action: [ (Sentence child: (ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ';'> ) ] spids: [16777215 1357] ) ] spids: [16777215 1364] ) (C {(sleep)} {(2)}) ] spids: [1182 1373] ) ) (C {(echo)} {(DQ (FETCHDONE))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXIT) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(cat)} {(${ VSub_Name EXITFILE)})] ) left_token: <Left_Backtick '`'> spids: [1387 1393] ) ) } spids: [1385] ) ] spids: [1385] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(DQ (${ VSub_Name EXIT))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (0))} {(-a)} {(DQ ($ VSub_Name '$EXITFAILED'))} {(Lit_Other '=')} {(DQ (1))} {(Lit_Other ']')} ) ] action: [ (C {(exit_err)} {(DQ ('Error: Failed to download ') (${ VSub_Name FETCHFILE))}) ] spids: [16777215 1429] ) ] spids: [16777215 1442] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_Name '$EXIT')} ) ] spids: [1032] ) spids: [1028 1031] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: get_zpool_name body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DEVICE) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [1465] ) ] spids: [1465] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BASENAME) op: Equal rhs: {(DQ (tank))} spids: [1476] ) ] spids: [1476] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name TMPDIR) (/.zpools))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(mkdir)} {(-p)} {(${ VSub_Name TMPDIR) (/.zpools)})] spids: [16777215 1502] ) ] spids: [16777215 1515] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name TMPDIR) (/.zpools/) (${ VSub_Name DEVICE))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(cat)} {(${ VSub_Name TMPDIR) (/.zpools/) (${ VSub_Name DEVICE)}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 1539] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NUM) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(ls)} {(${ VSub_Name TMPDIR) (/.zpools/)}) (C {(wc)} {(-l)}) (C {(sed)} {(SQ <'s| ||g'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [1566 1587] ) } spids: [1565] ) ] spids: [1565] ) (While cond: [(C {(Lit_Other ':')})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NEWNAME) op: Equal rhs: {(DQ (${ VSub_Name BASENAME) (${ VSub_Name NUM))} spids: [1603] ) ] spids: [1603] ) (Pipeline children: [ (C {(zpool)} {(list)}) (C {(grep)} {(-qw)} {(DQ (${ VSub_Name NEWNAME))}) ] negated: F ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:chk1) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1633] ) ] spids: [1631] ) (Pipeline children: [ (C {(zpool)} {(import)}) (C {(grep)} {(-qw)} {(DQ (${ VSub_Name NEWNAME))}) ] negated: F ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:chk2) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1656] ) ] spids: [1654] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$chk1')} {(-eq)} {(1)} {(-a)} {($ VSub_Name '$chk2')} {(-eq)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ';'> ) ] spids: [16777215 1682] ) ] spids: [16777215 1688] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:NUM) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithVarRef name:NUM) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1693 1698] ) } spids: [1692] ) ] spids: [1692] ) ] spids: [1600 1701] ) ) (C {(mkdir)} {(-p)} {(${ VSub_Name TMPDIR) (/.zpools/) (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {($ VSub_Name '$DEVICE')})] ) left_token: <Left_Backtick '`'> spids: [1717 1721] ) } ) (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Name '$NEWNAME'))}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(${ VSub_Name TMPDIR) (/.zpools/) (${ VSub_Name DEVICE)} spids: [1730] ) ] ) (C {(echo)} {(DQ (${ VSub_Name NEWNAME))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [1558 1755] ) ] spids: [1462] ) spids: [1458 1461] ) terminator: <Op_Semi ';'> ) (FuncDef name: iscompressed body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:FILE) op:Equal spids:[1770])] spids: [1768] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:RES) op:Equal spids:[1775])] spids: [1773] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FILE) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [1779] ) ] spids: [1779] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:RES) op:Equal rhs:{(1)} spids:[1785])] spids: [1785] ) (If arms: [ (if_arm cond: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name FILE))}) (SimpleCommand words: [{(grep)} {(-qiE)} {(SQ <'\\.(Z|lzo|lzw|lzma|gz|bz2|xz|zip)$'>)}] redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[1812])] ) ] negated: F ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:RES) op:Equal rhs:{(0)} spids:[1819])] spids: [1819] ) ] spids: [16777215 1816] ) ] spids: [16777215 1823] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(${ VSub_Name RES)}) ] spids: [1765] ) spids: [1761 1764] ) (FuncDef name: get_compression_type body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:FILE) op:Equal spids:[1845])] spids: [1843] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:SUFFIX) op:Equal spids:[1850])] spids: [1848] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FILE) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [1854] ) ] spids: [1854] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SUFFIX) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name FILE))}) (C {(sed)} {(-E)} {(SQ <'s|^(.+)\\.(.+)$|\\2|'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [1861 1879] ) } spids: [1860] ) ] spids: [1860] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:VAL) op:Equal rhs:{(DQ )} spids:[1883])] spids: [1883] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SUFFIX) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name SUFFIX))}) (C {(tr)} {(A-Z)} {(a-z)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [1889 1905] ) } spids: [1888] ) ] spids: [1888] ) (Case to_match: {(DQ (${ VSub_Name SUFFIX))} arms: [ (case_arm pat_list: [{(z)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VAL) op: Equal rhs: {(DQ (lzw))} spids: [1922] ) ] spids: [1922] ) ] spids: [1919 1920 1927 16777215] ) (case_arm pat_list: [{(lzo)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VAL) op: Equal rhs: {(DQ (lzo))} spids: [1933] ) ] spids: [1933] ) ] spids: [1930 1931 1938 16777215] ) (case_arm pat_list: [{(lzw)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VAL) op: Equal rhs: {(DQ (lzw))} spids: [1944] ) ] spids: [1944] ) ] spids: [1941 1942 1949 16777215] ) (case_arm pat_list: [{(lzma)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VAL) op: Equal rhs: {(DQ (lzma))} spids: [1955] ) ] spids: [1955] ) ] spids: [1952 1953 1960 16777215] ) (case_arm pat_list: [{(gz)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VAL) op: Equal rhs: {(DQ (gzip))} spids: [1966] ) ] spids: [1966] ) ] spids: [1963 1964 1971 16777215] ) (case_arm pat_list: [{(bz2)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VAL) op: Equal rhs: {(DQ (bzip2))} spids: [1977] ) ] spids: [1977] ) ] spids: [1974 1975 1982 16777215] ) (case_arm pat_list: [{(xz)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VAL) op: Equal rhs: {(DQ (xz))} spids: [1988] ) ] spids: [1988] ) ] spids: [1985 1986 1993 16777215] ) (case_arm pat_list: [{(zip)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:VAL) op: Equal rhs: {(DQ (zip))} spids: [1999] ) ] spids: [1999] ) ] spids: [1996 1997 2004 16777215] ) ] spids: [1908 1916 2007] ) (C {(export)} {(VAL)}) ] spids: [1840] ) spids: [1836 1839] ) (Sentence child: (FuncDef name: write_image body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:DEVICE_FILE) op:Equal spids:[2027])] spids: [2025] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IMAGE_FILE) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [2031] ) ] spids: [2031] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DEVICE_FILE) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [2037] ) ] spids: [2037] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name IMAGE_FILE))} {(Lit_Other ']')}) ] action: [(C {(exit_err)} {(DQ ('ERROR: Image file not specified!'))})] spids: [16777215 2059] ) ] spids: [16777215 2069] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name DEVICE_FILE))} {(Lit_Other ']')}) ] action: [(C {(exit_err)} {(DQ ('ERROR: Device file not specified!'))})] spids: [16777215 2089] ) ] spids: [16777215 2099] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ (${ VSub_Name IMAGE_FILE))} {(Lit_Other ']')} ) ] action: [ (C {(exit_err)} {(DQ ("ERROR: '") (${ VSub_Name IMAGE_FILE) ("' does not exist!"))} ) ] spids: [16777215 2121] ) ] spids: [16777215 2135] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DEVICE_FILE) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name DEVICE_FILE> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (dev) (Lit_Slash /)} ) spids: [2141 2147] ) ) } spids: [2139] ) ] spids: [2139] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DEVICE_FILE) op: Equal rhs: {(DQ (/dev/) (${ VSub_Name DEVICE_FILE))} spids: [2151] ) ] spids: [2151] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(KW_Bang '!')} {(-c)} {(DQ (${ VSub_Name DEVICE_FILE))} {(Lit_Other ']')} ) ] action: [ (C {(exit_err)} { (DQ ("ERROR: '") (${ VSub_Name DEVICE_FILE) ("' is not a character device!") ) } ) ] spids: [16777215 2179] ) ] spids: [16777215 2193] ) (If arms: [ (if_arm cond: [(C {(iscompressed)} {(DQ (${ VSub_Name IMAGE_FILE))})] action: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:COMPRESSION) op:Equal spids:[2213])] spids: [2211] ) (C {(get_compression_type)} {(DQ (${ VSub_Name IMAGE_FILE))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMPRESSION) op: Equal rhs: {(DQ (${ VSub_Name VAL))} spids: [2226] ) ] spids: [2226] ) (Case to_match: {(DQ (${ VSub_Name COMPRESSION))} arms: [ (case_arm pat_list: [{(lzw)}] action: [ (C {(rc_halt)} { (DQ ('uncompress ') (${ VSub_Name IMAGE_FILE) (' -c | dd of=') (${ VSub_Name DEVICE_FILE) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IMAGE_FILE) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name IMAGE_FILE> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(.Z)} ) spids: [2266 2270] ) ) } spids: [2264] ) ] spids: [2264] ) ] spids: [2246 2247 2274 16777215] ) (case_arm pat_list: [{(lzo)}] action: [ (C {(rc_halt)} { (DQ ('lzop -d ') ($ VSub_Name '$IMAGE_') ('{FILE} -c | dd of=') (${ VSub_Name DEVICE_FILE) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IMAGE_FILE) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name IMAGE_FILE> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(.lzo)} ) spids: [2296 2300] ) ) } spids: [2294] ) ] spids: [2294] ) ] spids: [2278 2279 2304 16777215] ) (case_arm pat_list: [{(lzma)}] action: [ (C {(rc_halt)} { (DQ ('lzma -d ') (${ VSub_Name IMAGE_FILE) (' -c | dd of=') (${ VSub_Name DEVICE_FILE) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IMAGE_FILE) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name IMAGE_FILE> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(.lzma)} ) spids: [2328 2332] ) ) } spids: [2326] ) ] spids: [2326] ) ] spids: [2308 2309 2336 16777215] ) (case_arm pat_list: [{(gzip)}] action: [ (C {(rc_halt)} { (DQ ('gunzip ') (${ VSub_Name IMAGE_FILE) (' -c | dd of=') (${ VSub_Name DEVICE_FILE) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IMAGE_FILE) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name IMAGE_FILE> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(.gz)} ) spids: [2360 2364] ) ) } spids: [2358] ) ] spids: [2358] ) ] spids: [2340 2341 2368 16777215] ) (case_arm pat_list: [{(bzip2)}] action: [ (C {(rc_halt)} { (DQ ('bunzip2 ') (${ VSub_Name IMAGE_FILE) (' -c | dd of=') (${ VSub_Name DEVICE_FILE) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IMAGE_FILE) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name IMAGE_FILE> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(.bz2)} ) spids: [2392 2396] ) ) } spids: [2390] ) ] spids: [2390] ) ] spids: [2372 2373 2400 16777215] ) (case_arm pat_list: [{(xz)}] action: [ (C {(rc_halt)} { (DQ ('xz -d ') (${ VSub_Name IMAGE_FILE) (' -c | dd of=') (${ VSub_Name DEVICE_FILE) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IMAGE_FILE) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name IMAGE_FILE> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(.xz)} ) spids: [2424 2428] ) ) } spids: [2422] ) ] spids: [2422] ) ] spids: [2404 2405 2432 16777215] ) (case_arm pat_list: [{(zip)}] action: [ (C {(rc_halt)} { (DQ ('unzip ') (${ VSub_Name IMAGE_FILE) (' -c | dd of=') (${ VSub_Name DEVICE_FILE) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IMAGE_FILE) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name IMAGE_FILE> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(.zip)} ) spids: [2456 2460] ) ) } spids: [2454] ) ] spids: [2454] ) ] spids: [2436 2437 2464 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(exit_err)} { (DQ ('ERROR: ') (${ VSub_Name COMPRESSION) (' compression is not supported') ) } ) ] spids: [2468 2469 2484 16777215] ) ] spids: [2235 2243 2487] ) ] spids: [16777215 2208] ) ] else_action: [ (C {(rc_halt)} {(DQ ('dd if=') (${ VSub_Name IMAGE_FILE) (' of=') (${ VSub_Name DEVICE_FILE))} ) ] spids: [2491 2509] ) ] spids: [2022] ) spids: [2018 2021] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: install_fresh body: (BraceGroup children: [ (C {(setup_disk_slice)}) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name ROOTIMAGE))} {(Lit_Other ']')}) ] action: [ (C {(setup_disk_label)}) (C {(setup_filesystems)}) (C {(mount_all_filesystems)}) (C {(init_extraction)}) (C {(install_components)}) (C {(install_packages)}) (C {(run_localize)}) (C {(save_networking_install)}) (C {(setup_users)}) (C {(run_final_cleanup)}) (C {(run_commands)}) (C {(unmount_all_filesystems)}) ] spids: [16777215 2549] ) ] spids: [16777215 2655] ) (C {(echo_log)} {(DQ ('Installation finished!'))}) ] spids: [2522] ) spids: [2518 2521] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: install_extractonly body: (BraceGroup children: [ (C {(init_extraction)}) (C {(install_components)}) (C {(install_packages)}) (C {(run_localize)}) (C {(save_networking_install)}) (C {(setup_users)}) (C {(run_commands)}) (C {(setup_hostname)}) (C {(set_root_pw)}) (C {(echo_log)} {(DQ ('Installation finished!'))}) ] spids: [2676] ) spids: [2672 2675] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: install_image body: (BraceGroup children: [(C {(init_extraction)}) (C {(echo_log)} {(DQ ('Installation finished!'))})] spids: [2768] ) spids: [2764 2767] ) terminator: <Op_Semi ';'> ) (Sentence child: (FuncDef name: install_upgrade body: (BraceGroup children: [ (C {(mount_upgrade)}) (C {(init_extraction)}) (C {(run_localize)}) (C {(run_commands)}) (C {(merge_old_configs)}) (C {(install_components)}) (C {(install_packages)}) (C {(unmount_upgrade)}) (C {(echo_log)} {(DQ ('Upgrade finished!'))}) ] spids: [2794] ) spids: [2790 2793] ) terminator: <Op_Semi ';'> ) ] )