(command.CommandList children: [ (command.ShFunction name: msg_init body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_Number 0)}) right: <Id.Backtick_Right '`'> ) } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_Number 0)} {<.windowing>}) right: <Id.Backtick_Right '`'> ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WINDOWING='> name:WINDOWING) op: assign_op.Equal rhs: {(DQ <yes>)} spids: [252] ) ] redirects: [] ) (command.Case to_match: {($ Id.VSub_DollarName VOLUME_MEDIATYPE)} arms: [ (case_arm pat_list: [{<cdrom>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TITLE='> name:TITLE) op: assign_op.Equal rhs: {(DQ <CD-ROM>)} spids: [268] ) ] redirects: [] ) ] spids: [265 266 272 -1] ) (case_arm pat_list: [{<rmdisk>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TITLE='> name:TITLE) op: assign_op.Equal rhs: {(DQ <'Removable Disk'>)} spids: [278] ) ] redirects: [] ) ] spids: [275 276 282 -1] ) (case_arm pat_list: [{<floppy>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TITLE='> name:TITLE) op: assign_op.Equal rhs: {(DQ <Floppy>)} spids: [288] ) ] redirects: [] ) ] spids: [285 286 292 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TITLE='> name:TITLE) op: assign_op.Equal rhs: {(DQ <Disk>)} spids: [298] ) ] redirects: [] ) ] spids: [295 296 302 -1] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MODE))} {<Id.Lit_Equals '='>} {(DQ <allocate>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TITLE='> name:TITLE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName TITLE) <' Allocation'>)} spids: [330] ) ] redirects: [] ) ] spids: [310 327] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TITLE='> name:TITLE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName TITLE) <' Deallocation'>)} spids: [340] ) ] redirects: [] ) ] redirects: [] ) ] spids: [221 249] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WINDOWING='> name:WINDOWING) op: assign_op.Equal rhs: {(DQ <no>)} spids: [353] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: msg 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 WINDOWING))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName WDWMSG)} {(DQ ($ Id.VSub_Star '*'))} {(DQ ($ Id.VSub_DollarName TITLE))} {<OK>} ) ] spids: [383 400] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName silent))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_Star '*'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/'> (${ Id.VSub_Name MSGDEV)} ) ] more_env: [] do_fork: T ) ] spids: [416 434] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: ok_msg 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 WINDOWING))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName WDWMSG)} {(DQ ($ Id.VSub_Star '*'))} {(DQ ($ Id.VSub_DollarName TITLE))} {<READY>} ) ] spids: [463 480] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'form='> name:form) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} {(DQ <'Media in %s is ready. Please store safely.'>)}) right: <Id.Backtick_Right '`'> ) } spids: [499] ) ] redirects: [] ) (command.Simple words: [ {<printf>} {(DQ (${ Id.VSub_Name form) <Id.Lit_BadBackslash '\\'> <n>)} {($ Id.VSub_DollarName PROG)} {($ Id.VSub_DollarName DEVICE)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/'> <Id.Lit_LBrace '{'> <MSGDEV> <Id.Lit_RBrace '}'>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: error_msg 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 WINDOWING))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName WDWMSG)} {(DQ ($ Id.VSub_Star '*'))} {(DQ ($ Id.VSub_DollarName TITLE))} {<ERROR>} ) ] spids: [545 562] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'form='> name:form) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} {(DQ <'%s: Error cleaning up device %s.'>)}) right: <Id.Backtick_Right '`'> ) } spids: [581] ) ] redirects: [] ) (command.Simple words: [ {<printf>} {(DQ (${ Id.VSub_Name form) <Id.Lit_BadBackslash '\\'> <n>)} {($ Id.VSub_DollarName PROG)} {($ Id.VSub_DollarName DEVICE)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/'> (${ Id.VSub_Name MSGDEV)} ) ] more_env: [] do_fork: T ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: okcancel 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 WINDOWING))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName WDWMSG)} {(DQ ($ Id.VSub_Star '*'))} {(DQ ($ Id.VSub_DollarName TITLE))} {<OK>} {<Cancel>} ) ] spids: [636 653] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName silent))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<get_reply>} { (DQ ($ Id.VSub_Star '*') <' (y to continue, n to cancel) '> <Id.Lit_BadBackslash '\\'> <c> ) } {<y>} {<n>} ) ] spids: [671 689] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: yesno 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 WINDOWING))} {<Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {($ Id.VSub_DollarName WDWMSG)} {(DQ ($ Id.VSub_Star '*'))} {(DQ ($ Id.VSub_DollarName TITLE))} {<Yes>} {<No>} ) ] spids: [727 744] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName silent))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<get_reply>} {(DQ ($ Id.VSub_Star '*') <' (y/n) '> <Id.Lit_BadBackslash '\\'> <c>)} {<y>} {<n>} ) ] spids: [762 780] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: error_exit 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 silent))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<msg>} {(DQ ($ Id.VSub_Number 2))} {(DQ ($ Id.VSub_Number 3))} { (DQ <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nDevice has been placed in allocation error state.'> ) } {(DQ <Id.Lit_BadBackslash '\\'> <'nPlease inform system administrator.'>)} ) ] spids: [818 836] ) ] else_action: [] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: get_reply body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'prompt='> name:prompt) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [892] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<true>})]) body: (command.DoGroup children: [ (command.Simple words: [{<echo>} {($ Id.VSub_DollarName prompt)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/tty'>} ) ] more_env: [] do_fork: T ) (C {<read>} {<reply>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: {<0>} spids: [921] ) ] redirects: [] ) (command.ForEach iter_names: [choice] iterable: (for_iter.Words words:[{($ Id.VSub_Star '*')}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName choice))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName reply))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName i)} ) ] spids: [937 954] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName i)} {<Id.Lit_Other '+'>} {<1>} ) right: <Id.Backtick_Right '`'> ) } spids: [965] ) ] redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: find_fs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEVall='> name:DEVall) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName FILES)}) (C {<'/usr/bin/tr'>} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {<'/usr/bin/sed'>} { (SQ <'/^\\/dev\\/dsk\\//!d; s/\\([sp]\\)\\([0-9]*\\)$/ \\1 \\2/;'> ) } ) (C {<'/usr/bin/sort'>} {<-t>} {(SQ <' '>)} {<-k>} {<2> <Id.Lit_Comma ','> <2d>} {<-k>} {<3> <Id.Lit_Comma ','> <3n>} ) (C {<'/usr/bin/tr'>} {<-d>} {(SQ <' '>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) ) } spids: [1038] ) ] redirects: [] ) (command.ForEach iter_names: [DEVn] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName DEVall)}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'fstyp_output='> name: fstyp_output ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<'/usr/sbin/fstyp'>} {<-a>} {($ Id.VSub_DollarName DEVn)}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } spids: [1155] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSPATH='> name:FSPATH) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEVn)} spids: [1188] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'gen_volume_label='> name: gen_volume_label ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName fstyp_output))}) (C {<sed>} {<-n>} {(SQ <'/^gen_volume_label: .\\(.*\\).$/s//\\1/p'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) ) } spids: [1192] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName gen_volume_label))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FSNAME='> name: FSNAME ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName gen_volume_label)} ) (C {<'/usr/xpg4/bin/tr'>} {(SQ <'[:upper:] '>)} {(SQ <'[:lower:]_'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) ) } spids: [1247] ) ] redirects: [] ) ] spids: [1227 1244] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSTYPE='> name:FSTYPE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName fstyp_output))}) (C {<'/usr/bin/head'>} {<-1>}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [1287] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName FSTYPE))} {<Id.Lit_Equals '='>} {<hsfs>} {<-a>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<'/usr/bin/expr'>} {($ Id.VSub_DollarName FSPATH)} {<Id.Lit_Colon ':'>} {(SQ <'.*p0'>)} ) right: <Id.Backtick_Right '`'> ) } {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FSPATH='> name: FSPATH ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName FSPATH)}) (C {<'/usr/bin/sed'>} {(SQ <'s/p0$/s2/'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [1345] ) ] redirects: [] ) ] spids: [1305 1342] ) ] else_action: [] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] spids: [1172 1185] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: findmounts body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<nawk>} {<-f>} {<->} {<-v>} {<Id.Lit_VarLike 'vold_root='> (DQ ($ Id.VSub_DollarName VOLD_ROOT))} {<-v>} {<Id.Lit_VarLike 'devs='> (DQ ($ Id.VSub_Star '*'))} {<'/etc/mnttab'>} ] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(DQ <ENDOFAWKPGM>)} here_end_span_id: 1454 stdin_parts: [ <'\tBEGIN {\n'> <'\t\tsplit(devs, devlist, " ");\n'> <'\t\tfor (devN in devlist) {\n'> <'\t\t\tdev = devlist[devN];\n'> <'\t\t\trealdevlist[dev] = 1;\n'> <'\t\t\tsub(/.*\\//, "", dev);\n'> <'\t\t\tsub(/s[0-9]$/, "", dev);\n'> <'\t\t\tif (vold_root != "") {\n'> <'\t\t\t\tvold_dir[vold_root "/dev/dsk/" dev] = 1;\n'> <'\t\t\t\tvold_dir[vold_root "/dev/rdsk/" dev] = 1;\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t}\n'> <'\n'> <'\t{\n'> <'\t\tfor (dev in realdevlist) {\n'> <'\t\t\tif ($1 == dev) {\n'> <'\t\t\t\tmountpoint = $2;\n'> <'\t\t\t\tprint mountpoint;\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\tfor (dev in vold_dir) {\n'> <'\t\t\tif (substr($1, 1, length(dev)) == dev) {\n'> <'\t\t\t\tmountpoint = $2;\n'> <'\t\t\t\tprint mountpoint;\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t}\n'> ] ) ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: do_allocate body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName VOLUME_MEDIATYPE)} {<Id.Lit_Equals '='>} {<floppy>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eject_msg='> name:eject_msg) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<eject>} {<-q>} {($ Id.VSub_DollarName DEVFILE)}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } spids: [1500] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'eject_status='> name: eject_status ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_QMark '?'))} spids: [1517] ) ] redirects: [] ) (command.Case to_match: {($ Id.VSub_DollarName eject_status)} arms: [ (case_arm pat_list: [{<1>}] action: [ (C {<okcancel>} {(DQ <'Insert disk in '> ($ Id.VSub_DollarName DEVICE) <.>)}) (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_Exit exit> arg_word: {<0>} ) ] spids: [1546 1560] ) ] else_action: [] redirects: [] ) ] spids: [1530 1531 1569 -1] ) (case_arm pat_list: [{<3>}] action: [ (C {<error_exit>} {($ Id.VSub_DollarName DEVICE)} {(DQ <'Error checking for media in drive.'>)} ) ] spids: [1572 1573 1588 -1] ) ] redirects: [] ) ] spids: [1480 1493] ) ] else_action: [ (C {<okcancel>} {(DQ <'Insert disk in '> ($ Id.VSub_DollarName DEVICE) <.>)}) (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_Exit exit> arg_word:{<0>})] spids: [1606 1620] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (C {<yesno>} {(DQ <'Do you want '> ($ Id.VSub_DollarName DEVICE) <' mounted?'>)}) (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_Exit exit> arg_word:{<0>})] spids: [1645 1659] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName VOLUME_MEDIATYPE)} {<Id.Lit_Equals '='>} {<cdrom>} {<-o>} {($ Id.VSub_DollarName VOLUME_MEDIATYPE)} {<Id.Lit_Equals '='>} {<rmdisk>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<find_fs>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName FSPATH))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_PATH='> name: VOLUME_PATH ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName FSPATH)} spids: [1722] ) ] redirects: [] ) ] spids: [1702 1719] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName FSNAME))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_NAME='> name: VOLUME_NAME ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName FSNAME)} spids: [1750] ) ] redirects: [] ) ] spids: [1730 1747] ) ] else_action: [] redirects: [] ) ] spids: [1671 1692] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_ACTION='> name:VOLUME_ACTION) op: assign_op.Equal rhs: {<insert>} spids: [1760] ) ] redirects: [] ) (C {<chown>} {($ Id.VSub_DollarName VOLUME_USER)} {($ Id.VSub_DollarName VOLUME_PATH)}) (C {<chmod>} {<700>} {($ Id.VSub_DollarName VOLUME_PATH)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rmmount_msg='> name:rmmount_msg) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<'/usr/sbin/rmmount'>}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } spids: [1800] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rmmount_status='> name:rmmount_status) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_QMark '?'))} spids: [1813] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName rmmount_status)} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'EXIT_STATUS='> name: EXIT_STATUS ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CLEAN_MOUNT)} spids: [1835] ) ] redirects: [] ) ] spids: [1819 1832] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName rmmount_status)} {<-gt>} {<0>} {<-a>} {($ Id.VSub_DollarName VOLUME_MEDIATYPE)} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<cdrom>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <'Read-write mount of '> ($ Id.VSub_DollarName DEVICE) <' failed. Mounting read-only.'> ) } ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_ACTION='> name: VOLUME_ACTION ) op: assign_op.Equal rhs: {<remount>} spids: [1881] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<VOLUME_ACTION>}) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_MOUNT_MODE='> name: VOLUME_MOUNT_MODE ) op: assign_op.Equal rhs: {<ro>} spids: [1890] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<VOLUME_MOUNT_MODE>}) (C { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<'/usr/sbin/rmmount'>}) right: <Id.Backtick_Right '`'> ) } ) (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 'EXIT_STATUS='> name: EXIT_STATUS ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName CLEAN_MOUNT)} spids: [1922] ) ] redirects: [] ) ] spids: [1906 1919] ) ] else_action: [] redirects: [] ) ] spids: [1839 1861] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {<'/tmp/.removable'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<chown>} {<root>} {<'/tmp/.removable'>}) (C {<chmod>} {<777>} {<'/tmp/.removable'>}) ] spids: [1937 1948] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: do_deallocate body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName VOLUME_MEDIATYPE)} {<Id.Lit_Equals '='>} {<cdrom>} {<-o>} {($ Id.VSub_DollarName VOLUME_MEDIATYPE)} {<Id.Lit_Equals '='>} {<rmdisk>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-h>} {<'/'> ($ Id.VSub_DollarName VOLUME_MEDIATYPE) <'/'> ($ Id.VSub_DollarName DEVICE) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_PATH='> name: VOLUME_PATH ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<ls>} {<-l>} {<'/'> ($ Id.VSub_DollarName VOLUME_MEDIATYPE) <'/'> ($ Id.VSub_DollarName DEVICE) } ) (C {<cut>} {<-d>} {(SQ <'>'>)} {<-f2>}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2023] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_DEVICE='> name: VOLUME_DEVICE ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<mount>} {<-p>}) (C {<grep>} {($ Id.VSub_DollarName VOLUME_PATH)}) (C {<cut>} {<-d>} {(SQ <' '>)} {<-f1>}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2053] ) ] redirects: [] ) ] spids: [2002 2016] ) ] else_action: [] redirects: [] ) ] spids: [1978 1999] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ ($ Id.VSub_DollarName VOLUME_PATH))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_ACTION='> name: VOLUME_ACTION ) op: assign_op.Equal rhs: {<eject>} spids: [2105] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rmmount_msg='> name: rmmount_msg ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<'/usr/sbin/rmmount'>}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } spids: [2117] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rmmount_status='> name: rmmount_status ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_QMark '?'))} spids: [2130] ) ] redirects: [] ) (command.ForEach iter_names: [name] iterable: (for_iter.Words words: [ {<'/'> ($ Id.VSub_DollarName VOLUME_MEDIATYPE) <'/'> <Id.Lit_Star '*'>} ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-h>} {($ Id.VSub_DollarName name)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'target='> name: target ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<ls>} {<-l>} {($ Id.VSub_DollarName name)}) (C {<awk>} {(SQ <'{ print $NF; }'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2170] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'target_dir='> name: target_dir ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<dirname>} {($ Id.VSub_DollarName target)}) right: <Id.Backtick_Right '`'> ) } spids: [2190] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'target_device='> name: target_device ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName target_dir)}) (C {<sed>} {<-e>} {(SQ <'s/^.*-\\(.*\\)$/\\1/'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2200] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName target_device))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName DEVICE))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<rm>} {<-f>} {($ Id.VSub_DollarName name)})] spids: [2231 2248] ) ] else_action: [] redirects: [] ) ] spids: [2156 2167] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] spids: [2089 2102] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rmmount_status='> name: rmmount_status ) op: assign_op.Equal rhs: {<0>} spids: [2270] ) ] redirects: [] ) ] redirects: [] ) (command.Case to_match: {($ Id.VSub_DollarName rmmount_status)} arms: [ (case_arm pat_list: [{<1>}] action: [ (C {<error_exit>} {($ Id.VSub_DollarName DEVICE)} {(DQ <'Error unmounting '> ($ Id.VSub_DollarName DEVICE))} {(DQ ($ Id.VSub_DollarName rmmount_msg))} ) ] spids: [2285 2286 2304 -1] ) (case_arm pat_list: [{<0>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName FLAG))} {<Id.Lit_Equals '='>} {(DQ <f>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'eject_msg='> name: eject_msg ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<eject>} {<-f>} {($ Id.VSub_DollarName DEVICE)}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } spids: [2339] ) ] redirects: [] ) ] spids: [2318 2336] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'eject_msg='> name: eject_msg ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<eject>} {($ Id.VSub_DollarName DEVICE)}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } spids: [2359] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'eject_status='> name: eject_status ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_QMark '?'))} spids: [2377] ) ] redirects: [] ) (command.Case to_match: {($ Id.VSub_DollarName eject_status)} arms: [ (case_arm pat_list: [{<0>} {<1>} {<4>}] action: [ (command.Case to_match: {($ Id.VSub_DollarName VOLUME_MEDIATYPE)} arms: [ (case_arm pat_list: [{<floppy>} {<cdrom>} {<rmdisk>}] action: [ (C {<msg>} { (DQ <'Please remove the disk from '> ($ Id.VSub_DollarName DEVICE) <.> ) } ) ] spids: [2408 2413 2423 -1] ) ] redirects: [] ) ] spids: [2390 2395 2427 -1] ) (case_arm pat_list: [{<3>}] action: [ (C {<msg>} {($ Id.VSub_DollarName DEVICE)} {(DQ <'Error ejecting disk from '> ($ Id.VSub_DollarName DEVICE))} {(DQ ($ Id.VSub_DollarName eject_msg))} ) ] spids: [2430 2431 2451 -1] ) ] redirects: [] ) ] spids: [2307 2308 -1 2457] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: do_init body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eject_msg='> name:eject_msg) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<eject>} {<-f>} {($ Id.VSub_DollarName DEVICE)}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } spids: [2478] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'eject_status='> name:eject_status) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_QMark '?'))} spids: [2495] ) ] redirects: [] ) (command.Case to_match: {($ Id.VSub_DollarName eject_status)} arms: [ (case_arm pat_list: [{<0>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName silent))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<ok_msg>})] spids: [2516 2534] ) ] else_action: [] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] spids: [2509 2510 2546 -1] ) (case_arm pat_list: [{<1>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName silent))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<error_msg>})] spids: [2556 2574] ) ] else_action: [] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] spids: [2549 2550 2586 -1] ) (case_arm pat_list: [{<3>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName silent))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <y>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<error_msg>})] spids: [2596 2614] ) ] else_action: [] redirects: [] ) (C {<msg>} {($ Id.VSub_DollarName DEVICE)} {(DQ <'Error ejecting disk from '> ($ Id.VSub_DollarName DEVICE))} {(DQ ($ Id.VSub_DollarName eject_msg))} ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] spids: [2589 2590 2642 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<trap>} {(DQ )} {<INT>} {<TERM>} {<QUIT>} {<TSTP>} {<ABRT>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: {(DQ <'/usr/bin:/usr/sbin'>)} spids: [2677] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MODE='> name:MODE) op: assign_op.Equal rhs: {(DQ <allocate>)} spids: [2682] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SILENT='> name:SILENT) op: assign_op.Equal rhs: {<n>} spids: [2687] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WDWMSG='> name:WDWMSG) op: assign_op.Equal rhs: {(DQ <'/etc/security/lib/wdwmsg'>)} spids: [2690] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_ZONE_PATH='> name:VOLUME_ZONE_PATH) op: assign_op.Equal rhs: {(DQ <'/'>)} spids: [2695] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE) op: assign_op.Equal rhs: { (DQ < 'Usage: disk_clean [-s|-f|-i|-I] devicename -[A|D] [username] [zonename] [zonepath]' > ) } spids: [2700] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXIT_STATUS='> name:EXIT_STATUS) op: assign_op.Equal rhs: {<0>} spids: [2705] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CLEAN_MOUNT='> name:CLEAN_MOUNT) op: assign_op.Equal rhs: {<4>} spids: [2708] ) ] 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 {<uname>} {<-p>}) right: <Id.Backtick_Right '`'> ) } spids: [2711] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAG='> name:FLAG) op: assign_op.Equal rhs: {<i>} spids: [2720] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<getopts>} {<ifsI>} {<c>})]) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName c)} arms: [ (case_arm pat_list: [{<i>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAG='> name:FLAG) op: assign_op.Equal rhs: {($ Id.VSub_DollarName c)} spids: [2754] ) ] redirects: [] ) ] spids: [2750 2751 2756 -1] ) (case_arm pat_list: [{<f>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAG='> name:FLAG) op: assign_op.Equal rhs: {($ Id.VSub_DollarName c)} spids: [2763] ) ] redirects: [] ) ] spids: [2759 2760 2765 -1] ) (case_arm pat_list: [{<s>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAG='> name:FLAG) op: assign_op.Equal rhs: {($ Id.VSub_DollarName c)} spids: [2772] ) ] redirects: [] ) ] spids: [2768 2769 2774 -1] ) (case_arm pat_list: [{<I>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAG='> name:FLAG) op: assign_op.Equal rhs: {<i>} spids: [2781] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'silent='> name:silent) op: assign_op.Equal rhs: {<y>} spids: [2785] ) ] redirects: [] ) ] spids: [2777 2778 2787 -1] ) (case_arm pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')}] action: [ (C {<echo>} {($ Id.VSub_DollarName USAGE)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [2790 2791 2802 -1] ) ] redirects: [] ) ] ) redirects: [] ) (C {<shift>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName OPTIND)} {<->} {<1>}) right: <Id.Backtick_Right '`'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEVICE='> name:DEVICE) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [2825] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MODE='> name:MODE) op: assign_op.Equal rhs: {(DQ <deallocate>)} spids: [2828] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 2))} {<Id.Lit_Equals '='>} {(DQ <-A>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MODE='> name:MODE) op: assign_op.Equal rhs: {(DQ <allocate>)} spids: [2853] ) ] redirects: [] ) ] spids: [2833 2850] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 2))} {<Id.Lit_Equals '='>} {(DQ <-D>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MODE='> name:MODE) op: assign_op.Equal rhs: {(DQ <deallocate>)} spids: [2878] ) ] redirects: [] ) ] spids: [2858 2875] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MAP='> name:MAP) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<'/usr/sbin/list_devices'>} {<-s>} {<-l>} {($ Id.VSub_DollarName DEVICE)}) right: <Id.Backtick_Right '`'> ) } spids: [2889] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FILES='> name:FILES) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName MAP)}) (C {<cut>} {<-f4>} {<-d> <Id.Lit_Colon ':'>}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2902] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEVFILE='> name:DEVFILE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName FILES)}) (C {<cut>} {<-f1>} {<-d> (DQ <' '>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2923] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_DEVICE='> name:VOLUME_DEVICE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName FILES)}) (C {<cut>} {<-f2>} {<-d> (DQ <' '>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2951] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MEDIATYPE='> name:MEDIATYPE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName MAP)}) (C {<cut>} {<-f3>} {<-d> <Id.Lit_Colon ':'>}) (C {<cut>} {<-f2>} {<-d> (DQ <' '>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2974] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MEDIATYPE))} {<Id.Lit_Equals '='>} {(DQ <sr>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_MEDIATYPE='> name: VOLUME_MEDIATYPE ) op: assign_op.Equal rhs: {(DQ <cdrom>)} spids: [3027] ) ] redirects: [] ) ] spids: [3007 3024] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MEDIATYPE))} {<Id.Lit_Equals '='>} {(DQ <fd>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_MEDIATYPE='> name: VOLUME_MEDIATYPE ) op: assign_op.Equal rhs: {(DQ <floppy>)} spids: [3052] ) ] redirects: [] ) ] spids: [3032 3049] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MEDIATYPE))} {<Id.Lit_Equals '='>} {(DQ <rmdisk>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_MEDIATYPE='> name: VOLUME_MEDIATYPE ) op: assign_op.Equal rhs: {(DQ <rmdisk>)} spids: [3077] ) ] redirects: [] ) ] spids: [3057 3074] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_PATH='> name:VOLUME_PATH) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEVFILE)} spids: [3085] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MACH))} {<Id.Lit_Equals '='>} {(DQ <i386>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MEDIATYPE))} {<Id.Lit_Equals '='>} {(DQ <rmdisk>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_PATH='> name:VOLUME_PATH) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName DEVFILE)}) (C {<sed>} {<-e>} {(SQ <'s/s0/p0/'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [3127] ) ] redirects: [] ) ] spids: [3091 3124] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SYMDEV='> name:SYMDEV) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName DEVICE)}) (C {<sed>} {<-e>} {(SQ <'s/_//'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [3149] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SYMNUM='> name:SYMNUM) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName SYMDEV)}) (C {<sed>} {<-e>} {(SQ <'s/[a-z]*//g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [3171] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SYMDEV='> name:SYMDEV) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName SYMDEV)}) (C {<sed>} {<-e>} {(SQ <'s/[0-9]*//g'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [3190] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName SYMDEV))} {<Id.Lit_Equals '='>} {(DQ <sr>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_SYMDEV='> name:VOLUME_SYMDEV) op: assign_op.Equal rhs: {(DQ <cdrom>) ($ Id.VSub_DollarName SYMNUM)} spids: [3229] ) ] redirects: [] ) ] spids: [3209 3226] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName SYMDEV))} {<Id.Lit_Equals '='>} {(DQ <fd>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_SYMDEV='> name:VOLUME_SYMDEV) op: assign_op.Equal rhs: {(DQ <floppy>) ($ Id.VSub_DollarName SYMNUM)} spids: [3255] ) ] redirects: [] ) ] spids: [3235 3252] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName SYMDEV))} {<Id.Lit_Equals '='>} {(DQ <rmdisk>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_SYMDEV='> name:VOLUME_SYMDEV) op: assign_op.Equal rhs: {(DQ <rmdisk>) ($ Id.VSub_DollarName SYMNUM)} spids: [3281] ) ] redirects: [] ) ] spids: [3261 3278] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_SYMDEV='> name:VOLUME_SYMDEV) op: assign_op.Equal rhs: {($ Id.VSub_DollarName SYMDEV) ($ Id.VSub_DollarName SYMNUM)} spids: [3290] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_ZONE_NAME='> name:VOLUME_ZONE_NAME) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} spids: [3297] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_ZONE_PATH='> name:VOLUME_ZONE_PATH) op: assign_op.Equal rhs: {($ Id.VSub_Number 5)} spids: [3301] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MODE))} {<Id.Lit_Equals '='>} {(DQ <allocate>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number 3))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_USER='> name: VOLUME_USER ) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} spids: [3344] ) ] redirects: [] ) ] spids: [3325 3338] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_USER='> name:VOLUME_USER) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<'/usr/xpg4/bin/id'>} {<-u>} {<-nr>}) right: <Id.Backtick_Right '`'> ) } spids: [3351] ) ] redirects: [] ) ] redirects: [] ) ] spids: [3305 3322] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {(${ Id.VSub_Name VOLUME_ZONE_PATH) <'/'> (${ Id.VSub_Name VOLUME_MEDIATYPE) <'/'> <Id.Lit_Star '*'> <-> (${ Id.VSub_Name DEVICE) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_USER='> name:VOLUME_USER) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<ls>} {<-ld>} {(${ Id.VSub_Name VOLUME_ZONE_PATH) <'/'> (${ Id.VSub_Name VOLUME_MEDIATYPE) <'/'> <Id.Lit_Star '*'> <-> (${ Id.VSub_Name DEVICE) } ) (C {<awk>} {(SQ <'/^d/{print $3}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [3406] ) ] redirects: [] ) ] spids: [3380 3403] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number 3))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'VOLUME_USER='> name: VOLUME_USER ) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} spids: [3457] ) ] redirects: [] ) ] spids: [3441 3454] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_USER='> name:VOLUME_USER) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<'/usr/xpg4/bin/id'>} {<-u>} {<-nr>}) right: <Id.Backtick_Right '`'> ) } spids: [3464] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_NAME='> name:VOLUME_NAME) op: assign_op.Equal rhs: {<unnamed_> (${ Id.VSub_Name VOLUME_MEDIATYPE)} spids: [3485] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName VOLUME_MEDIATYPE))} {<Id.Lit_Equals '='>} {(DQ <rmdisk>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_PCFS_ID='> name:VOLUME_PCFS_ID) op: assign_op.Equal rhs: {<1>} spids: [3516] ) ] redirects: [] ) ] spids: [3496 3513] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'VOLUME_PCFS_ID='> name:VOLUME_PCFS_ID) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [3522] ) ] redirects: [] ) ] redirects: [] ) (C {<export>} {<VOLUME_ACTION>} {<VOLUME_DEVICE>} {<VOLUME_MEDIATYPE>} {<VOLUME_NAME>} {<VOLUME_PCFS_ID>} ) (C {<export>} {<VOLUME_PATH>} {<VOLUME_SYMDEV>} {<VOLUME_USER>} {<VOLUME_ZONE_NAME>} {<VOLUME_ZONE_PATH>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USERDIR='> name:USERDIR) op: assign_op.Equal rhs: {(${ Id.VSub_Name VOLUME_USER) <-> (${ Id.VSub_Name DEVICE)} spids: [3552] ) ] redirects: [] ) (C {<msg_init>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName MODE))} {<Id.Lit_Equals '='>} {(DQ <allocate>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MSGDEV='> name:MSGDEV) op: assign_op.Equal rhs: {<tty>} spids: [3588] ) ] redirects: [] ) (C {<do_allocate>}) ] spids: [3568 3585] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName FLAG))} {<Id.Lit_Equals '='>} {(DQ <i>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MSGDEV='> name:MSGDEV) op: assign_op.Equal rhs: {<console>} spids: [3618] ) ] redirects: [] ) (C {<do_init>}) ] spids: [3597 3615] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MSGDEV='> name:MSGDEV) op: assign_op.Equal rhs: {<tty>} spids: [3628] ) ] redirects: [] ) (C {<do_deallocate>}) ] redirects: [] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName EXIT_STATUS)} ) ] )