(command.CommandList children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {($ VSub_Pound '$#')} {(-ne)} {(3)}) terminator: <Op_Semi ';'> ) ] action: [ (command.SimpleCommand words: [ {(echo)} { (DQ ('Usage: ') ($ VSub_Number '$0') (' /sbin/depmod <kernelrelease> <symbolprefix>')) } ] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:DEPMOD) op:Equal rhs:{($ VSub_Number '$1')})] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:KERNELRELEASE) op: Equal rhs: {($ VSub_Number '$2')} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SYMBOL_PREFIX) op: Equal rhs: {($ VSub_Number '$3')} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(test)} {(-r)} {(System.map)} {(-a)} {(-x)} {(DQ ($ VSub_DollarName '$DEPMOD'))}) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [(command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$SYMBOL_PREFIX'))}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:release) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(DQ ($ VSub_DollarName '$DEPMOD'))} {(--version)})] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:package) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$release'))}) (C {(cut)} {(-d) (SQ <' '>)} {(-f)} {(1)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(DQ ($ VSub_DollarName '$package'))} {(Lit_Other '=')} {(DQ (module-init-tools))} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:version) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$release'))}) (C {(cut)} {(-d) (SQ <' '>)} {(-f)} {(2)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:later) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(printf)} {(SQ <'%s\\n'>)} {(DQ ($ VSub_DollarName '$version'))} {(DQ (3.13))} ) (C {(sort)} {(-V)}) (C {(tail)} {(-n)} {(1)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(DQ ($ VSub_DollarName '$later'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$version'))} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SYMBOL_PREFIX) op: Equal rhs: {(DQ )} ) ] ) ] ) ] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$SYMBOL_PREFIX'))}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SYMBOL_PREFIX) op: Equal rhs: {(DQ ('-P ') ($ VSub_DollarName '$SYMBOL_PREFIX'))} ) ] ) ] ) ] ) ] ) ] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:depmod_hack_needed) op:Equal rhs:{(true)})] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tmp_dir) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(mktemp)} {(-d)} { (word_part.BracedVarSub token: <VSub_Name TMPDIR> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (tmp)} ) ) (/depmod.XXXXXX) } ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_DollarName '$tmp_dir') (/lib/modules/) ($ VSub_DollarName '$KERNELRELEASE'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.SimpleCommand words: [ {(DQ ($ VSub_DollarName '$DEPMOD'))} {(-b)} {(DQ ($ VSub_DollarName '$tmp_dir'))} {($ VSub_DollarName '$KERNELRELEASE')} ] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-e)} { (DQ ($ VSub_DollarName '$tmp_dir') (/lib/modules/) ($ VSub_DollarName '$KERNELRELEASE') (/modules.dep) ) } {(-o)} {(-e)} { (DQ ($ VSub_DollarName '$tmp_dir') (/lib/modules/) ($ VSub_DollarName '$KERNELRELEASE') (/modules.dep.bin) ) } ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:depmod_hack_needed) op: Equal rhs: {(false)} ) ] ) ] ) ] ) ] ) ] ) (C {(rm)} {(-rf)} {(DQ ($ VSub_DollarName '$tmp_dir'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {($ VSub_DollarName '$depmod_hack_needed')}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:symlink) op: Equal rhs: { (DQ ($ VSub_DollarName '$INSTALL_MOD_PATH') (/lib/modules/99.98.) ($ VSub_DollarName '$KERNELRELEASE') ) } ) ] ) (C {(ln)} {(-s)} {(DQ ($ VSub_DollarName '$KERNELRELEASE'))} {(DQ ($ VSub_DollarName '$symlink'))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:KERNELRELEASE) op: Equal rhs: {(99.98.) ($ VSub_DollarName '$KERNELRELEASE')} ) ] ) ] ) ] ) (C {(set)} {(--)} {(-ae)} {(-F)} {(System.map)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$INSTALL_MOD_PATH'))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(set)} {(--)} {(DQ ($ VSub_At '$@'))} {(-b)} {(DQ ($ VSub_DollarName '$INSTALL_MOD_PATH'))}) ] ) ] ) (C {(DQ ($ VSub_DollarName '$DEPMOD'))} {(DQ ($ VSub_At '$@'))} {(DQ ($ VSub_DollarName '$KERNELRELEASE'))} {($ VSub_DollarName '$SYMBOL_PREFIX')} ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:ret) op:Equal rhs:{($ VSub_QMark '$?')})] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {($ VSub_DollarName '$depmod_hack_needed')}) terminator: <Op_Semi ';'> ) ] action: [(C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$symlink'))})] ) ] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_DollarName '$ret')}) ] )