(command.CommandList children: [ (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: {<'/usr/bin'> <Id.Lit_Colon ':'> <'/usr/sbin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH) } spids: [78] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<PATH>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STMSBOOTUTIL='> name:STMSBOOTUTIL) op: assign_op.Equal rhs: {<'/lib/mpxio/stmsboot_util'>} spids: [90] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STMSMETHODSCRIPT='> name:STMSMETHODSCRIPT) op: assign_op.Equal rhs: {<'/lib/svc/method/mpxio-upgrade'>} spids: [93] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KDRVCONF='> name:KDRVCONF) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [96] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DRVCONF='> name:DRVCONF) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [98] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPDRVCONF='> name:TMPDRVCONF) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [100] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TMPDRVCONF_MPXIO_ENTRY='> name: TMPDRVCONF_MPXIO_ENTRY ) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [102] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TMPDRVCONF_SATA_ENTRY='> name: TMPDRVCONF_SATA_ENTRY ) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [104] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DRVLIST='> name:DRVLIST) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [106] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GUID='> name:GUID) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [108] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VFSTAB='> name:VFSTAB) op: assign_op.Equal rhs: {<'/etc/vfstab'>} spids: [110] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SAVEDIR='> name:SAVEDIR) op: assign_op.Equal rhs: {<'/etc/mpxio'>} spids: [113] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BOOTDEVICES='> name:BOOTDEVICES) op: assign_op.Equal rhs: {($ Id.VSub_DollarName SAVEDIR) <'/boot-devices'>} spids: [116] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RECOVERFILE='> name:RECOVERFILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName SAVEDIR) <'/recover_instructions'>} spids: [120] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SVCCFG_RECOVERY='> name:SVCCFG_RECOVERY) op: assign_op.Equal rhs: {($ Id.VSub_DollarName SAVEDIR) <'/svccfg_recover'>} spids: [124] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUPPORTED_DRIVERS='> name:SUPPORTED_DRIVERS) op: assign_op.Equal rhs: {(DQ <'fp|mpt|mpt_sas|pmcs'>)} spids: [128] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} { (DQ <'Usage: stmsboot [-D '> ($ Id.VSub_DollarName SUPPORTED_DRIVERS) <'] -e | -d | -u | -L | -l controller_number'> ) } ) right: <Id.Backtick_Right '`'> ) } spids: [133] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEXTDOMAIN='> name:TEXTDOMAIN) op: assign_op.Equal rhs: {<SUNW_OST_OSCMD>} spids: [146] ) ] redirects: [] ) (C {<export>} {<TEXTDOMAIN>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STMSINSTANCE='> name:STMSINSTANCE) op: assign_op.Equal rhs: {<svc> <Id.Lit_Colon ':'> <'system/device/mpxio-upgrade'> <Id.Lit_Colon ':'> <default>} spids: [153] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FASTBOOTINSTANCE='> name:FASTBOOTINSTANCE) op: assign_op.Equal rhs: {<svc> <Id.Lit_Colon ':'> <'system/boot-config'> <Id.Lit_Colon ':'> <default>} spids: [160] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'STMSBOOT='> name:STMSBOOT) op: assign_op.Equal rhs: {<'/usr/sbin/stmsboot'>} spids: [167] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BOOTADM='> name:BOOTADM) op: assign_op.Equal rhs: {<'/sbin/bootadm'>} spids: [170] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MOUNT='> name:MOUNT) op: assign_op.Equal rhs: {<'/usr/sbin/mount'>} spids: [173] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EEPROM='> name:EEPROM) op: assign_op.Equal rhs: {<'/usr/sbin/eeprom'>} spids: [176] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EGREP='> name:EGREP) op: assign_op.Equal rhs: {<'/usr/bin/egrep'>} spids: [179] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GREP='> name:GREP) op: assign_op.Equal rhs: {<'/usr/bin/grep'>} spids: [182] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'AWK='> name:AWK) op: assign_op.Equal rhs: {<'/usr/bin/awk'>} spids: [185] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CP='> name:CP) op: assign_op.Equal rhs: {<'/usr/bin/cp'>} spids: [188] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DF='> name:DF) op: assign_op.Equal rhs: {<'/usr/bin/df'>} spids: [191] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LS='> name:LS) op: assign_op.Equal rhs: {<'/usr/bin/ls'>} spids: [194] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MV='> name:MV) op: assign_op.Equal rhs: {<'/usr/bin/mv'>} spids: [197] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RM='> name:RM) op: assign_op.Equal rhs: {<'/usr/bin/rm'>} spids: [200] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SORT='> name:SORT) op: assign_op.Equal rhs: {<'/usr/bin/sort'>} spids: [203] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UNIQ='> name:UNIQ) op: assign_op.Equal rhs: {<'/usr/bin/uniq'>} spids: [206] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXPR='> name:EXPR) op: assign_op.Equal rhs: {<'/usr/bin/expr'>} spids: [209] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MKDIR='> name:MKDIR) op: assign_op.Equal rhs: {<'/usr/bin/mkdir'>} spids: [212] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REBOOT='> name:REBOOT) op: assign_op.Equal rhs: {<'/usr/sbin/reboot'>} spids: [215] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SED='> name:SED) op: assign_op.Equal rhs: {<'/usr/bin/sed'>} spids: [218] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SVCPROP='> name:SVCPROP) op: assign_op.Equal rhs: {<'/usr/bin/svcprop'>} spids: [221] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SVCCFG='> name:SVCCFG) op: assign_op.Equal rhs: {<'/usr/sbin/svccfg'>} spids: [224] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SVCS='> name:SVCS) op: assign_op.Equal rhs: {<'/usr/bin/svcs'>} spids: [227] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SVCADM='> name:SVCADM) op: assign_op.Equal rhs: {<'/usr/sbin/svcadm'>} spids: [230] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NOW='> name:NOW) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<'/usr/bin/date'>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <G> <Id.Lit_Other '%'> <m> <Id.Lit_Other '%'> <d_> <Id.Lit_Other '%'> <H> <Id.Lit_Other '%'> <M> } ) right: <Id.Backtick_Right '`'> ) } spids: [234] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MACH='> name:MACH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<'/usr/bin/uname'>} {<-p>}) right: <Id.Backtick_Right '`'> ) } spids: [253] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BOOTENV_FILE='> name:BOOTENV_FILE) op: assign_op.Equal rhs: {<bootenv.rc>} spids: [262] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'reboot_needed='> name:reboot_needed) op: assign_op.Equal rhs: {<0>} spids: [265] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_bootpath='> name:new_bootpath) op: assign_op.Equal rhs: {(DQ )} spids: [268] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CLIENT_TYPE_PHCI='> name:CLIENT_TYPE_PHCI) op: assign_op.Equal rhs: {(DQ )} spids: [272] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CLIENT_TYPE_VHCI='> name:CLIENT_TYPE_VHCI) op: assign_op.Equal rhs: {(DQ <'/scsi_vhci'>)} spids: [276] ) ] redirects: [] ) (command.ShFunction name: delete_mpxio_disable_entries body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {($ Id.VSub_DollarName SED)} { (SQ <'\n'> <'\t\t/^[ \t]*#/{ p\n'> <'\t\t\t d\n'> <'\t\t\t }\n'> <'\t\ts/[ \t]*$//\n'> <'\t\t/^$/{ p\n'> <'\t\t d\n'> <'\t\t }\n'> <'\t\t/mpxio-disable[ \t]*=.*;$/{ w '> ) ($ Id.VSub_Number 3) (SQ <'\n'> <'\t\t\t\t\t\t d\n'> <'\t\t\t\t\t\t}\n'> <'\t\t/disable-sata-mpxio[ \t]*=.*;$/{ w '> ) ($ Id.VSub_Number 4) (SQ <'\n'> <'\t\t\t\t\t\t d\n'> <'\t\t\t\t\t\t}\n'> <'\t\t/;$/{ p\n'> <'\t\t d\n'> <'\t\t }\n'> <'\t\t:rdnext\n'> <'\t\tN\n'> <'\t\ts/[ \t]*$//\n'> <'\t\t/[^;]$/b rdnext\n'> <'\t\t/mpxio-disable[ \t]*=/{ s/\\n/ /g\n'> <'\t\t\t\t\t w '> ) ($ Id.VSub_Number 3) (SQ <'\n'> <'\t\t\t\t\t d\n'> <'\t\t\t\t\t }\n'> <'\t\t'>) } {($ Id.VSub_Number 1)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_Number 2)} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_QMark '?')} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: backup_lastsaved body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach iter_names: [file] iterable: (for_iter.Words words:[{($ Id.VSub_Star '*')}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'newfile='> name:newfile) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_DollarName file)}) right: <Id.Backtick_Right '`'> ) } spids: [419] ) ] redirects: [] ) (C {($ Id.VSub_DollarName CP)} {($ Id.VSub_DollarName file)} {($ Id.VSub_DollarName SAVEDIR) <'/'> ($ Id.VSub_DollarName newfile) <.> ($ Id.VSub_DollarName cmd) <.> ($ Id.VSub_DollarName NOW) } ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: build_recover body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<gettext>} { (DQ < 'Instructions to recover your previous STMS configuration (if in case the system does not boot):' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'tboot net '> <Id.Lit_BadBackslash '\\'> <c>)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<gettext>} {(DQ <'(or from a cd/dvd/another disk)'> <Id.Lit_BadBackslash '\\'> <n>)} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'tfsck <your-root-device>'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'tmount <your-root-device> /mnt'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <update>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<gettext>} { (DQ <Id.Lit_BadBackslash '\\'> <'tUndo the modifications you made to STMS configuration.'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'tFor example undo any changes you made to '> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'/mnt'> ($ Id.VSub_DollarName KDRVCONF) <.>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) ] spids: [539 556] ) ] else_action: [ (command.Simple words: [ {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'tcp /mnt'> (${ Id.VSub_Name SAVEDIR) <'/'> ($ Id.VSub_DollarName DRVCONF) <.> ($ Id.VSub_DollarName cmd) <.> ($ Id.VSub_DollarName NOW) <' /mnt'> ($ Id.VSub_DollarName KDRVCONF) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Number 1)} {<-eq>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'tcp /mnt'> (${ Id.VSub_Name SAVEDIR) <'/vfstab.'> ($ Id.VSub_DollarName cmd) <.> ($ Id.VSub_DollarName NOW) <' /mnt'> ($ Id.VSub_DollarName VFSTAB) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'repository /mnt/etc/svc/repository.db'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName SVCCFG_RECOVERY)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'select '> ($ Id.VSub_DollarName STMSINSTANCE))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName SVCCFG_RECOVERY)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'setprop general/enabled=false'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName SVCCFG_RECOVERY)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <exit>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName SVCCFG_RECOVERY)} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName SVCCFG) <' -f /mnt'> ($ Id.VSub_DollarName SVCCFG_RECOVERY) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName new_bootpath))} {<-a>} {(DQ ($ Id.VSub_DollarName MACH))} {<Id.Lit_Equals '='>} {(DQ <i386>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'tcp /mnt'> (${ Id.VSub_Name SAVEDIR) <'/bootenv.rc.'> ($ Id.VSub_DollarName cmd) <.> ($ Id.VSub_DollarName NOW) <' /mnt/boot/solaris/'> ($ Id.VSub_DollarName BOOTENV_FILE) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) ] spids: [718 743] ) ] else_action: [] redirects: [] ) ] spids: [618 631] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rootdisk='> name:rootdisk) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName MOUNT)}) (C {($ Id.VSub_DollarName GREP)} {(DQ <'/ on '>)}) (C {<cut>} {<-f>} {<3>} {<-d>} {(DQ <' '>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [774] ) ] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <Id.Lit_BadBackslash '\\'> <'tumount /mnt'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <treboot> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> (${ Id.VSub_Name rootdisk) <' '> <Id.Lit_BadBackslash '\\'> <c> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<gettext>} { (DQ <'was your root device,'> <Id.Lit_BadBackslash '\\'> <'nbut it could be named differently after you boot net.'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName RECOVERFILE)} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: update_sysfiles body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<gettext>} {(DQ <'WARNING: This operation will require a reboot.'> <Id.Lit_BadBackslash '\\'> <n>)} ) (C {<gettext>} {(DQ <'Do you want to continue ? [y/n] (default: y) '>)}) (C {<read>} {<response>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName response))} {<-a>} {(DQ ($ Id.VSub_DollarName response))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <y>)} {<-a>} {(DQ ($ Id.VSub_DollarName response))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <Y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ForEach iter_names: [d] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName DRVLIST)}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TMPDRVCONF='> name: TMPDRVCONF ) op: assign_op.Equal rhs: {<'/var/run/tmp.'> ($ Id.VSub_DollarName d) <.conf.> ($ Id.VSub_Dollar '$') } spids: [955] ) ] redirects: [] ) (command.Simple words: [ {($ Id.VSub_DollarName RM)} {<-f>} {($ Id.VSub_DollarName TMPDRVCONF)} ] 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>} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) terminator: <Id.Op_Semi _> ) ] spids: [899 940] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'need_bootscript='> name: need_bootscript ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName SUPPORTED_DRIVERS)}) (C {($ Id.VSub_DollarName AWK)} {<-F> (DQ <'|'>)} {(SQ <'{print NF}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [998] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<-o>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [d] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName DRVLIST)}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DRVCONF='> name: DRVCONF ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName d) <.conf>} spids: [1065] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KDRVCONF='> name: KDRVCONF ) op: assign_op.Equal rhs: {<'/kernel/drv/'> ($ Id.VSub_DollarName d) <.conf>} spids: [1070] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TMPDRVCONF='> name: TMPDRVCONF ) op: assign_op.Equal rhs: {<'/var/run/tmp.'> ($ Id.VSub_DollarName d) <.conf.> ($ Id.VSub_Dollar '$') } spids: [1076] ) ] redirects: [] ) (C {($ Id.VSub_DollarName CP)} {($ Id.VSub_DollarName KDRVCONF)} {($ Id.VSub_DollarName SAVEDIR) <'/'> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_DollarName KDRVCONF)}) right: <Id.Backtick_Right '`'> ) <.> ($ Id.VSub_DollarName cmd) <.> ($ Id.VSub_DollarName NOW) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName TMPDRVCONF)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName CP)} {($ Id.VSub_DollarName TMPDRVCONF)} {($ Id.VSub_DollarName KDRVCONF)} ) (C {($ Id.VSub_DollarName RM)} {<-f>} {($ Id.VSub_DollarName TMPDRVCONF)} ) ] spids: [1103 1114] ) ] else_action: [ (command.Sentence child: (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) terminator: <Id.Op_Semi _> ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'CLIENT_TYPE_PHCI='> name: CLIENT_TYPE_PHCI ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName STMSBOOTUTIL)} {<-D>} {($ Id.VSub_DollarName d)} {<-N>} ) right: <Id.Backtick_Right '`'> ) } spids: [1200] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName CLIENT_TYPE_PHCI))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) terminator: <Id.Op_Semi _> ) ] spids: [1216 1229] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (command.Simple words: [ {($ Id.VSub_DollarName LS)} {<-l>} {<'/dev/dsk/'> <Id.Lit_Star '*'> <s2>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (C {($ Id.VSub_DollarName EGREP)} {<-s>} {(DQ ($ Id.VSub_DollarName CLIENT_TYPE_PHCI))} ) ] negated: F stderr_indices: [] ) ] spids: [1240 1257] ) ] else_action: [ (command.Pipeline children: [ (command.Simple words: [ {($ Id.VSub_DollarName LS)} {<-l>} {<'/dev/dsk/'> <Id.Lit_Star '*'> <s2>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (C {($ Id.VSub_DollarName EGREP)} {<-s>} {(DQ ($ Id.VSub_DollarName CLIENT_TYPE_VHCI))} ) ] negated: F stderr_indices: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'need_bootscript='> name: need_bootscript ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName EXPR)} {($ Id.VSub_DollarName need_bootscript)} {<->} {<1>} ) right: <Id.Backtick_Right '`'> ) } spids: [1333] ) ] redirects: [] ) ] spids: [1317 1330] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] spids: [1020 1049] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName need_bootscript)} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'need_bootscript='> name: need_bootscript ) op: assign_op.Equal rhs: {<1>} spids: [1373] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName new_bootpath))} {<-a>} {(DQ ($ Id.VSub_DollarName MACH))} {<Id.Lit_Equals '='>} {(DQ <i386>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName CP)} {<'/boot/solaris/'> ($ Id.VSub_DollarName BOOTENV_FILE)} {($ Id.VSub_DollarName SAVEDIR) <'/'> ($ Id.VSub_DollarName BOOTENV_FILE) <.> ($ Id.VSub_DollarName cmd) <.> ($ Id.VSub_DollarName NOW) } ) (C {($ Id.VSub_DollarName EEPROM)} {<Id.Lit_VarLike 'bootpath='> (DQ ($ Id.VSub_DollarName new_bootpath))} ) ] spids: [1377 1402] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MACH))} {<Id.Lit_Equals '='>} {(DQ <i386>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HASZFSROOT='> name: HASZFSROOT ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName DF)} {<-g>} {<'/'>}) (C {($ Id.VSub_DollarName GREP)} {<zfs>}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [1459] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName HASZFSROOT))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {($ Id.VSub_DollarName SVCCFG)} {<-s>} {($ Id.VSub_DollarName FASTBOOTINSTANCE)} {<addpg>} {<config_ovr>} {<application>} {<P>} ] 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>} ) ] more_env: [] do_fork: T ) (C {($ Id.VSub_DollarName SVCCFG)} {<-s>} {($ Id.VSub_DollarName FASTBOOTINSTANCE)} {<setprop>} {<'config_ovr/fastreboot_default'> <Id.Lit_Equals '='> <boolean> <Id.Lit_Colon ':'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <false> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ) (C {($ Id.VSub_DollarName SVCCFG)} {<-s>} {($ Id.VSub_DollarName FASTBOOTINSTANCE)} {<setprop>} {<'config_ovr/fastreboot_onpanic'> <Id.Lit_Equals '='> <boolean> <Id.Lit_Colon ':'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <false> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) } ) (C {($ Id.VSub_DollarName SVCADM)} {<refresh>} {($ Id.VSub_DollarName FASTBOOTINSTANCE)} ) ] spids: [1476 1489] ) ] else_action: [] redirects: [] ) ] spids: [1435 1452] ) ] else_action: [] redirects: [] ) (C {($ Id.VSub_DollarName SVCADM)} {<disable>} {<-t>} {($ Id.VSub_DollarName STMSINSTANCE)} ) (C {($ Id.VSub_DollarName SVCCFG)} {<-s>} {($ Id.VSub_DollarName STMSINSTANCE)} {(DQ <'setprop general/enabled=true'>)} ) ] spids: [1357 1370] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'need_bootscript='> name: need_bootscript ) op: assign_op.Equal rhs: {<0>} spids: [1594] ) ] redirects: [] ) ] redirects: [] ) (C {<build_recover>} {($ Id.VSub_DollarName need_bootscript)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MACH))} {<Id.Lit_Equals '='>} {(DQ <i386>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {($ Id.VSub_DollarName BOOTADM)} {<update-archive>})] spids: [1608 1625] ) ] else_action: [] redirects: [] ) (C {<gettext>} { (DQ <'The changes will come into effect after rebooting the system.'> <Id.Lit_BadBackslash '\\'> <'nReboot the system now ? [y/n] (default: y) '> ) } ) (C {<read>} {<response>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName response))} {<-o>} {(DQ ($ Id.VSub_DollarName response))} {<Id.Lit_Equals '='>} {(DQ <y>)} {<-o>} {(DQ ($ Id.VSub_DollarName response))} {<Id.Lit_Equals '='>} {(DQ <Y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {($ Id.VSub_DollarName REBOOT)})] spids: [1652 1691] ) ] else_action: [] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: configure_mpxio body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mpxiodisableno='> name:mpxiodisableno) op: assign_op.Equal rhs: {(SQ <'mpxio-disable[ \t]*=[ \t]*"no"[ \t]*;'>)} spids: [1751] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mpxiodisableyes='> name: mpxiodisableyes ) op: assign_op.Equal rhs: {(SQ <'mpxio-disable[ \t]*=[ \t]*"yes"[ \t]*;'>)} spids: [1757] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'satadisableno='> name:satadisableno) op: assign_op.Equal rhs: {(SQ <'disable-sata-mpxio[ \t]*=[ \t]*"no"[ \t]*;'>)} spids: [1763] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'satadisableyes='> name:satadisableyes) op: assign_op.Equal rhs: {(SQ <'disable-sata-mpxio[ \t]*=[ \t]*"yes"[ \t]*;'>)} spids: [1769] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mpxiodisable_cur_entry='> name: mpxiodisable_cur_entry ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName mpxiodisableyes)} spids: [1796] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'satadisable_cur_entry='> name: satadisable_cur_entry ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName satadisableyes)} spids: [1800] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'propval='> name:propval) op: assign_op.Equal rhs: {<no>} spids: [1804] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msg='> name:msg) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} {(DQ <'STMS already enabled'>)}) right: <Id.Backtick_Right '`'> ) } spids: [1808] ) ] redirects: [] ) ] spids: [1776 1793] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'mpxiodisable_cur_entry='> name: mpxiodisable_cur_entry ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName mpxiodisableno)} spids: [1823] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'satadisable_cur_entry='> name: satadisable_cur_entry ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName satadisableno)} spids: [1827] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'propval='> name:propval) op: assign_op.Equal rhs: {<yes>} spids: [1831] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msg='> name:msg) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} {(DQ <'STMS already disabled'>)}) right: <Id.Backtick_Right '`'> ) } spids: [1835] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DRVCONF='> name:DRVCONF) op: assign_op.Equal rhs: {($ Id.VSub_DollarName d) <.conf>} spids: [1851] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KDRVCONF='> name:KDRVCONF) op: assign_op.Equal rhs: {<'/kernel/drv/'> ($ Id.VSub_DollarName d) <.conf>} spids: [1856] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPDRVCONF='> name:TMPDRVCONF) op: assign_op.Equal rhs: {<'/var/run/tmp.'> ($ Id.VSub_DollarName d) <.conf.> ($ Id.VSub_Dollar '$')} spids: [1862] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TMPDRVCONF_MPXIO_ENTRY='> name: TMPDRVCONF_MPXIO_ENTRY ) op: assign_op.Equal rhs: {<'/var/run/tmp.'> ($ Id.VSub_DollarName d) <.conf.mpxioentry.> ($ Id.VSub_Dollar '$') } spids: [1869] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TMPDRVCONF_SATA_ENTRY='> name: TMPDRVCONF_SATA_ENTRY ) op: assign_op.Equal rhs: {<'/var/run/tmp.'> ($ Id.VSub_DollarName d) <.conf.sataentry.> ($ Id.VSub_Dollar '$') } spids: [1877] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<delete_mpxio_disable_entries>} {($ Id.VSub_DollarName KDRVCONF)} {($ Id.VSub_DollarName TMPDRVCONF)} {($ Id.VSub_DollarName TMPDRVCONF_MPXIO_ENTRY)} {($ Id.VSub_DollarName TMPDRVCONF_SATA_ENTRY)} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-s>} {($ Id.VSub_DollarName TMPDRVCONF_MPXIO_ENTRY)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName EGREP)} {<-s>} {(DQ ($ Id.VSub_DollarName mpxiodisable_cur_entry))} {($ Id.VSub_DollarName TMPDRVCONF_MPXIO_ENTRY)} ) (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 left: <Id.Lit_VarLike 'reboot_needed='> name: reboot_needed ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName EXPR)} {($ Id.VSub_DollarName reboot_needed)} {<Id.Lit_Other '+'>} {<1>} ) right: <Id.Backtick_Right '`'> ) } spids: [1948] ) ] redirects: [] ) ] spids: [1932 1945] ) ] else_action: [ (C {($ Id.VSub_DollarName EGREP)} {<-s>} {(DQ ($ Id.VSub_DollarName satadisable_cur_entry))} {($ Id.VSub_DollarName TMPDRVCONF_SATA_ENTRY)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<-a>} {(DQ ($ Id.VSub_DollarName d))} {<Id.Lit_Equals '='>} {(DQ <mpt>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'reboot_needed='> name: reboot_needed ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName EXPR)} {($ Id.VSub_DollarName reboot_needed)} {<Id.Lit_Other '+'>} {<1>} ) right: <Id.Backtick_Right '`'> ) } spids: [2012] ) ] redirects: [] ) ] spids: [1984 2009] ) ] else_action: [ (command.Simple words: [ {($ Id.VSub_DollarName RM)} {<-f>} {($ Id.VSub_DollarName TMPDRVCONF)} {($ Id.VSub_DollarName TMPDRVCONF_MPXIO_ENTRY)} {($ Id.VSub_DollarName TMPDRVCONF_SATA_ENTRY)} ] 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>} ) ] more_env: [] do_fork: T ) (command.Sentence child: (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) terminator: <Id.Op_Semi _> ) ] redirects: [] ) ] redirects: [] ) ] spids: [1903 1914] ) ] else_action: [] redirects: [] ) ] spids: [1886 1899] ) ] else_action: [ (command.Simple words: [ {($ Id.VSub_DollarName RM)} {<-f>} {($ Id.VSub_DollarName TMPDRVCONF)} {($ Id.VSub_DollarName TMPDRVCONF_MPXIO_ENTRY)} {($ Id.VSub_DollarName TMPDRVCONF_SATA_ENTRY)} ] 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>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<gettext>} {(DQ <'failed to update '>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName KDRVCONF) <.>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<gettext>} { (DQ <'No changes were made to your STMS configuration.'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] redirects: [] ) (command.Simple words: [ {<rm>} {($ Id.VSub_DollarName TMPDRVCONF_MPXIO_ENTRY)} {($ Id.VSub_DollarName TMPDRVCONF_SATA_ENTRY)} ] 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>}) ] more_env: [] do_fork: T ) (command.Simple words: [ {<echo>} { (DQ <'mpxio-disable='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name propval) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <';'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMPDRVCONF)} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName d))} {<Id.Lit_Equals '='>} {(DQ <mpt>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'disable-sata-mpxio='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name propval) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <';'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TMPDRVCONF)} ) ] more_env: [] do_fork: T ) ] spids: [2162 2179] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: setcmd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [2232] ) ] redirects: [] ) ] spids: [2212 2229] ) ] else_action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName USAGE))}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_newbootpath_for_stmsdev body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] spids: [2285 2302] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cur_bootpath='> name:cur_bootpath) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName STMSBOOTUTIL)} {<-b>}) right: <Id.Backtick_Right '`'> ) } spids: [2314] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})] spids: [2324 2338] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ONDISKVER='> name:ONDISKVER) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName AWK)} {(SQ <'/bootpath/ {print $3}'>)} {<'/boot/solaris/bootenv.rc'>} ) (C {($ Id.VSub_DollarName SED)} {<-e> (DQ <'s,\',,g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2367] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ONDISKVER))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName cur_bootpath))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cur_bootpath='> name: cur_bootpath ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName ONDISKVER))} spids: [2414] ) ] redirects: [] ) ] spids: [2393 2411] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NEWBOOTPATH='> name:NEWBOOTPATH) op: assign_op.Equal rhs: {(DQ )} spids: [2424] ) ] redirects: [] ) (command.ForEach iter_names: [path] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName cur_bootpath)}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mapped='> name:mapped) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {($ Id.VSub_DollarName STMSBOOTUTIL)} {<-p>} {($ Id.VSub_DollarName path)} ) right: <Id.Backtick_Right '`'> ) } spids: [2441] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName mapped))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <NOT_MAPPED>)} {<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 mapped))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName path))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NEWBOOTPATH='> name: NEWBOOTPATH ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName path) <' '>)} ) (C {($ Id.VSub_DollarName SED)} {<-e> (DQ <'s|'> ($ Id.VSub_DollarName path) <'|'> ($ Id.VSub_DollarName mapped) <'|'> ) } ) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) (DQ <' '> ($ Id.VSub_DollarName NEWBOOTPATH)) } spids: [2495] ) ] redirects: [] ) ] spids: [2474 2492] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NEWBOOTPATH='> name: NEWBOOTPATH ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName NEWBOOTPATH) <' '> ($ Id.VSub_DollarName path) ) } spids: [2533] ) ] redirects: [] ) ] redirects: [] ) ] spids: [2453 2471] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'new_bootpath='> name:new_bootpath) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<echo>} {($ Id.VSub_DollarName NEWBOOTPATH)}) right: <Id.Backtick_Right '`'> ) } spids: [2554] ) ] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: emit_driver_warning_msg body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<echo>} {(DQ )}) (C {<gettext>} { (DQ <'WARNING: stmsboot operates on each supported multipath-capable controller'> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<gettext>} { (DQ <' detected in a host. In your system, these controllers are'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <n> ) } ) (command.Sentence child: (command.ForEach iter_names: [WARNDRV] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName SUPPORTED_DRIVERS)}) (C {($ Id.VSub_DollarName SED)} {<-e> (DQ <'s,|, ,g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } ] ) body: (command.DoGroup children: [ (C {($ Id.VSub_DollarName STMSBOOTUTIL)} {<-D>} {($ Id.VSub_DollarName WARNDRV)} {<-n>} ) ] ) redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<echo>} {(DQ )}) (C {<gettext>} { (DQ <'If you do NOT wish to operate on these controllers, please quit stmsboot'> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<gettext>} { (DQ < 'and re-invoke with -D { fp | mpt | mpt_sas | pmcs} to specify which controllers you wish' > <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<gettext>} {(DQ <'to modify your multipathing configuration for.'> <Id.Lit_BadBackslash '\\'> <n>)} ) (C {<echo>} {(DQ )}) (C {<gettext>} {(DQ <'Do you wish to continue? [y/n] (default: y) '>)}) (C {<read>} {<response>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName response))} {<-a>} {(DQ ($ Id.VSub_DollarName response))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <Y>)} {<-a>} {(DQ ($ Id.VSub_DollarName response))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit>)] spids: [2735 2776] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd) op: assign_op.Equal rhs: {<none>} spids: [2801] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [(C {<getopts>} {<D> <Id.Lit_Colon ':'> <geduLl> <Id.Lit_Colon ':'>} {<c>})] ) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName c)} arms: [ (case_arm pat_list: [{<e>}] action: [(C {<setcmd>} {<enable>})] spids: [2828 2829 2834 -1] ) (case_arm pat_list: [{<d>}] action: [(C {<setcmd>} {<disable>})] spids: [2837 2838 2843 -1] ) (case_arm pat_list: [{<u>}] action: [(C {<setcmd>} {<update>})] spids: [2846 2847 2852 -1] ) (case_arm pat_list: [{<L>}] action: [(C {<setcmd>} {<listall>})] spids: [2855 2856 2861 -1] ) (case_arm pat_list: [{<l>}] action: [ (C {<setcmd>} {<list>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'controller='> name:controller) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [2872] ) ] redirects: [] ) ] spids: [2864 2865 2874 -1] ) (case_arm pat_list: [{<D>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DRV='> name:DRV) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [2880] ) ] redirects: [] ) ] spids: [2877 2878 2882 -1] ) (case_arm pat_list: [{<g>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GUID='> name:GUID) op: assign_op.Equal rhs: {(DQ <-g>)} spids: [2888] ) ] redirects: [] ) ] spids: [2885 2886 2892 -1] ) (case_arm pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')}] action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName USAGE))}] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] spids: [2895 2896 2911 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName USAGE))}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] spids: [2919 2936] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName DRV))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DRVLIST='> name:DRVLIST) op: assign_op.Equal rhs: {(DQ <'fp mpt mpt_sas pmcs'>)} spids: [2972] ) ] redirects: [] ) ] spids: [2956 2969] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DRVLIST='> name:DRVLIST) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DRV)} spids: [2980] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USERID='> name:USERID) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [(C {<id>}) (C {($ Id.VSub_DollarName EGREP)} {(DQ <'uid=0'>)})] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2986] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName USERID))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<gettext>} {(DQ <'You must be super-user to run this script.'> <Id.Lit_BadBackslash '\\'> <n>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [3001 3014] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {($ Id.VSub_DollarName STMSBOOTUTIL)} {<-o>} {<Id.KW_Bang '!'>} {<-f>} {($ Id.VSub_DollarName STMSMETHODSCRIPT)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fmt='> name:fmt) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} {(DQ <'Can\'t find %s and/or %s'>)}) right: <Id.Backtick_Right '`'> ) } spids: [3063] ) ] redirects: [] ) (command.Simple words: [ {<printf>} {(DQ ($ Id.VSub_DollarName fmt) <Id.Lit_BadBackslash '\\'> <n>)} {(DQ ($ Id.VSub_DollarName STMSBOOTUTIL))} {(DQ ($ Id.VSub_DollarName STMSMETHODSCRIPT))} ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [3039 3060] ) ] else_action: [] redirects: [] ) (command.Simple words: [{($ Id.VSub_DollarName SVCCFG)} {<-s>} {(DQ <'platform/sun4u/mpxio-upgrade:default'>)}] redirects: [ (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<'/dev/null'>}) (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>}) ] more_env: [] do_fork: T ) (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.Simple words: [ {($ Id.VSub_DollarName SVCCFG)} {<delete>} {(DQ <'platform/sun4u/mpxio-upgrade:default'>)} ] 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>}) ] more_env: [] do_fork: T ) ] spids: [3124 3137] ) ] else_action: [] redirects: [] ) (command.Simple words: [{($ Id.VSub_DollarName SVCPROP)} {<-q>} {($ Id.VSub_DollarName STMSINSTANCE)}] redirects: [ (redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<'/dev/null'>}) (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>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/lib/svc/manifest/system/device/mpxio-upgrade.xml'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName SVCCFG)} {<Id.KW_Import import>} {<'/lib/svc/manifest/system/device/mpxio-upgrade.xml'>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fmt='> name:fmt) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} {(DQ <'Unable to import the %s service'>)}) right: <Id.Backtick_Right '`'> ) } spids: [3232] ) ] redirects: [] ) (command.Simple words: [ {<printf>} {(DQ ($ Id.VSub_DollarName fmt) <Id.Lit_BadBackslash '\\'> <n>)} {(DQ ($ Id.VSub_DollarName STMSINSTANCE))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [3215 3228] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fmt='> name:fmt) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} {(DQ <'Service %s imported successfully, continuing'>)} ) right: <Id.Backtick_Right '`'> ) } spids: [3268] ) ] redirects: [] ) (command.Simple words: [ {<printf>} {(DQ ($ Id.VSub_DollarName fmt) <Id.Lit_BadBackslash '\\'> <n>)} {(DQ ($ Id.VSub_DollarName STMSINSTANCE))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) ] spids: [3194 3205] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fmt='> name:fmt) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} {(DQ <'Service %s does not exist on this host'>)}) right: <Id.Backtick_Right '`'> ) } spids: [3302] ) ] redirects: [] ) (command.Simple words: [ {<printf>} {(DQ ($ Id.VSub_DollarName fmt) <Id.Lit_BadBackslash '\\'> <n>)} {(DQ ($ Id.VSub_DollarName STMSINSTANCE))} ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] ) ] spids: [3178 3191] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {($ Id.VSub_DollarName SAVEDIR)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {($ Id.VSub_DollarName MKDIR)} {<-p>} {($ Id.VSub_DollarName SAVEDIR)})] spids: [3344 3357] ) ] else_action: [] redirects: [] ) (C {($ Id.VSub_DollarName STMSBOOTUTIL)} {<-i>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<-o>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<-o>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <update>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName MOUNT)} {<-v>}) (C {($ Id.VSub_DollarName EGREP)} {<-s>} {(DQ <' on / type nfs '>)}) ] negated: F stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<gettext>} { (DQ < 'This command option is not supported on systems with an nfs mounted root filesystem.' > <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [3421 3438] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ISARMED='> name:ISARMED) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName SVCS)} {<-l>} {($ Id.VSub_DollarName STMSINSTANCE)} ) (C {($ Id.VSub_DollarName GREP)} {(DQ <'enabled.*false.*temporary'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [3483] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {($ Id.VSub_QMark '?')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ )}) (C {<gettext>} { (DQ <'You need to reboot the system in order to complete'> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<gettext>} {(DQ <'the previous invocation of stmsboot.'> <Id.Lit_BadBackslash '\\'> <n>)} ) (C {<echo>} {(DQ )}) (C {<gettext>} {(DQ <'Do you wish to reboot the system now? (y/n, default y) '>)}) (C {<read>} {<response>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName response))} {<-o>} {(DQ <x> ($ Id.VSub_DollarName response))} {<Id.Lit_Equals '='>} {(DQ <Y>)} {<-o>} {(DQ ($ Id.VSub_DollarName response))} {<Id.Lit_Equals '='>} {(DQ <y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {($ Id.VSub_DollarName REBOOT)})] spids: [3558 3598] ) ] else_action: [ (C {<echo>} {(DQ )}) (C {<gettext>} { (DQ <'Please reboot this system before continuing'> <Id.Lit_BadBackslash '\\'> <n> ) } ) (C {<echo>} {(DQ )}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] redirects: [] ) ] spids: [3501 3512] ) ] else_action: [] redirects: [] ) (command.ForEach iter_names: [d] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName DRVLIST)}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DRVCONF='> name:DRVCONF) op: assign_op.Equal rhs: {($ Id.VSub_DollarName d) <.conf>} spids: [3668] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KDRVCONF='> name:KDRVCONF) op: assign_op.Equal rhs: {<'/kernel/drv/'> ($ Id.VSub_DollarName d) <.conf>} spids: [3673] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TMPDRVCONF='> name:TMPDRVCONF) op: assign_op.Equal rhs: {<'/var/run/tmp.'> ($ Id.VSub_DollarName d) <.conf.> ($ Id.VSub_Dollar '$')} spids: [3679] ) ] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TMPDRVCONF_MPXIO_ENTRY='> name: TMPDRVCONF_MPXIO_ENTRY ) op: assign_op.Equal rhs: {<'/var/run/tmp.'> ($ Id.VSub_DollarName d) <.conf.mpxioentry.> ($ Id.VSub_Dollar '$') } spids: [3686] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MACH))} {<Id.Lit_Equals '='>} {(DQ <sparc>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<backup_lastsaved>} {($ Id.VSub_DollarName KDRVCONF)} {($ Id.VSub_DollarName VFSTAB)} ) ] spids: [3694 3711] ) ] else_action: [ (C {<backup_lastsaved>} {($ Id.VSub_DollarName KDRVCONF)} {($ Id.VSub_DollarName VFSTAB)} {<'/boot/solaris/'> ($ Id.VSub_DollarName BOOTENV_FILE)} ) ] redirects: [] ) ] ) redirects: [] ) ] spids: [3377 3418] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<-o>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'msgneeded='> name:msgneeded) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName DRVLIST))}) (C {($ Id.VSub_DollarName GREP)} {(DQ <' '>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [3775] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName msgneeded))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<emit_driver_warning_msg>})] spids: [3794 3807] ) ] else_action: [] redirects: [] ) (command.ForEach iter_names: [d] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName DRVLIST)}]) body: (command.DoGroup children: [ (C {<configure_mpxio>} {($ Id.VSub_DollarName cmd)} {($ Id.VSub_DollarName d)}) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName reboot_needed)} {<-ne>} {<0>} {<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 cmd))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<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 MACH))} {<Id.Lit_Equals '='>} {(DQ <i386>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<get_newbootpath_for_stmsdev>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {($ Id.VSub_DollarName RM)} {<-f>} {($ Id.VSub_DollarName TMPDRVCONF)} ] 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>} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<gettext>} { (DQ <'failed to update bootpath.'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<gettext>} { (DQ < 'No changes were made to your STMS configuration.' > <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [3920 3933] ) ] else_action: [] redirects: [] ) ] spids: [3897 3914] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HASZFSROOT='> name: HASZFSROOT ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName DF)} {<-g>} {<'/'>}) (C {($ Id.VSub_DollarName GREP)} {<zfs>}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [4001] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName HASZFSROOT))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ROOTSCSIVHCI='> name: ROOTSCSIVHCI ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName DF)} {<'/'>}) (C {($ Id.VSub_DollarName AWK)} {<-F> (DQ <':'>)} {(SQ <'{print $1}'>)} ) (C {($ Id.VSub_DollarName AWK)} {<-F> (DQ <'('>)} {(SQ <'{print $2}'>)} ) (C {($ Id.VSub_DollarName SED)} {<-e> (DQ <'s,),,'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [4034] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TMPROOTDEV='> name: TMPROOTDEV ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName LS)} {<-l>} {($ Id.VSub_DollarName ROOTSCSIVHCI)} ) (C {($ Id.VSub_DollarName AWK)} {<-F> (DQ <'>'>)} {(SQ <'{print $2}'>)} ) (C {($ Id.VSub_DollarName SED)} {<-e> (DQ <'s, ../../devices,,'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [4081] ) ] redirects: [] ) (command.Simple words: [ {($ Id.VSub_DollarName STMSBOOTUTIL)} {<-q>} {($ Id.VSub_DollarName TMPROOTDEV)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName BOOTDEVICES)} ) ] more_env: [] do_fork: T ) ] spids: [4018 4031] ) ] else_action: [] redirects: [] ) ] spids: [3877 3894] ) ] else_action: [] redirects: [] ) (C {<update_sysfiles>}) ] spids: [3839 3852] ) ] else_action: [ (C {<echo>} { (DQ <'STMS is already '> (${ Id.VSub_Name cmd) <'d. No changes or reboots needed'>) } ) ] redirects: [] ) ] spids: [3742 3771] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <update>)} {<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 MACH))} {<Id.Lit_Equals '='>} {(DQ <i386>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<get_newbootpath_for_stmsdev>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<gettext>} {(DQ <'failed to update bootpath.'> <Id.Lit_BadBackslash '\\'> <n>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [4212 4225] ) ] else_action: [] redirects: [] ) ] spids: [4177 4194] ) ] else_action: [] redirects: [] ) (C {<update_sysfiles>}) ] spids: [4157 4174] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName cmd))} {<Id.Lit_Equals '='>} {(DQ <list>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName STMSBOOTUTIL)} {($ Id.VSub_DollarName GUID)} {<-l>} {($ Id.VSub_DollarName controller)} ) ] spids: [4254 4271] ) ] else_action: [(C {($ Id.VSub_DollarName STMSBOOTUTIL)} {($ Id.VSub_DollarName GUID)} {<-L>})] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{($ Id.VSub_QMark '?')}) ] )