(command.CommandList children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {($ Id.VSub_Pound '$#')} {<-ne>} {<3>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.Simple words: [ {<echo>} { (DQ <'Usage: '> ($ Id.VSub_Number '$0') <' /sbin/depmod <kernelrelease> <symbolprefix>'> ) } ] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [10 21] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEPMOD) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [42] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KERNELRELEASE) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [45] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SYMBOL_PREFIX) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [48] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {<test>} {<-r>} {<System.map>} {<-a>} {<-x>} {(DQ ($ Id.VSub_DollarName '$DEPMOD'))}) ] negated: T ) terminator: <Id.Op_Semi _> ) ] action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})] spids: [52 71] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$SYMBOL_PREFIX'))}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:release) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(DQ ($ Id.VSub_DollarName '$DEPMOD'))} {<--version>})] ) ) } spids: [101] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:package) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$release'))}) (C {<cut>} {<-d> (SQ <' '>)} {<-f>} {<1>}) ] negated: F ) ] ) ) } spids: [111] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {(DQ ($ Id.VSub_DollarName '$package'))} {<Id.Lit_Equals '='>} {(DQ <module-init-tools>)} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:version) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$release'))}) (C {<cut>} {<-d> (SQ <' '>)} {<-f>} {<2>}) ] negated: F ) ] ) ) } spids: [152] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:later) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<printf>} {(SQ <'%s\\n'>)} {(DQ ($ Id.VSub_DollarName '$version'))} {(DQ <3.13>)} ) (C {<sort>} {<-V>}) (C {<tail>} {<-n>} {<1>}) ] negated: F ) ] ) ) } spids: [175] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {(DQ ($ Id.VSub_DollarName '$later'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$version'))} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SYMBOL_PREFIX) op: assign_op.Equal rhs: {(DQ )} spids: [230] ) ] ) ] spids: [207 223] ) ] ) ] spids: [134 149] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$SYMBOL_PREFIX'))}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SYMBOL_PREFIX) op: assign_op.Equal rhs: {(DQ <'-P '> ($ Id.VSub_DollarName '$SYMBOL_PREFIX'))} spids: [255] ) ] ) ] spids: [241 252] ) ] ) ] spids: [87 98] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depmod_hack_needed) op: assign_op.Equal rhs: {<true>} spids: [273] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmp_dir) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<mktemp>} {<-d>} { (braced_var_sub token: <Id.VSub_Name TMPDIR> suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {<Id.Lit_Slash /> <tmp>} ) ) </depmod.XXXXXX> } ) ] ) ) } spids: [276] ) ] ) (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$tmp_dir') </lib/modules/> ($ Id.VSub_DollarName '$KERNELRELEASE'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Simple words: [ {(DQ ($ Id.VSub_DollarName '$DEPMOD'))} {<-b>} {(DQ ($ Id.VSub_DollarName '$tmp_dir'))} {($ Id.VSub_DollarName '$KERNELRELEASE')} ] redirects: [(redir.Redir op:<Id.Redir_Great '2>'> fd:2 arg_word:{</dev/null>})] ) terminator: <Id.Op_Semi _> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {<-e>} { (DQ ($ Id.VSub_DollarName '$tmp_dir') </lib/modules/> ($ Id.VSub_DollarName '$KERNELRELEASE') </modules.dep> ) } {<-o>} {<-e>} { (DQ ($ Id.VSub_DollarName '$tmp_dir') </lib/modules/> ($ Id.VSub_DollarName '$KERNELRELEASE') </modules.dep.bin> ) } ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depmod_hack_needed) op: assign_op.Equal rhs: {<false>} spids: [352] ) ] ) ] spids: [322 349] ) ] ) ] spids: [301 319] ) ] ) (C {<rm>} {<-rf>} {(DQ ($ Id.VSub_DollarName '$tmp_dir'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$depmod_hack_needed')}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:symlink) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$INSTALL_MOD_PATH') </lib/modules/99.98.> ($ Id.VSub_DollarName '$KERNELRELEASE') ) } spids: [376] ) ] ) (C {<ln>} {<-s>} {(DQ ($ Id.VSub_DollarName '$KERNELRELEASE'))} {(DQ ($ Id.VSub_DollarName '$symlink'))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KERNELRELEASE) op: assign_op.Equal rhs: {<99.98.> ($ Id.VSub_DollarName '$KERNELRELEASE')} spids: [397] ) ] ) ] spids: [368 373] ) ] ) (C {<Id.KW_Set set>} {<-->} {<-ae>} {<-F>} {<System.map>}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$INSTALL_MOD_PATH'))}) terminator: <Id.Op_Semi _> ) ] action: [ (C {<Id.KW_Set set>} {<-->} {(DQ ($ Id.VSub_At '$@'))} {<-b>} {(DQ ($ Id.VSub_DollarName '$INSTALL_MOD_PATH'))} ) ] spids: [414 425] ) ] ) (C {(DQ ($ Id.VSub_DollarName '$DEPMOD'))} {(DQ ($ Id.VSub_At '$@'))} {(DQ ($ Id.VSub_DollarName '$KERNELRELEASE'))} {($ Id.VSub_DollarName '$SYMBOL_PREFIX')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ret) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [458] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$depmod_hack_needed')}) terminator: <Id.Op_Semi _> ) ] action: [(C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$symlink'))})] spids: [462 467] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{($ Id.VSub_DollarName '$ret')}) ] )