(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {(/sbin) (Id.Lit_Other ':') (/bin)} spids: [46] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TTYGRP) op: assign_op.Equal rhs: {(5)} spids: [51] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TTYMODE) op: assign_op.Equal rhs: {(620)} spids: [54] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-f)} {(/etc/default/devpts)} {(Id.Lit_RBracket ']')}) (C {(.)} {(/etc/default/devpts)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KERNEL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:74) command_list: (command.CommandList children:[(C {(uname)} {(-s)})]) ) ) } spids: [72] ) ] ) (C {(.)} {(/lib/lsb/init-functions)}) (C {(.)} {(/lib/init/vars.sh)}) (C {(.)} {(/lib/init/tmpfs.sh)}) (C {(.)} {(/lib/init/mount-functions.sh)}) (command.ShFunction name: mount_filesystems body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MNTMODE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [114] ) ] ) (C {(mount_shm)} {(DQ ($ Id.VSub_DollarName '$MNTMODE'))}) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$KERNEL'))} {(Id.Lit_Equals '=')} {(Linux)} {(Id.Lit_RBracket ']')} ) ] action: [ (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-d)} {(/dev/pts)} {(Id.Lit_RBracket ']')} ) ] action: [ (C {(mkdir)} {(--mode) (Id.Lit_Equals '=') (755)} {(/dev/pts)}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-x)} {(/sbin/restorecon)} {(Id.Lit_RBracket ']')} ) (C {(/sbin/restorecon)} {(/dev/pts)}) ] ) ] spids: [155 168] ) ] ) (C {(domount)} {(DQ ($ Id.VSub_DollarName '$MNTMODE'))} {(devpts)} {(DQ )} {(/dev/pts)} {(devpts)} { (DQ ('-onoexec,nosuid,gid=') ($ Id.VSub_DollarName '$TTYGRP') (',mode=') ($ Id.VSub_DollarName '$TTYMODE') ) } ) ] spids: [137 152] ) ] ) ] ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (command.Simple words: [ {(echo)} {(DQ ("Warning: mountdevsubfs should be called with the 'start' argument."))} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:246) fd: -1 arg_word: {(2)} ) ] ) (C {(mount_filesystems)} {(mount_noupdate)}) ] spids: [235 237 255 -1] ) (case_arm pat_list: [{(start)}] action: [(C {(mount_filesystems)} {(mount_noupdate)})] spids: [258 259 267 -1] ) (case_arm pat_list: [{(restart)} {(reload)} {(force-reload)}] action: [(C {(mount_filesystems)} {(remount)})] spids: [270 275 283 -1] ) (case_arm pat_list:[{(stop)} {(status)}] spids:[286 289 296 -1]) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Simple words: [{(echo)} {(DQ ('Usage: mountdevsubfs [start|stop]'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:309) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:313) arg_word: {(3)} ) ] spids: [299 300 318 -1] ) ] ) ] )