(command.CommandList children: [ (command.Sentence child: (command.ShFunction name: setup_zfs_filesystem body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PART) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [94] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTFS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$2'))} spids: [100] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTMNT) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$3'))} spids: [106] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXT) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$4'))} spids: [112] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTGEOM) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$5'))} spids: [118] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ZPOOLOPTS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$6'))} spids: [124] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ROOTSLICE) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(${ Id.VSub_Name PART)}) (C {<rev>}) (C {<cut>} {<-b>} {<2->}) (C {<rev>}) ] negated: F ) ) ) } spids: [130] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ZPOOLNAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<get_zpool_name>} {(DQ (${ Id.VSub_Name PART))}) ) } spids: [160] ) ] ) (C {<sleep>} {<5>}) (C {<sync>}) (command.ForEach iter_name: i iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(${ Id.VSub_Name PARTMNT)}) (C {<sed>} {(SQ <'s|,| |g'>)}) ] negated: F ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name i))} {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<-o>} {(DQ (${ Id.VSub_Name i))} {<Id.Lit_Equals '='>} {(DQ <'/boot'>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$HAVEBOOT'))} {<Id.Lit_Equals '='>} {(DQ <YES>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) terminator: <Id.Op_Semi _> ) ] spids: [258 276] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name PARTGEOM))} {<Id.Lit_Equals '='>} {(DQ <MBR>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo_log>} {(DQ <'Setting up ZFS boot loader support'>)}) (C {<rc_halt>} { (DQ <'dd if=/boot/zfsboot of='> (${ Id.VSub_Name ROOTSLICE) <' count=1'> ) } ) (C {<rc_halt>} { (DQ <'dd if=/boot/zfsboot of='> (${ Id.VSub_Name PART) (${ Id.VSub_Name EXT) <' skip=1 seek=1024'> ) } ) ] spids: [285 305] ) ] ) ] spids: [222 255] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ (${ Id.VSub_Name ZPOOLOPTS))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<local>} {<Id.Lit_VarLike 'gnopDev='> (DQ )}) (C {<local>} {<Id.Lit_VarLike 'newOpts='> (DQ )}) (command.ForEach iter_name: i iter_words: [{($ Id.VSub_DollarName '$ZPOOLOPTS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$i'))}) (C {<grep>} {<-q>} {(SQ <'/dev/'>)}) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rc_halt>} {(DQ <'gnop create -S 4096 '> (${ Id.VSub_Name i))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gnopDev) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$gnopDev') <' '> ($ Id.VSub_DollarName '$i') ) } spids: [455] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:newOpts) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$newOpts') <' '> (${ Id.VSub_Name i) <.nop> ) } spids: [463] ) ] ) ] spids: [428 442] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:newOpts) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$newOpts') <' '> ($ Id.VSub_DollarName '$i') ) } spids: [477] ) ] ) ] ) ] ) ) (C {<echo_log>} { (DQ <'Creating zpool '> (${ Id.VSub_Name ZPOOLNAME) <' with '> ($ Id.VSub_DollarName '$newOpts') ) } ) (C {<rc_halt>} { (DQ <'zpool create -m none -f '> (${ Id.VSub_Name ZPOOLNAME) <' '> (${ Id.VSub_Name newOpts) ) } ) (C {<rc_halt>} {(DQ <'zpool export '> (${ Id.VSub_Name ZPOOLNAME))}) (command.ForEach iter_name: i iter_words: [{($ Id.VSub_DollarName '$gnopDev')}] do_arg_iter: F body: (command.DoGroup children: [ (C {<rc_halt>} {(DQ <'gnop destroy '> (${ Id.VSub_Name i) <.nop>)}) ] ) ) (C {<rc_halt>} {(DQ <'zpool import '> (${ Id.VSub_Name ZPOOLNAME))}) ] spids: [360 378] ) ] else_action: [ (C {<rc_halt>} {(DQ <'gnop create -S 4096 '> (${ Id.VSub_Name PART) (${ Id.VSub_Name EXT))} ) (C {<echo_log>} { (DQ <'Creating zpool '> (${ Id.VSub_Name ZPOOLNAME) <' on '> (${ Id.VSub_Name PART) (${ Id.VSub_Name EXT) ) } ) (C {<rc_halt>} { (DQ <'zpool create -m none -f '> (${ Id.VSub_Name ZPOOLNAME) <' '> (${ Id.VSub_Name PART) (${ Id.VSub_Name EXT) <.nop> ) } ) (C {<rc_halt>} {(DQ <'zpool export '> (${ Id.VSub_Name ZPOOLNAME))}) (C {<rc_halt>} {(DQ <'gnop destroy '> (${ Id.VSub_Name PART) (${ Id.VSub_Name EXT) <.nop>)} ) (C {<rc_halt>} {(DQ <'zpool import '> (${ Id.VSub_Name ZPOOLNAME))}) ] ) (C {<rc_nohalt>} {(DQ <'zfs set atime=off '> (${ Id.VSub_Name ZPOOLNAME))}) ] ) ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShFunction name: setup_filesystems body: (BraceGroup children: [ (command.Simple words: [{<rm>} {<-rf>} {(${ Id.VSub_Name GELIKEYDIR)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<mkdir>} {(${ Id.VSub_Name GELIKEYDIR)}) (command.ForEach iter_name: PART iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<ls>} {(${ Id.VSub_Name PARTDIR)}) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTDEV) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$PART')}) (C {<sed>} {(SQ <'s|-|/|g'>)}) ] negated: F ) ) ) } spids: [769] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTFS) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name PARTDIR) <'/'> (${ Id.VSub_Name PART)} ) (C {<cut>} {<-d>} {(SQ <'#'>)} {<-f>} {<1>}) ] negated: F ) ) ) } spids: [789] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTMNT) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name PARTDIR) <'/'> (${ Id.VSub_Name PART)} ) (C {<cut>} {<-d>} {(SQ <'#'>)} {<-f>} {<2>}) ] negated: F ) ) ) } spids: [821] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTENC) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name PARTDIR) <'/'> (${ Id.VSub_Name PART)} ) (C {<cut>} {<-d>} {(SQ <'#'>)} {<-f>} {<3>}) ] negated: F ) ) ) } spids: [853] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTLABEL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name PARTDIR) <'/'> (${ Id.VSub_Name PART)} ) (C {<cut>} {<-d>} {(SQ <'#'>)} {<-f>} {<4>}) ] negated: F ) ) ) } spids: [885] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTGEOM) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name PARTDIR) <'/'> (${ Id.VSub_Name PART)} ) (C {<cut>} {<-d>} {(SQ <'#'>)} {<-f>} {<5>}) ] negated: F ) ) ) } spids: [917] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTXTRAOPTS) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name PARTDIR) <'/'> (${ Id.VSub_Name PART)} ) (C {<cut>} {<-d>} {(SQ <'#'>)} {<-f>} {<6>}) ] negated: F ) ) ) } spids: [949] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTIMAGE) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name PARTDIR) <'/'> (${ Id.VSub_Name PART)} ) (C {<cut>} {<-d>} {(SQ <'#'>)} {<-f>} {<7>}) ] negated: F ) ) ) } spids: [981] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} {(DQ (${ Id.VSub_Name PARTDEV))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<exit_err>} { (DQ <'ERROR: The partition '> (${ Id.VSub_Name PARTDEV) <' does not exist. Failure in bsdlabel?'> ) } ) ] spids: [1014 1032] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-e>} {(DQ (${ Id.VSub_Name PARTDEV) <.journal>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<rc_nohalt>} {(DQ <'gjournal stop -f '> (${ Id.VSub_Name PARTDEV) <.journal>)} ) (C {<rc_nohalt>} {(DQ <'gjournal clear '> (${ Id.VSub_Name PARTDEV))}) ] spids: [1055 1071] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name PARTENC))} {<Id.Lit_Equals '='>} {(DQ <ON>)} {<-a>} {(DQ (${ Id.VSub_Name PARTFS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <SWAP>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo_log>} {(DQ <'Creating geli provider for '> (${ Id.VSub_Name PARTDEV))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-e>} { (DQ (${ Id.VSub_Name PARTDIR) <'-enc/'> (${ Id.VSub_Name PART) <-encpass> ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rc_halt>} { (DQ <'dd if=/dev/random of='> (${ Id.VSub_Name GELIKEYDIR) <'/'> (${ Id.VSub_Name PART) <'.key bs=64 count=1'> ) } ) (C {<rc_halt>} { (DQ <'geli init -J '> (${ Id.VSub_Name PARTDIR) <'-enc/'> (${ Id.VSub_Name PART) <'-encpass '> (${ Id.VSub_Name PARTDEV) ) } ) (C {<rc_halt>} { (DQ <'geli attach -j '> (${ Id.VSub_Name PARTDIR) <'-enc/'> (${ Id.VSub_Name PART) <'-encpass '> (${ Id.VSub_Name PARTDEV) ) } ) ] spids: [1151 1172] ) ] else_action: [ (C {<rc_halt>} { (DQ <'dd if=/dev/random of='> (${ Id.VSub_Name GELIKEYDIR) <'/'> (${ Id.VSub_Name PART) <'.key bs=64 count=1'> ) } ) (C {<rc_halt>} { (DQ <'geli init -b -s 4096 -P -K '> (${ Id.VSub_Name GELIKEYDIR) <'/'> (${ Id.VSub_Name PART) <'.key '> (${ Id.VSub_Name PARTDEV) ) } ) (C {<rc_halt>} { (DQ <'geli attach -p -k '> (${ Id.VSub_Name GELIKEYDIR) <'/'> (${ Id.VSub_Name PART) <'.key '> (${ Id.VSub_Name PARTDEV) ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXT) op: assign_op.Equal rhs: {(DQ <.eli>)} spids: [1293] ) ] ) ] spids: [1103 1137] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXT) op: assign_op.Equal rhs: {(DQ )} spids: [1306] ) ] ) ] ) (command.Case to_match: {(${ Id.VSub_Name PARTFS)} arms: [ (case_arm pat_list: [{<UFS>}] action: [ (C {<echo_log>} { (DQ <'NEWFS: '> (${ Id.VSub_Name PARTDEV) <' - '> (${ Id.VSub_Name PARTFS) ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} { (DQ <'newfs -t '> (${ Id.VSub_Name PARTXTRAOPTS) <' '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} {(DQ <sync>)}) (C {<rc_halt>} { (DQ <'glabel label '> (${ Id.VSub_Name PARTLABEL) <' '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) ) } ) (C {<rc_halt>} {(DQ <sync>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$PARTMNT'))} {<Id.Lit_Equals '='>} {(DQ <'/boot'>)} {<-o>} {(DQ (${ Id.VSub_Name PARTMNT))} {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HAVEBOOT) op: assign_op.Equal rhs: {(DQ <YES>)} spids: [1440] ) ] ) ] spids: [1405 1437] ) ] ) (C {<sleep>} {<2>}) ] spids: [1324 1325 1454 -1] ) (case_arm pat_list: [{<UFS> <Id.Lit_Other '+'> <S>}] action: [ (C {<echo_log>} { (DQ <'NEWFS: '> (${ Id.VSub_Name PARTDEV) <' - '> (${ Id.VSub_Name PARTFS) ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} { (DQ <'newfs -t '> (${ Id.VSub_Name PARTXTRAOPTS) <' -U '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} {(DQ <sync>)}) (C {<rc_halt>} { (DQ <'glabel label '> (${ Id.VSub_Name PARTLABEL) <' '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) ) } ) (C {<rc_halt>} {(DQ <sync>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$PARTMNT'))} {<Id.Lit_Equals '='>} {(DQ <'/boot'>)} {<-o>} {(DQ (${ Id.VSub_Name PARTMNT))} {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HAVEBOOT) op: assign_op.Equal rhs: {(DQ <YES>)} spids: [1575] ) ] ) ] spids: [1540 1572] ) ] ) (C {<sleep>} {<2>}) ] spids: [1458 1461 1589 -1] ) (case_arm pat_list: [{<UFS> <Id.Lit_Other '+'> <SUJ>}] action: [ (C {<echo_log>} { (DQ <'NEWFS: '> (${ Id.VSub_Name PARTDEV) <' - '> (${ Id.VSub_Name PARTFS) ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} { (DQ <'newfs -t '> (${ Id.VSub_Name PARTXTRAOPTS) <' -U '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} {(DQ <sync>)}) (C {<rc_halt>} { (DQ <'tunefs -j enable '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} {(DQ <sync>)}) (C {<rc_halt>} { (DQ <'glabel label '> (${ Id.VSub_Name PARTLABEL) <' '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) ) } ) (C {<rc_halt>} {(DQ <sync>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$PARTMNT'))} {<Id.Lit_Equals '='>} {(DQ <'/boot'>)} {<-o>} {(DQ (${ Id.VSub_Name PARTMNT))} {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HAVEBOOT) op: assign_op.Equal rhs: {(DQ <YES>)} spids: [1735] ) ] ) ] spids: [1700 1732] ) ] ) (C {<sleep>} {<2>}) ] spids: [1593 1596 1749 -1] ) (case_arm pat_list: [{<UFS> <Id.Lit_Other '+'> <J>}] action: [ (C {<echo_log>} { (DQ <'NEWFS: '> (${ Id.VSub_Name PARTDEV) <' - '> (${ Id.VSub_Name PARTFS) ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} {(DQ <'newfs '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT))} ) (C {<sleep>} {<2>}) (C {<rc_halt>} { (DQ <'gjournal label -f '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} { (DQ <'newfs '> (${ Id.VSub_Name PARTXTRAOPTS) <' -O 2 -J '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) <.journal> ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} {(DQ <sync>)}) (C {<rc_halt>} { (DQ <'glabel label '> (${ Id.VSub_Name PARTLABEL) <' '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) <.journal> ) } ) (C {<rc_halt>} {(DQ <sync>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$PARTMNT'))} {<Id.Lit_Equals '='>} {(DQ <'/boot'>)} {<-o>} {(DQ (${ Id.VSub_Name PARTMNT))} {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HAVEBOOT) op: assign_op.Equal rhs: {(DQ <YES>)} spids: [1909] ) ] ) ] spids: [1874 1906] ) ] ) (C {<sleep>} {<2>}) ] spids: [1754 1757 1923 -1] ) (case_arm pat_list: [{<ZFS>}] action: [ (C {<echo_log>} { (DQ <'NEWFS: '> (${ Id.VSub_Name PARTDEV) <' - '> (${ Id.VSub_Name PARTFS) ) } ) (C {<setup_zfs_filesystem>} {(DQ (${ Id.VSub_Name PARTDEV))} {(DQ (${ Id.VSub_Name PARTFS))} {(DQ (${ Id.VSub_Name PARTMNT))} {(DQ (${ Id.VSub_Name EXT))} {(DQ (${ Id.VSub_Name PARTGEOM))} {(DQ (${ Id.VSub_Name PARTXTRAOPTS))} ) ] spids: [1927 1928 1985 -1] ) (case_arm pat_list: [{<SWAP>}] action: [ (C {<rc_halt>} {(DQ <sync>)}) (C {<rc_halt>} { (DQ <'glabel label '> (${ Id.VSub_Name PARTLABEL) <' '> (${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) ) } ) (C {<rc_halt>} {(DQ <sync>)}) (C {<sleep>} {<2>}) ] spids: [1989 1990 2030 -1] ) (case_arm pat_list: [{<IMAGE>}] action: [ (C {<write_image>} {(DQ (${ Id.VSub_Name PARTIMAGE))} {(DQ (${ Id.VSub_Name PARTDEV))} ) (C {<sleep>} {<2>}) ] spids: [2034 2035 2058 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<exit_err>} { (DQ <'ERROR: Got unknown file-system type '> ($ Id.VSub_DollarName '$PARTFS') ) } ) ] spids: [2063 2064 2073 -1] ) ] ) ] ) ) ] ) ) terminator: <Id.Op_Semi _> ) ] )