(command.CommandList children: [ (C {<set>} {<-e>}) (command.ShFunction name: usage body: (BraceGroup children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 84 stdin_parts: [ <'Usage:\n'> ($ Id.VSub_Number '$0') <' [-o <file>] [-u <uid>] [-g <gid>] {-d | <cpio_source>} ...\n'> <'\t-o <file> Create compressed initramfs file named <file> using\n'> <'\t\t gen_init_cpio and compressor depending on the extension\n'> <'\t-u <uid> User ID to map to user ID 0 (root).\n'> <'\t\t <uid> is only meaningful if <cpio_source> is a\n'> <'\t\t directory. '> <Id.Right_DoubleQuote '"'> <squash> <Id.Right_DoubleQuote '"'> <' forces all files to uid 0.\n'> <'\t-g <gid> Group ID to map to group ID 0 (root).\n'> <'\t\t <gid> is only meaningful if <cpio_source> is a\n'> <'\t\t directory. '> <Id.Right_DoubleQuote '"'> <squash> <Id.Right_DoubleQuote '"'> <' forces all files to gid 0.\n'> <'\t<cpio_source> File list or directory for cpio archive.\n'> <'\t\t If <cpio_source> is a .cpio file it will be used\n'> <'\t\t as direct input to initramfs.\n'> <'\t-d Output the default cpio list.\n'> <'\n'> <'All options except -o and -l may be repeated and are interpreted\n'> <'sequentially and immediately. -u and -g states are preserved across\n'> <'<cpio_source> options so an explicit '> <Id.Right_DoubleQuote '"'> <'-u 0 -g 0'> <Id.Right_DoubleQuote '"'> <' is required\n'> <'to reset the root/group mapping.\n'> ] ) ) ] do_fork: T ) ] ) ) (command.ShFunction name: field body: (BraceGroup children: [ (command.Sentence child: (C {<shift>} {($ Id.VSub_Number '$1')}) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_Number '$1')}) ] ) ) (command.ShFunction name: list_default_initramfs body: (BraceGroup children:[(C {<Id.Lit_Colon ':'>})]) ) (command.ShFunction name: default_initramfs body: (BraceGroup children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLessDash '<<-'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 156 stdin_parts: [ <'# This is a very simple, default initramfs\n'> <'\n'> <'dir /dev 0755 0 0\n'> <'nod /dev/console 0600 0 0 c 5 1\n'> <'dir /root 0700 0 0\n'> <'# file /kinit usr/kinit/kinit 0755 0 0\n'> <'# slink /init kinit 0755 0 0\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name output)} ) ] do_fork: T ) ] ) ) (command.ShFunction name: filetype body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'argv1='> (DQ ($ Id.VSub_Number '$1'))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-L>} {(DQ (${ Id.VSub_Name argv1))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<echo>} {(DQ <slink>)})] spids: [180 195] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ (${ Id.VSub_Name argv1))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<echo>} {(DQ <file>)})] spids: [205 220] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ (${ Id.VSub_Name argv1))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<echo>} {(DQ <dir>)})] spids: [230 245] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-b>} {(DQ (${ Id.VSub_Name argv1))} {<-o>} {<-c>} {(DQ (${ Id.VSub_Name argv1))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<echo>} {(DQ <nod>)})] spids: [255 280] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-p>} {(DQ (${ Id.VSub_Name argv1))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<echo>} {(DQ <pipe>)})] spids: [290 305] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-S>} {(DQ (${ Id.VSub_Name argv1))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<echo>} {(DQ <sock>)})] spids: [315 330] ) ] else_action: [(C {<echo>} {(DQ <invalid>)})] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: list_print_mtime body: (BraceGroup children:[(C {<Id.Lit_Colon ':'>})]) ) (command.ShFunction name: print_mtime body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'my_mtime='> (DQ <0>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-e>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:my_mtime) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<find>} {(DQ ($ Id.VSub_Number '$1'))} {<-printf>} {(DQ <'%T@'> <Id.Lit_BadBackslash '\\'> <n>)} ) (C {<sort>} {<-r>}) (C {<head>} {<-n>} {<1>}) ] negated: F ) ) } spids: [404] ) ] ) ] spids: [388 401] ) ] ) (command.Simple words: [{<echo>} {(DQ <'# Last modified: '> (${ Id.VSub_Name my_mtime))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name output)} ) ] do_fork: T ) (command.Simple words: [{<echo>} {(DQ )}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name output)} ) ] do_fork: T ) ] ) ) (command.ShFunction name: list_parse body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-L>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>} ) (C {<echo>} { (DQ ($ Id.VSub_Number '$1') <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ) ) } ) (C {<Id.Lit_Colon ':'>}) ] ) ] ) ) (command.ShFunction name: parse body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'location='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'name='> (DQ <'/'> (braced_var_sub token: <Id.VSub_Name location> suffix_op: (suffix_op.Unary tok: <Id.VOp1_Pound '#'> arg_word: {(${ Id.VSub_Name srcdir)} ) ) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:name) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$name'))}) (C {<sed>} {<-e>} {(SQ <'s://*:/:g'>)}) ] negated: F ) ) } spids: [549] ) ] ) (C {<local>} {<Id.Lit_VarLike 'mode='> (DQ ($ Id.VSub_Number '$2'))}) (C {<local>} {<Id.Lit_VarLike 'uid='> (DQ ($ Id.VSub_Number '$3'))}) (C {<local>} {<Id.Lit_VarLike 'gid='> (DQ ($ Id.VSub_Number '$4'))}) (C {<local>} {<Id.Lit_VarLike 'ftype='> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<filetype>} {(DQ (${ Id.VSub_Name location))}) ) } ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$root_uid'))} {<Id.Lit_Equals '='>} {(DQ <squash>)} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:uid) op: assign_op.Equal rhs: {<0>} spids: [627] ) ] ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$uid'))} {<-eq>} {(DQ ($ Id.VSub_DollarName '$root_uid'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:uid) op: assign_op.Equal rhs: {<0>} spids: [648] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$root_gid'))} {<Id.Lit_Equals '='>} {(DQ <squash>)} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gid) op: assign_op.Equal rhs: {<0>} spids: [668] ) ] ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$gid'))} {<-eq>} {(DQ ($ Id.VSub_DollarName '$root_gid'))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gid) op: assign_op.Equal rhs: {<0>} spids: [689] ) ] ) ] ) (C {<local>} {<Id.Lit_VarLike 'str='> (DQ (${ Id.VSub_Name mode) <' '> (${ Id.VSub_Name uid) <' '> (${ Id.VSub_Name gid)) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name ftype))} {<Id.Lit_Equals '='>} {(DQ <invalid>)} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name location))} {<Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name srcdir))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (command.Case to_match: {(DQ (${ Id.VSub_Name ftype))} arms: [ (case_arm pat_list: [{(DQ <file>)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:str) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name ftype) <' '> (${ Id.VSub_Name name) <' '> (${ Id.VSub_Name location) <' '> (${ Id.VSub_Name str) ) } spids: [778] ) ] ) ] spids: [772 775 798 -1] ) (case_arm pat_list: [{(DQ <nod>)}] action: [ (C {<local>} {<Id.Lit_VarLike 'dev='> (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<ls>} {<-l>} {(DQ (${ Id.VSub_Name location))}] more_env: [(env_pair name:LC_ALL val:{<C>} spids:[813])] do_fork: T ) ) } ) (C {<local>} {<Id.Lit_VarLike 'maj='> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<field>} {<5>} {(${ Id.VSub_Name dev)}) ) } ) (C {<local>} {<Id.Lit_VarLike 'min='> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<field>} {<6>} {(${ Id.VSub_Name dev)}) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:maj) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name maj> suffix_op: (suffix_op.Unary tok:<Id.VOp1_Percent '%'> arg_word:{<','>}) ) } spids: [860] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-b>} {(DQ (${ Id.VSub_Name location))} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <b>)} spids: [883] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: {(DQ <c>)} spids: [890] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:str) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name ftype) <' '> (${ Id.VSub_Name name) <' '> (${ Id.VSub_Name str) <' '> (${ Id.VSub_Name dev) <' '> (${ Id.VSub_Name maj) <' '> (${ Id.VSub_Name min) ) } spids: [897] ) ] ) ] spids: [801 804 925 -1] ) (case_arm pat_list: [{(DQ <slink>)}] action: [ (C {<local>} {<Id.Lit_VarLike 'target='> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<readlink>} {(DQ (${ Id.VSub_Name location))}) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:str) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name ftype) <' '> (${ Id.VSub_Name name) <' '> (${ Id.VSub_Name target) <' '> (${ Id.VSub_Name str) ) } spids: [950] ) ] ) ] spids: [928 931 970 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:str) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name ftype) <' '> (${ Id.VSub_Name name) <' '> (${ Id.VSub_Name str) ) } spids: [977] ) ] ) ] spids: [973 974 993 -1] ) ] ) (command.Simple words: [{<echo>} {(DQ (${ Id.VSub_Name str))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name output)} ) ] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>}) ] ) ) (command.ShFunction name: unknown_option body: (BraceGroup children: [ (command.Simple words: [ {<printf>} { (DQ <'ERROR: unknown option '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$arg') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<printf>} {(DQ <'If the filename validly begins with \'-\', '>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<printf>} {(DQ <'then it must be prefixed'> <Id.Lit_BadBackslash '\\'> <n>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<printf>} {(DQ <'by \'./\' so that it won\'t be interpreted as an option.'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<printf>} {(DQ <Id.Lit_BadBackslash '\\'> <n>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.Simple words: [{<usage>}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.ShFunction name:list_header body:(BraceGroup children:[(C {<Id.Lit_Colon ':'>})])) (command.ShFunction name: header body: (BraceGroup children: [ (command.Simple words: [ {<printf>} { (DQ <Id.Lit_BadBackslash '\\'> <'n#####################'> <Id.Lit_BadBackslash '\\'> <'n# '> ($ Id.VSub_Number '$1') <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name output)} ) ] do_fork: T ) ] ) ) (command.ShFunction name: dir_filelist body: (BraceGroup children: [ (C {(${ Id.VSub_Name dep_list) <header>} {(DQ ($ Id.VSub_Number '$1'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:srcdir) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_Number '$1'))}) (C {<sed>} {<-e>} {(SQ <'s://*:/:g'>)}) ] negated: F ) ) } spids: [1162] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dirlist) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<find>} {(DQ (${ Id.VSub_Name srcdir))} {<-printf>} {(DQ <'%p %m %U %G'> <Id.Lit_BadBackslash '\\'> <n>)} ) ) } spids: [1182] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ (${ Id.VSub_Name dirlist))}) (C {<wc>} {<-l>}) ] negated: F ) ) ) } {<-gt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(${ Id.VSub_Name dep_list) <print_mtime>} {(DQ ($ Id.VSub_Number '$1'))}) (command.Pipeline children: [ (C {<echo>} {(DQ (${ Id.VSub_Name dirlist))}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<x>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [(C {(${ Id.VSub_Name dep_list) <parse>} {(${ Id.VSub_Name x)})] ) ) ] negated: F ) ] spids: [1207 1236] ) ] ) ] ) ) (command.ShFunction name: input_file body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1306] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(${ Id.VSub_Name dep_list) <header>} {(DQ ($ Id.VSub_Number '$1'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:is_cpio) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_Number '$1'))}) (C {<sed>} {(SQ <'s/^.*\\.cpio\\(\\..*\\)\\?/cpio/'>)}) ] negated: F ) ) ) } spids: [1338] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Number '$2')} {<-eq>} {<0>} {<-a>} {(${ Id.VSub_Name is_cpio)} {<Id.Lit_Equals '='>} {(DQ <cpio>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cpio_file) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1386] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_Number '$1'))}) (C {<grep>} {<-q>} {(SQ <'^.*\\.cpio\\..*'>)}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:is_cpio_compressed) op: assign_op.Equal rhs: {(DQ <compressed>)} spids: [1408] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(${ Id.VSub_Name dep_list)} {<Id.Lit_RBracket ']'>} ) (C {<echo>} {(DQ ($ Id.VSub_Number '$1'))}) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [1358 1383] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(${ Id.VSub_Name dep_list)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<print_mtime>} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name output)} ) ] do_fork: T ) (command.Simple words: [{<cat>} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name output)} ) ] do_fork: T ) ] spids: [1443 1456] ) ] else_action: [ (C {<echo>} { (DQ ($ Id.VSub_Number '$1') <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ) ) } ) (command.Pipeline children: [ (C {<cat>} {(DQ ($ Id.VSub_Number '$1'))}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<type>} {<dir>} {<file>} {<perm>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$type'))} {<Id.Lit_Equals '='>} {(DQ <file>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (C {<echo>} { (DQ ($ Id.VSub_DollarName '$file') <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ) ) } ) terminator: <Id.Op_Semi _> ) ] spids: [1522 1539] ) ] ) ] ) ) ] negated: F ) ] ) ] spids: [1312 1325] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<dir_filelist>} {(DQ ($ Id.VSub_Number '$1'))})] spids: [1561 1574] ) ] else_action: [ (command.Simple words: [ {<echo>} { (DQ <' '> (${ Id.VSub_Name prog) <': Cannot open \''> ($ Id.VSub_Number '$1') <'\''> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:prog) op: assign_op.Equal rhs: {($ Id.VSub_Number '$0')} spids: [1613] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:root_uid) op: assign_op.Equal rhs: {<0>} spids: [1616] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:root_gid) op: assign_op.Equal rhs: {<0>} spids: [1619] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dep_list) op: assign_op.Equal rhs: (word.Empty) spids: [1622] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cpio_file) op: assign_op.Equal rhs: (word.Empty) spids: [1624] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cpio_list) op: assign_op.Equal rhs: (word.Empty) spids: [1626] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:output) op: assign_op.Equal rhs: {(DQ <'/dev/stdout'>)} spids: [1628] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:output_file) op: assign_op.Equal rhs: {(DQ )} spids: [1633] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:is_cpio_compressed) op: assign_op.Equal rhs: (word.Empty) spids: [1637] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compr) op: assign_op.Equal rhs: {(DQ <'gzip -n -9 -f'>)} spids: [1639] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arg) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1645] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$arg'))} arms: [ (case_arm pat_list: [{(DQ <-l>)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dep_list) op: assign_op.Equal rhs: {(DQ <list_>)} spids: [1668] ) ] ) (C {<echo>} { (DQ <'deps_initramfs := '> ($ Id.VSub_Number '$0') <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) ) } ) (C {<shift>}) ] spids: [1659 1662 1687 -1] ) (case_arm pat_list: [{(DQ <-o>)}] action: [ (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:output_file) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [1702] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cpio_list) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} { (braced_var_sub token: <Id.VSub_Name TMPDIR> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<Id.Lit_Slash '/'> <tmp>} ) ) <'/cpiolist.XXXXXX'> } ) ) ) } spids: [1708] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:output) op: assign_op.Equal rhs: {(${ Id.VSub_Name cpio_list)} spids: [1724] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$output_file'))}) (C {<grep>} {<-q>} {(DQ <Id.Lit_BadBackslash '\\'> <.gz> <Id.Lit_Dollar '$'>)}) ] negated: F ) (C {<Id.Lit_LBracket '['>} {<-x>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<which>} {<gzip>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) ) } {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compr) op: assign_op.Equal rhs: {(DQ <'gzip -n -9 -f'>)} spids: [1776] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$output_file'))}) (C {<grep>} {<-q>} {(DQ <Id.Lit_BadBackslash '\\'> <.bz2> <Id.Lit_Dollar '$'>)}) ] negated: F ) (C {<Id.Lit_LBracket '['>} {<-x>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<which>} {<bzip2>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) ) } {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compr) op: assign_op.Equal rhs: {(DQ <'bzip2 -9 -f'>)} spids: [1828] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$output_file'))}) (C {<grep>} {<-q>} {(DQ <Id.Lit_BadBackslash '\\'> <.lzma> <Id.Lit_Dollar '$'>)}) ] negated: F ) (C {<Id.Lit_LBracket '['>} {<-x>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<which>} {<lzma>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) ) } {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compr) op: assign_op.Equal rhs: {(DQ <'lzma -9 -f'>)} spids: [1880] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$output_file'))}) (C {<grep>} {<-q>} {(DQ <Id.Lit_BadBackslash '\\'> <.xz> <Id.Lit_Dollar '$'>)}) ] negated: F ) (C {<Id.Lit_LBracket '['>} {<-x>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<which>} {<xz>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) ) } {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compr) op: assign_op.Equal rhs: {(DQ <'xz --check=crc32 --lzma2=dict=1MiB'>)} spids: [1932] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$output_file'))}) (C {<grep>} {<-q>} {(DQ <Id.Lit_BadBackslash '\\'> <.lzo> <Id.Lit_Dollar '$'>)}) ] negated: F ) (C {<Id.Lit_LBracket '['>} {<-x>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<which>} {<lzop>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) ) } {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compr) op: assign_op.Equal rhs: {(DQ <'lzop -9 -f'>)} spids: [1984] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$output_file'))}) (C {<grep>} {<-q>} {(DQ <Id.Lit_BadBackslash '\\'> <.lz4> <Id.Lit_Dollar '$'>)}) ] negated: F ) (C {<Id.Lit_LBracket '['>} {<-x>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<which>} {<lz4>}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) ) } {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compr) op: assign_op.Equal rhs: {(DQ <'lz4 -l -9 -f'>)} spids: [2036] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$output_file'))}) (C {<grep>} {<-q>} {(DQ <Id.Lit_BadBackslash '\\'> <.cpio> <Id.Lit_Dollar '$'>)}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:compr) op: assign_op.Equal rhs: {(DQ <cat>)} spids: [2062] ) ] ) ] ) (C {<shift>}) ] spids: [1690 1693 2071 -1] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arg) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [2091] ) ] ) (C {<shift>}) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$arg'))} arms: [ (case_arm pat_list: [{(DQ <-u>)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:root_uid) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [2118] ) ] ) (C {<shift>}) ] spids: [2109 2112 2127 -1] ) (case_arm pat_list: [{(DQ <-g>)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:root_gid) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [2139] ) ] ) (C {<shift>}) ] spids: [2130 2133 2148 -1] ) (case_arm pat_list: [{(DQ <-d>)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:default_list) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$arg'))} spids: [2160] ) ] ) (C {(${ Id.VSub_Name dep_list) <default_initramfs>}) ] spids: [2151 2154 2172 -1] ) (case_arm pat_list: [{(DQ <-h>)}] action: [ (C {<usage>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] spids: [2175 2178 2189 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$arg'))} arms: [ (case_arm pat_list: [{(DQ <->) <Id.Lit_Star '*'>}] action: [(C {<unknown_option>})] spids: [2205 2209 2215 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<input_file>} {(DQ ($ Id.VSub_DollarName '$arg'))} {(DQ ($ Id.VSub_Pound '$#'))} ) ] spids: [2218 2219 2236 -1] ) ] ) ] spids: [2192 2193 2242 -1] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(${ Id.VSub_Name output_file)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(${ Id.VSub_Name cpio_file)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:timestamp) op: assign_op.Equal rhs: (word.Empty) spids: [2290] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$KBUILD_BUILD_TIMESTAMP'))} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:timestamp) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<date>} {<-d> (DQ ($ Id.VSub_DollarName '$KBUILD_BUILD_TIMESTAMP') ) } {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>} ) (C {<Id.Lit_Colon ':'>}) ] ) ) ) } spids: [2307] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$timestamp'))}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:timestamp) op: assign_op.Equal rhs: {(DQ <'-t '> ($ Id.VSub_DollarName '$timestamp'))} spids: [2342] ) ] ) ] spids: [2328 2339] ) ] ) ] spids: [2293 2304] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cpio_tfile) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} { (braced_var_sub token: <Id.VSub_Name TMPDIR> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<Id.Lit_Slash '/'> <tmp>} ) ) <'/cpiofile.XXXXXX'> } ) ) ) } spids: [2355] ) ] ) (command.Simple words: [ {<'usr/gen_init_cpio'>} {($ Id.VSub_DollarName '$timestamp')} {(${ Id.VSub_Name cpio_list)} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name cpio_tfile)} ) ] do_fork: T ) ] spids: [2274 2287] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cpio_tfile) op: assign_op.Equal rhs: {(${ Id.VSub_Name cpio_file)} spids: [2389] ) ] ) ] ) (C {<rm>} {(${ Id.VSub_Name cpio_list)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name is_cpio_compressed))} {<Id.Lit_Equals '='>} {(DQ <compressed>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>} {(${ Id.VSub_Name cpio_tfile)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name output_file)} ) ] do_fork: T ) ] spids: [2405 2424] ) ] else_action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell child: (command.Pipeline children: [ (C {<cat>} {(${ Id.VSub_Name cpio_tfile)}) (command.Simple words: [{(${ Id.VSub_Name compr)} {<->}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name output_file)} ) ] do_fork: T ) ] negated: F ) ) (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<rm>} {<-f>} {(${ Id.VSub_Name output_file)}) terminator: <Id.Op_Semi _> ) (C {<false>}) ] ) ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(${ Id.VSub_Name cpio_file)} {<Id.Lit_RBracket ']'>}) (C {<rm>} {(${ Id.VSub_Name cpio_tfile)}) ] ) ] spids: [2256 2271] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )