(command.CommandList children: [ (command.Sentence child: (command.ShFunction name: mount_partition body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Number 1))} {<-o>} {<-z>} {(DQ (${ Id.VSub_Number 2))} {<-o>} {<-z>} {(DQ (${ Id.VSub_Number 3))} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<exit_err>} {(DQ <'ERROR: Missing arguments for mount_partition'>)})] spids: [93 128] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PART) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Number 1))} spids: [142] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PARTFS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Number 2))} spids: [150] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MNTPOINT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Number 3))} spids: [158] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MNTFLAGS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Number 4))} spids: [166] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name MNTOPTS))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MNTFLAGS) op: assign_op.Equal rhs: {(DQ <'-o rw'>)} spids: [197] ) ] ) ] spids: [179 194] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MNTFLAGS) op: assign_op.Equal rhs: {(DQ <'-o rw,'> (${ Id.VSub_Name MNTFLAGS))} spids: [206] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name PARTFS))} {<Id.Lit_Equals '='>} {(DQ <ZFS>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (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: [246] ) ] ) (command.ForEach iter_name: ZMNT iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(${ Id.VSub_Name MNTPOINT)}) (C {<sed>} {(SQ <'s|,| |g'>)}) ] negated: F ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ZMNTOPTS) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$ZMNT')}) (C {<cut>} {<-d>} {(SQ <'('>)} {<-f>} {<2>}) (C {<cut>} {<-d>} {(SQ <')'>)} {<-f>} {<1>}) ] negated: F ) ) ) } spids: [295] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ZMNTOPTS'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$ZMNT'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ZMNTOPTS) op: assign_op.Equal rhs: {(DQ )} spids: [356] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [336 354] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ZMNT) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$ZMNT')}) (C {<cut>} {<-d>} {(SQ <'('>)} {<-f>} {<1>}) ] negated: F ) ) ) } spids: [370] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} { (DQ (${ Id.VSub_Name FSMNT) (${ Id.VSub_Name ZMNT)) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<mkdir>} {<-p>} {(${ Id.VSub_Name FSMNT) (${ Id.VSub_Name ZMNT)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name LOGOUT)} ) (redir op: <Id.Redir_DGreat '2>>'> loc: (redir_loc.Fd fd:2) arg: {(${ Id.VSub_Name LOGOUT)} ) ] do_fork: T ) ] spids: [401 422] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:zcopt) op: assign_op.Equal rhs: {(DQ )} spids: [455] ) ] ) (command.ForEach iter_name: ZOPT iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$ZMNTOPTS')}) (C {<sed>} {(SQ <'s/|/ /g'>)}) ] negated: F ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$ZOPT'))}) (C {<grep>} {<-q>} {<volsize>}) ] 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: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:volsize) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$ZOPT')} ) (C {<cut>} {<-d>} {(SQ <'='>)} {<-f>} {<2>} ) ] negated: F ) ) } spids: [518] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:zcopt) op: assign_op.Equal rhs: { (DQ <'-V '> ($ Id.VSub_DollarName '$volsize') ) } spids: [542] ) ] ) ] spids: [501 515] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name ZMNT))} {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ZNAME) op: assign_op.Equal rhs: {(DQ <'/ROOT/default'>)} spids: [583] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ZMKMNT) op: assign_op.Equal rhs: {(DQ )} spids: [589] ) ] ) (C {<echo_log>} { (DQ <'zfs create '> ($ Id.VSub_DollarName '$zcopt') <' -p '> (${ Id.VSub_Name ZPOOLNAME) <'/ROOT'> ) } ) (C {<rc_halt>} { (DQ <'zfs create '> ($ Id.VSub_DollarName '$zcopt') <' -p '> (${ Id.VSub_Name ZPOOLNAME) <'/ROOT'> ) } ) (C {<echo_log>} { (DQ <'zfs create '> ($ Id.VSub_DollarName '$zcopt') <' -p '> (${ Id.VSub_Name ZPOOLNAME) (${ Id.VSub_Name ZNAME) ) } ) (C {<rc_halt>} { (DQ <'zfs create '> ($ Id.VSub_DollarName '$zcopt') <' -p '> (${ Id.VSub_Name ZPOOLNAME) (${ Id.VSub_Name ZNAME) ) } ) ] spids: [556 576] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ZNAME) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name ZMNT))} spids: [653] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ZMKMNT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name ZMNT))} spids: [661] ) ] ) (C {<echo_log>} { (DQ <'zfs create '> ($ Id.VSub_DollarName '$zcopt') <' -p '> (${ Id.VSub_Name ZPOOLNAME) (${ Id.VSub_Name ZNAME) ) } ) (C {<rc_halt>} { (DQ <'zfs create '> ($ Id.VSub_DollarName '$zcopt') <' -p '> (${ Id.VSub_Name ZPOOLNAME) (${ Id.VSub_Name ZNAME) ) } ) ] ) (C {<sleep>} {<2>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$zcopt'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rc_halt>} { (DQ <'zfs set mountpoint='> (${ Id.VSub_Name FSMNT) (${ Id.VSub_Name ZMKMNT) <' '> (${ Id.VSub_Name ZPOOLNAME) (${ Id.VSub_Name ZNAME) ) } ) ] spids: [707 721] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ZMNT'))} {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo_log>} { (DQ <'Stamping '> (${ Id.VSub_Name ZPOOLNAME) <'/ROOT/default as bootfs'> ) } ) (C {<rc_halt>} { (DQ <'zpool set bootfs='> (${ Id.VSub_Name ZPOOLNAME) <'/ROOT/default '> (${ Id.VSub_Name ZPOOLNAME) ) } ) ] spids: [752 770] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$ZMNT'))} {<Id.Lit_Equals '='>} {(DQ <'/boot'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo_log>} { (DQ <'Stamping '> (${ Id.VSub_Name ZPOOLNAME) (${ Id.VSub_Name ZMNT) <' as bootfs'> ) } ) (C {<rc_halt>} { (DQ <'zpool set bootfs='> (${ Id.VSub_Name ZPOOLNAME) (${ Id.VSub_Name ZMNT) <' '> (${ Id.VSub_Name ZPOOLNAME) ) } ) ] spids: [806 824] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$ZMNTOPTS'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) terminator: <Id.Op_Semi _> ) ] spids: [866 880] ) ] ) (command.ForEach iter_name: ZOPT iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$ZMNTOPTS')}) (C {<sed>} {(SQ <'s/|/ /g'>)}) ] negated: F ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$ZOPT'))}) (C {<grep>} {<-q>} {<volsize>}) ] 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: [ (command.Sentence child: (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) terminator: <Id.Op_Semi _> ) ] spids: [935 949] ) ] ) (C {<rc_halt>} { (DQ <'zfs set '> ($ Id.VSub_DollarName '$ZOPT') <' '> (${ Id.VSub_Name ZPOOLNAME) (${ Id.VSub_Name ZNAME) ) } ) ] ) ) ] ) ) ] spids: [224 243] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ (${ Id.VSub_Name FSMNT) (${ Id.VSub_Name MNTPOINT))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [ {<mkdir>} {<-p>} {(${ Id.VSub_Name FSMNT) (${ Id.VSub_Name MNTPOINT)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name LOGOUT)} ) (redir op: <Id.Redir_DGreat '2>>'> loc: (redir_loc.Fd fd:2) arg: {(${ Id.VSub_Name LOGOUT)} ) ] do_fork: T ) ] spids: [994 1014] ) ] ) (C {<echo_log>} { (DQ <'mount '> (${ Id.VSub_Name MNTFLAGS) <' '> (${ Id.VSub_Name PART) <' -> '> (${ Id.VSub_Name FSMNT) (${ Id.VSub_Name MNTPOINT) ) } ) (C {<sleep>} {<2>}) (C {<rc_halt>} { (DQ <'mount '> (${ Id.VSub_Name MNTFLAGS) <' '> (${ Id.VSub_Name PART) <' '> (${ Id.VSub_Name FSMNT) (${ Id.VSub_Name MNTPOINT) ) } ) ] ) ] ) ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShFunction name: mount_all_filesystems body: (BraceGroup children: [ (command.Simple words: [{<mkdir>} {<-p>} {(${ Id.VSub_Name FSMNT)}] 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 ) (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: { (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: [1155] ) ] ) (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: [1174] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} {(DQ (${ Id.VSub_Name PARTDEV))} {<-a>} {(DQ (${ Id.VSub_Name PARTFS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <ZFS>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<exit_err>} { (DQ <'ERROR: The partition '> (${ Id.VSub_Name PARTDEV) <' does not exist. Failure in bsdlabel?'> ) } ) ] spids: [1206 1238] ) ] ) (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: [1257] ) ] ) (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: [1289] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name PARTENC))} {<Id.Lit_Equals '='>} {(DQ <ON>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXT) op: assign_op.Equal rhs: {(DQ <.eli>)} spids: [1344] ) ] ) ] spids: [1322 1341] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXT) op: assign_op.Equal rhs: {(DQ )} spids: [1353] ) ] ) ] ) (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$PARTMNT'))}) (command.Simple words: [{<grep>} {(DQ <'/,'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_QMark '$?'))} {<Id.Lit_Equals '='>} {(DQ <0>)} {<-o>} {(DQ ($ Id.VSub_DollarName '$PARTMNT'))} {<Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Case to_match: {(${ Id.VSub_Name PARTFS)} arms: [ (case_arm pat_list: [{<UFS>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT)} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} {(DQ <noatime>)} ) ] spids: [1425 1426 1449 -1] ) (case_arm pat_list: [{<UFS> <Id.Lit_Other '+'> <S>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT)} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} {(DQ <noatime>)} ) ] spids: [1452 1455 1478 -1] ) (case_arm pat_list: [{<UFS> <Id.Lit_Other '+'> <SUJ>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT)} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} {(DQ <noatime>)} ) ] spids: [1481 1484 1507 -1] ) (case_arm pat_list: [{<UFS> <Id.Lit_Other '+'> <J>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) <.journal>} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} {(DQ <'async,noatime'>)} ) ] spids: [1510 1513 1537 -1] ) (case_arm pat_list: [{<ZFS>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV)} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} ) ] spids: [1540 1541 1557 -1] ) (case_arm pat_list: [{<IMAGE>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV)} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} ) ] spids: [1560 1561 1577 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<exit_err>} { (DQ <'ERROR: Got unknown file-system type '> ($ Id.VSub_DollarName '$PARTFS') ) } ) ] spids: [1580 1581 1590 -1] ) ] ) ] spids: [1384 1413] ) ] ) ] ) ) (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: { (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: [1631] ) ] ) (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: [1649] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} {(DQ (${ Id.VSub_Name PARTDEV))} {<-a>} {(DQ (${ Id.VSub_Name PARTFS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <ZFS>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<exit_err>} { (DQ <'ERROR: The partition '> (${ Id.VSub_Name PARTDEV) <' does not exist. Failure in bsdlabel?'> ) } ) ] spids: [1681 1713] ) ] ) (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: [1733] ) ] ) (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: [1765] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name PARTENC))} {<Id.Lit_Equals '='>} {(DQ <ON>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXT) op: assign_op.Equal rhs: {(DQ <.eli>)} spids: [1820] ) ] ) ] spids: [1798 1817] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:EXT) op: assign_op.Equal rhs: {(DQ )} spids: [1829] ) ] ) ] ) (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$PARTMNT'))}) (command.Simple words: [{<grep>} {(DQ <'/,'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_QMark '$?'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <0>)} {<-a>} {(DQ ($ Id.VSub_DollarName '$PARTMNT'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Case to_match: {(${ Id.VSub_Name PARTFS)} arms: [ (case_arm pat_list: [{<UFS>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT)} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} {(DQ <noatime>)} ) ] spids: [1903 1904 1927 -1] ) (case_arm pat_list: [{<UFS> <Id.Lit_Other '+'> <S>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT)} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} {(DQ <noatime>)} ) ] spids: [1930 1933 1956 -1] ) (case_arm pat_list: [{<UFS> <Id.Lit_Other '+'> <SUJ>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT)} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} {(DQ <noatime>)} ) ] spids: [1959 1962 1985 -1] ) (case_arm pat_list: [{<UFS> <Id.Lit_Other '+'> <J>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV) (${ Id.VSub_Name EXT) <.journal>} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} {(DQ <'async,noatime'>)} ) ] spids: [1988 1991 2015 -1] ) (case_arm pat_list: [{<ZFS>}] action: [ (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV)} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} ) ] spids: [2018 2019 2035 -1] ) (case_arm pat_list: [{<SWAP>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$PARTENC'))} {<Id.Lit_Equals '='>} {(DQ <ON>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo_log>} { (DQ <'Enabling encrypted swap on '> (${ Id.VSub_Name PARTDEV) ) } ) (C {<rc_halt>} { (DQ <'geli onetime -d -e 3des '> (${ Id.VSub_Name PARTDEV) ) } ) (C {<sleep>} {<5>}) (C {<rc_halt>} {(DQ <'swapon '> (${ Id.VSub_Name PARTDEV) <.eli>)} ) ] spids: [2046 2063] ) ] else_action: [ (C {<echo_log>} {(DQ <'swapon '> (${ Id.VSub_Name PARTDEV))}) (C {<sleep>} {<5>}) (C {<rc_halt>} {(DQ <'swapon '> (${ Id.VSub_Name PARTDEV))}) ] ) ] spids: [2038 2039 2133 -1] ) (case_arm pat_list: [{<IMAGE>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ (${ Id.VSub_Name PARTMNT))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name PARTMNT))}) ] spids: [2140 2157] ) ] ) (C {<mount_partition>} {(${ Id.VSub_Name PARTDEV)} {(${ Id.VSub_Name PARTFS)} {(${ Id.VSub_Name PARTMNT)} ) ] spids: [2136 2137 2191 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<exit_err>} { (DQ <'ERROR: Got unknown file-system type '> ($ Id.VSub_DollarName '$PARTFS') ) } ) ] spids: [2194 2195 2204 -1] ) ] ) ] spids: [1860 1891] ) ] ) ] ) ) ] ) ) terminator: <Id.Op_Semi _> ) ] )