(command.CommandList children: [ (C {(set)} {(-e)}) (command.FuncDef name: usage body: (command.BraceGroup children: [ (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 84 stdin_parts: [ ('Usage:\n') ($ 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. ') (Right_DoubleQuote '"') (squash) (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. ') (Right_DoubleQuote '"') (squash) (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 ') (Right_DoubleQuote '"') ('-u 0 -g 0') (Right_DoubleQuote '"') (' is required\n') ('to reset the root/group mapping.\n') ] ) ] ) ] ) ) (command.FuncDef name: field body: (command.BraceGroup children: [ (command.Sentence child: (C {(shift)} {($ VSub_Number '$1')}) terminator: <Op_Semi ';'> ) (C {(echo)} {($ VSub_Number '$1')}) ] ) ) (command.FuncDef name: list_default_initramfs body: (command.BraceGroup children:[(C {(Lit_Other ':')})]) ) (command.FuncDef name: default_initramfs body: (command.BraceGroup children: [ (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLessDash '<<-'> fd: 16777215 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.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(${ VSub_Name output)} ) ] ) ] ) ) (command.FuncDef name: filetype body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:argv1) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-L)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ (slink))})] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ (file))})] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ (dir))})] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-b)} {(DQ (${ VSub_Name argv1))} {(-o)} {(-c)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ (nod))})] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-p)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ (pipe))})] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-S)} {(DQ (${ VSub_Name argv1))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ (sock))})] ) ] else_action: [(C {(echo)} {(DQ (invalid))})] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) ) (command.FuncDef name: list_print_mtime body: (command.BraceGroup children:[(C {(Lit_Other ':')})]) ) (command.FuncDef name: print_mtime body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(lhs_expr.LhsName name:my_mtime) op:Equal rhs:{(DQ (0))})] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:my_mtime) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(find)} {(DQ ($ VSub_Number '$1'))} {(-printf)} {(DQ ('%T@') (Lit_Other '\\') (n))} ) (C {(sort)} {(-r)}) (C {(head)} {(-n)} {(1)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) ] ) ] ) (command.SimpleCommand words: [{(echo)} {(DQ ('# Last modified: ') (${ VSub_Name my_mtime))}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(${ VSub_Name output)} ) ] ) (command.SimpleCommand words: [{(echo)} {(DQ )}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(${ VSub_Name output)} ) ] ) ] ) ) (command.FuncDef name: list_parse body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(Lit_Other '[')} {(KW_Bang '!')} {(-L)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) (C {(echo)} { (DQ ($ VSub_Number '$1') (' ') (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) ) } ) (C {(Lit_Other ':')}) ] ) ] ) ) (command.FuncDef name: parse body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:location) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name) op: Equal rhs: { (DQ (/) (word_part.BracedVarSub token: <VSub_Name location> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {(${ VSub_Name srcdir)} ) ) ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$name'))}) (C {(sed)} {(-e)} {(SQ <'s://*:/:g'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:mode) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:uid) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:gid) op: Equal rhs: {(DQ ($ VSub_Number '$4'))} ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ftype) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(filetype)} {(DQ (${ VSub_Name location))})] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.AndOr ops: [Op_DAmp Op_DPipe Op_DAmp] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$root_uid'))} {(Lit_Other '=')} {(DQ (squash))} {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:uid) op:Equal rhs:{(0)})] ) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$uid'))} {(-eq)} {(DQ ($ VSub_DollarName '$root_uid'))} {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:uid) op:Equal rhs:{(0)})] ) ] ) (command.AndOr ops: [Op_DAmp Op_DPipe Op_DAmp] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$root_gid'))} {(Lit_Other '=')} {(DQ (squash))} {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:gid) op:Equal rhs:{(0)})] ) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$gid'))} {(-eq)} {(DQ ($ VSub_DollarName '$root_gid'))} {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:gid) op:Equal rhs:{(0)})] ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:str) op: Equal rhs: {(DQ (${ VSub_Name mode) (' ') (${ VSub_Name uid) (' ') (${ VSub_Name gid))} ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(DQ (${ VSub_Name ftype))} {(Lit_Other '=')} {(DQ (invalid))} {(Lit_Other ']')} ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(DQ (${ VSub_Name location))} {(Lit_Other '=')} {(DQ (${ VSub_Name srcdir))} {(Lit_Other ']')} ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) (command.Case to_match: {(DQ (${ VSub_Name ftype))} arms: [ (case_arm pat_list: [{(DQ (file))}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:str) op: Equal rhs: { (DQ (${ VSub_Name ftype) (' ') (${ VSub_Name name) (' ') (${ VSub_Name location) (' ') (${ VSub_Name str) ) } ) ] ) ] ) (case_arm pat_list: [{(DQ (nod))}] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dev) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(ls)} {(-l)} {(DQ (${ VSub_Name location))}] more_env: [(env_pair name:LC_ALL val:{(C)})] ) ] ) left_token: <Left_Backtick '`'> ) } ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:maj) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(field)} {(5)} {(${ VSub_Name dev)})] ) left_token: <Left_Backtick '`'> ) } ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:min) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(field)} {(6)} {(${ VSub_Name dev)})] ) left_token: <Left_Backtick '`'> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:maj) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name maj> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(',')}) ) } ) ] ) (command.AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(Lit_Other '[')} {(-b)} {(DQ (${ VSub_Name location))} {(Lit_Other ']')}) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:dev) op:Equal rhs:{(DQ (b))})] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:dev) op:Equal rhs:{(DQ (c))})] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:str) op: Equal rhs: { (DQ (${ VSub_Name ftype) (' ') (${ VSub_Name name) (' ') (${ VSub_Name str) (' ') (${ VSub_Name dev) (' ') (${ VSub_Name maj) (' ') (${ VSub_Name min) ) } ) ] ) ] ) (case_arm pat_list: [{(DQ (slink))}] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:target) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(readlink)} {(DQ (${ VSub_Name location))})] ) left_token: <Left_Backtick '`'> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:str) op: Equal rhs: { (DQ (${ VSub_Name ftype) (' ') (${ VSub_Name name) (' ') (${ VSub_Name target) (' ') (${ VSub_Name str) ) } ) ] ) ] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:str) op: Equal rhs: { (DQ (${ VSub_Name ftype) (' ') (${ VSub_Name name) (' ') (${ VSub_Name str)) } ) ] ) ] ) ] ) (command.SimpleCommand words: [{(echo)} {(DQ (${ VSub_Name str))}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(${ VSub_Name output)} ) ] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] ) ) (command.FuncDef name: unknown_option body: (command.BraceGroup children: [ (command.SimpleCommand words: [ {(printf)} { (DQ ('ERROR: unknown option ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_DollarName '$arg') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (Lit_Other '\\') (n) ) } ] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.SimpleCommand words: [{(printf)} {(DQ ("If the filename validly begins with '-', "))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.SimpleCommand words: [{(printf)} {(DQ ('then it must be prefixed') (Lit_Other '\\') (n))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.SimpleCommand words: [{(printf)} {(DQ ("by './' so that it won't be interpreted as an option."))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.SimpleCommand words: [{(printf)} {(DQ (Lit_Other '\\') (n))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.SimpleCommand words: [{(usage)}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ) (command.FuncDef name:list_header body:(command.BraceGroup children:[(C {(Lit_Other ':')})])) (command.FuncDef name: header body: (command.BraceGroup children: [ (command.SimpleCommand words: [ {(printf)} { (DQ (Lit_Other '\\') ('n#####################') (Lit_Other '\\') ('n# ') ($ VSub_Number '$1') (Lit_Other '\\') (n) ) } ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(${ VSub_Name output)} ) ] ) ] ) ) (command.FuncDef name: dir_filelist body: (command.BraceGroup children: [ (C {(${ VSub_Name dep_list) (header)} {(DQ ($ VSub_Number '$1'))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:srcdir) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(sed)} {(-e)} {(SQ <'s://*:/:g'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dirlist) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(find)} {(DQ (${ VSub_Name srcdir))} {(-printf)} {(DQ ('%p %m %U %G') (Lit_Other '\\') (n))} ) ] ) left_token: <Left_CommandSub '$('> ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name dirlist))}) (C {(wc)} {(-l)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) ) } {(-gt)} {(1)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(${ VSub_Name dep_list) (print_mtime)} {(DQ ($ VSub_Number '$1'))}) (command.Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name dirlist))}) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(read)} {(x)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [(C {(${ VSub_Name dep_list) (parse)} {(${ VSub_Name x)})] ) ) ] negated: F ) ] ) ] ) ] ) ) (command.FuncDef name: input_file body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:source) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(${ VSub_Name dep_list) (header)} {(DQ ($ VSub_Number '$1'))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:is_cpio) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(sed)} {(SQ <'s/^.*\\.cpio\\(\\..*\\)\\?/cpio/'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {($ VSub_Number '$2')} {(-eq)} {(0)} {(-a)} {(${ VSub_Name is_cpio)} {(Lit_Other '=')} {(DQ (cpio))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cpio_file) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(grep)} {(-q)} {(SQ <'^.*\\.cpio\\..*'>)}) ] negated: F ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:is_cpio_compressed) op: Equal rhs: {(DQ (compressed))} ) ] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(${ VSub_Name dep_list)} {(Lit_Other ']')} ) (C {(echo)} {(DQ ($ VSub_Number '$1'))}) ] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name dep_list)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.SimpleCommand words: [{(print_mtime)} {(DQ ($ VSub_Number '$1'))}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(${ VSub_Name output)} ) ] ) (command.SimpleCommand words: [{(cat)} {(DQ ($ VSub_Number '$1'))}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(${ VSub_Name output)} ) ] ) ] ) ] else_action: [ (C {(echo)} { (DQ ($ VSub_Number '$1') (' ') (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) ) } ) (command.Pipeline children: [ (C {(cat)} {(DQ ($ VSub_Number '$1'))}) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(type)} {(dir)} {(file)} {(perm)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$type'))} {(Lit_Other '=')} {(DQ (file))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(echo)} { (DQ ($ VSub_DollarName '$file') (' ') (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\\\'> ) ) } ) terminator: <Op_Semi ';'> ) ] ) ] ) ] ) ) ] negated: F ) ] ) ] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(dir_filelist)} {(DQ ($ VSub_Number '$1'))})] ) ] else_action: [ (command.SimpleCommand words: [ {(echo)} {(DQ (' ') (${ VSub_Name prog) (": Cannot open '") ($ VSub_Number '$1') ("'"))} ] 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:prog) op:Equal rhs:{($ VSub_Number '$0')})] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:root_uid) op:Equal rhs:{(0)})] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:root_gid) op:Equal rhs:{(0)})] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:dep_list) op:Equal rhs:(word.EmptyWord))] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:cpio_file) op:Equal rhs:(word.EmptyWord))] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:cpio_list) op:Equal rhs:(word.EmptyWord))] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:output) op:Equal rhs:{(DQ (/dev/stdout))})] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:output_file) op:Equal rhs:{(DQ )})] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:is_cpio_compressed) op:Equal rhs:(word.EmptyWord))] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:compr) op:Equal rhs:{(DQ ('gzip -n -9 -f'))})] ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:arg) op:Equal rhs:{(DQ ($ VSub_Number '$1'))})] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$arg'))} arms: [ (case_arm pat_list: [{(DQ (-l))}] action: [ (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:dep_list) op:Equal rhs:{(DQ (list_))})] ) (C {(echo)} { (DQ ('deps_initramfs := ') ($ VSub_Number '$0') (' ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\\\'>) ) } ) (C {(shift)}) ] ) (case_arm pat_list: [{(DQ (-o))}] action: [ (C {(shift)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:output_file) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cpio_list) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(mktemp)} { (word_part.BracedVarSub token: <VSub_Name TMPDIR> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (tmp)} ) ) (/cpiolist.XXXXXX) } ) ] ) left_token: <Left_CommandSub '$('> ) ) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:output) op: Equal rhs: {(${ VSub_Name cpio_list)} ) ] ) (command.AndOr ops: [Op_DAmp Op_DAmp] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$output_file'))}) (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.gz) (Lit_Other '$'))}) ] negated: F ) (C {(Lit_Other '[')} {(-x)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(which)} {(gzip)}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_Backtick '`'> ) ) } {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:compr) op: Equal rhs: {(DQ ('gzip -n -9 -f'))} ) ] ) ] ) (command.AndOr ops: [Op_DAmp Op_DAmp] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$output_file'))}) (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.bz2) (Lit_Other '$'))}) ] negated: F ) (C {(Lit_Other '[')} {(-x)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(which)} {(bzip2)}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_Backtick '`'> ) ) } {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:compr) op: Equal rhs: {(DQ ('bzip2 -9 -f'))} ) ] ) ] ) (command.AndOr ops: [Op_DAmp Op_DAmp] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$output_file'))}) (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.lzma) (Lit_Other '$'))}) ] negated: F ) (C {(Lit_Other '[')} {(-x)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(which)} {(lzma)}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_Backtick '`'> ) ) } {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:compr) op: Equal rhs: {(DQ ('lzma -9 -f'))} ) ] ) ] ) (command.AndOr ops: [Op_DAmp Op_DAmp] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$output_file'))}) (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.xz) (Lit_Other '$'))}) ] negated: F ) (C {(Lit_Other '[')} {(-x)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(which)} {(xz)}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_Backtick '`'> ) ) } {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:compr) op: Equal rhs: {(DQ ('xz --check=crc32 --lzma2=dict=1MiB'))} ) ] ) ] ) (command.AndOr ops: [Op_DAmp Op_DAmp] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$output_file'))}) (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.lzo) (Lit_Other '$'))}) ] negated: F ) (C {(Lit_Other '[')} {(-x)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(which)} {(lzop)}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_Backtick '`'> ) ) } {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:compr) op: Equal rhs: {(DQ ('lzop -9 -f'))} ) ] ) ] ) (command.AndOr ops: [Op_DAmp Op_DAmp] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$output_file'))}) (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.lz4) (Lit_Other '$'))}) ] negated: F ) (C {(Lit_Other '[')} {(-x)} { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(which)} {(lz4)}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_Backtick '`'> ) ) } {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:compr) op: Equal rhs: {(DQ ('lz4 -l -9 -f'))} ) ] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$output_file'))}) (C {(grep)} {(-q)} {(DQ (Lit_Other '\\') (.cpio) (Lit_Other '$'))}) ] negated: F ) (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:compr) op:Equal rhs:{(DQ (cat))})] ) ] ) (C {(shift)}) ] ) ] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:arg) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} ) ] ) (C {(shift)}) (command.Case to_match: {(DQ ($ VSub_DollarName '$arg'))} arms: [ (case_arm pat_list: [{(DQ (-u))}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:root_uid) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} ) ] ) (C {(shift)}) ] ) (case_arm pat_list: [{(DQ (-g))}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:root_gid) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} ) ] ) (C {(shift)}) ] ) (case_arm pat_list: [{(DQ (-d))}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:default_list) op: Equal rhs: {(DQ ($ VSub_DollarName '$arg'))} ) ] ) (C {(${ VSub_Name dep_list) (default_initramfs)}) ] ) (case_arm pat_list: [{(DQ (-h))}] action: [ (C {(usage)}) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {(0)} ) ] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$arg'))} arms: [ (case_arm pat_list: [{(DQ (-)) (Lit_Other '*')}] action: [(C {(unknown_option)})] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(input_file)} {(DQ ($ VSub_DollarName '$arg'))} {(DQ ($ VSub_Pound '$#'))} ) ] ) ] ) ] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(${ VSub_Name output_file)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name cpio_file)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [(assign_pair lhs:(lhs_expr.LhsName name:timestamp) op:Equal rhs:(word.EmptyWord))] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$KBUILD_BUILD_TIMESTAMP'))}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:timestamp) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(date)} {(-d) (DQ ($ VSub_DollarName '$KBUILD_BUILD_TIMESTAMP' ) ) } {(Lit_Other '+') (Lit_Other '%') (s)} ) (C {(Lit_Other ':')}) ] ) ] ) left_token: <Left_CommandSub '$('> ) ) } ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-n)} {(DQ ($ VSub_DollarName '$timestamp'))}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:timestamp) op: Equal rhs: {(DQ ('-t ') ($ VSub_DollarName '$timestamp'))} ) ] ) ] ) ] ) ] ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cpio_tfile) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(mktemp)} { (word_part.BracedVarSub token: <VSub_Name TMPDIR> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {(Lit_Slash /) (tmp)} ) ) (/cpiofile.XXXXXX) } ) ] ) left_token: <Left_CommandSub '$('> ) ) } ) ] ) (command.SimpleCommand words: [ {(usr/gen_init_cpio)} {($ VSub_DollarName '$timestamp')} {(${ VSub_Name cpio_list)} ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name cpio_tfile)} ) ] ) ] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cpio_tfile) op: Equal rhs: {(${ VSub_Name cpio_file)} ) ] ) ] ) (C {(rm)} {(${ VSub_Name cpio_list)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name is_cpio_compressed))} {(Lit_Other '=')} {(DQ (compressed))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.SimpleCommand words: [{(cat)} {(${ VSub_Name cpio_tfile)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name output_file)} ) ] ) ] ) ] else_action: [ (command.AndOr ops: [Op_DPipe] children: [ (command.Subshell command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(${ VSub_Name cpio_tfile)}) (command.SimpleCommand words: [{(${ VSub_Name compr)} {(-)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(${ VSub_Name output_file)} ) ] ) ] negated: F ) ] ) ) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {(rm)} {(-f)} {(${ VSub_Name output_file)}) terminator: <Op_Semi ';'> ) (C {(false)}) ] ) ) ] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-z)} {(${ VSub_Name cpio_file)} {(Lit_Other ']')}) (C {(rm)} {(${ VSub_Name cpio_tfile)}) ] ) ] ) ] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )