(command.CommandList children: [ (C {(Id.KW_Set set)} {(-e)}) (command.ShFunction name: usage body: (command.BraceGroup children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:47) fd: -1 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') ] ) ] ) ] ) ) (command.ShFunction name: field body: (command.BraceGroup children: [ (command.Sentence child: (C {(shift)} {($ Id.VSub_Number '$1')}) terminator: (Token id:Id.Op_Semi val:';' span_id:105) ) (C {(echo)} {($ Id.VSub_Number '$1')}) ] ) ) (command.ShFunction name: list_default_initramfs body: (command.BraceGroup children:[(C {(Id.Lit_Other ':')})]) ) (command.ShFunction name: default_initramfs body: (command.BraceGroup children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLessDash val:'<<-' span_id:139) fd: -1 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: (Token id:Id.Redir_DGreat val:'>>' span_id:142) fd: -1 arg_word: {(${ Id.VSub_Name output)} ) ] ) ] ) ) (command.ShFunction name: filetype body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'argv1=') (DQ ($ Id.VSub_Number '$1'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-L)} {(DQ (${ Id.VSub_Name argv1))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:193) ) ] action: [(C {(echo)} {(DQ (slink))})] spids: [180 195] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ (${ Id.VSub_Name argv1))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:218) ) ] action: [(C {(echo)} {(DQ (file))})] spids: [205 220] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ (${ Id.VSub_Name argv1))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:243) ) ] action: [(C {(echo)} {(DQ (dir))})] spids: [230 245] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-b)} {(DQ (${ Id.VSub_Name argv1))} {(-o)} {(-c)} {(DQ (${ Id.VSub_Name argv1))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:278) ) ] action: [(C {(echo)} {(DQ (nod))})] spids: [255 280] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-p)} {(DQ (${ Id.VSub_Name argv1))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:303) ) ] action: [(C {(echo)} {(DQ (pipe))})] spids: [290 305] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-S)} {(DQ (${ Id.VSub_Name argv1))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:328) ) ] action: [(C {(echo)} {(DQ (sock))})] spids: [315 330] ) ] else_action: [(C {(echo)} {(DQ (invalid))})] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:353) arg_word: {(0)} ) ] ) ) (command.ShFunction name: list_print_mtime body: (command.BraceGroup children:[(C {(Id.Lit_Other ':')})]) ) (command.ShFunction name: print_mtime body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'my_mtime=') (DQ (0))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-e)} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:399) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:my_mtime) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:405) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(find)} {(DQ ($ Id.VSub_Number '$1'))} {(-printf)} {(DQ ('%T@') (Id.Lit_Other '\\') (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.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:449) fd: -1 arg_word: {(${ Id.VSub_Name output)} ) ] ) (command.Simple words: [{(echo)} {(DQ )}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:461) fd: -1 arg_word: {(${ Id.VSub_Name output)} ) ] ) ] ) ) (command.ShFunction name: list_parse body: (command.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: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:496) ) ) } ) (C {(Id.Lit_Other ':')}) ] ) ] ) ) (command.ShFunction name: parse body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'location=') (DQ ($ Id.VSub_Number '$1'))}) (C {(local)} {(Id.Lit_VarLike 'name=') (DQ (/) (braced_var_sub token: (Token id:Id.VSub_Name val:location span_id:536) suffix_op: (suffix_op.Unary op_id: 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: (Token id:Id.Left_DollarParen val:'$(' span_id:550) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$name'))}) (C {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s://*:/:g' span_id:564))} ) ] 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: (Token id:Id.Left_DollarParen val:'$(' span_id:596) command_list: (command.CommandList children: [(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: (Token id:Id.ControlFlow_Return val:return span_id:730) 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: (Token id:Id.ControlFlow_Return val:return span_id:755) 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: (Token id:Id.Left_Backtick val:'`' span_id:810) command_list: (command.CommandList children: [ (command.Simple words: [{(ls)} {(-l)} {(DQ (${ Id.VSub_Name location))}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[813])] ) ] ) ) } ) (C {(local)} {(Id.Lit_VarLike 'maj=') (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:831) command_list: (command.CommandList children: [(C {(field)} {(5)} {(${ Id.VSub_Name dev)})] ) ) } ) (C {(local)} {(Id.Lit_VarLike 'min=') (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:847) command_list: (command.CommandList children: [(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: (Token id:Id.VSub_Name val:maj span_id:862) suffix_op: (suffix_op.Unary op_id: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: (Token id:Id.Left_Backtick val:'`' span_id:937) command_list: (command.CommandList children: [(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.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:1008) fd: -1 arg_word: {(${ Id.VSub_Name output)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:1016) arg_word: {(0)} ) ] ) ) (command.ShFunction name: unknown_option body: (command.BraceGroup children: [ (command.Simple words: [ {(printf)} { (DQ ('ERROR: unknown option ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1034) ) ($ Id.VSub_DollarName '$arg') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:1036) ) (Id.Lit_Other '\\') (n) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1041) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(printf)} {(DQ ("If the filename validly begins with '-', "))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1051) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(printf)} {(DQ ('then it must be prefixed') (Id.Lit_Other '\\') (n))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1063) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(printf)} {(DQ ("by './' so that it won't be interpreted as an option."))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1073) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(printf)} {(DQ (Id.Lit_Other '\\') (n))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1084) fd: -1 arg_word: {(2)} ) ] ) (command.Simple words: [{(usage)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1090) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1094) arg_word: {(1)} ) ] ) ) (command.ShFunction name: list_header body: (command.BraceGroup children:[(C {(Id.Lit_Other ':')})]) ) (command.ShFunction name: header body: (command.BraceGroup children: [ (command.Simple words: [ {(printf)} { (DQ (Id.Lit_Other '\\') ('n#####################') (Id.Lit_Other '\\') ('n# ') ($ Id.VSub_Number '$1') (Id.Lit_Other '\\') (n) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:1132) fd: -1 arg_word: {(${ Id.VSub_Name output)} ) ] ) ] ) ) (command.ShFunction name: dir_filelist body: (command.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: (Token id:Id.Left_DollarParen val:'$(' span_id:1163) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s://*:/:g' span_id:1177))} ) ] 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: (Token id:Id.Left_DollarParen val:'$(' span_id:1183) command_list: (command.CommandList children: [ (C {(find)} {(DQ (${ Id.VSub_Name srcdir))} {(-printf)} {(DQ ('%p %m %U %G') (Id.Lit_Other '\\') (n))} ) ] ) ) } spids: [1182] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:1212) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ (${ Id.VSub_Name dirlist))}) (C {(wc)} {(-l)}) ] negated: F ) ] ) ) ) } {(-gt)} {(1)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1234) ) ] 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: (Token id:Id.KW_While val:while span_id:1262) cond: [ (command.Sentence child: (C {(read)} {(x)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1267) ) ] 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: (command.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: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-f)} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1323) ) ] 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: (Token id:Id.Left_DollarParen val:'$(' span_id:1340) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_Number '$1'))}) (C {(sed)} { (SQ (Token id: Id.Lit_Chars val: 's/^.*\\.cpio\\(\\..*\\)\\?/cpio/' span_id: 1352 ) ) } ) ] negated: F ) ] ) ) ) } spids: [1338] ) ] ) (command.If arms: [ (if_arm cond: [ (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: (Token id:Id.Op_Semi val:';' span_id:1381) ) ] 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 (Token id: Id.Lit_Chars val: '^.*\\.cpio\\..*' span_id: 1403 ) ) } ) ] 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: (Token id:Id.ControlFlow_Return val:return span_id:1435) arg_word: {(0)} ) ] spids: [1358 1383] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-z)} {(${ Id.VSub_Name dep_list)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1454) ) ] action: [ (command.Simple words: [{(print_mtime)} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:1465) fd: -1 arg_word: {(${ Id.VSub_Name output)} ) ] ) (command.Simple words: [{(cat)} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:1478) fd: -1 arg_word: {(${ Id.VSub_Name output)} ) ] ) ] spids: [1443 1456] ) ] else_action: [ (C {(echo)} { (DQ ($ Id.VSub_Number '$1') (' ') (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:1493) ) ) } ) (command.Pipeline children: [ (C {(cat)} {(DQ ($ Id.VSub_Number '$1'))}) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:1505) cond: [ (command.Sentence child: (C {(read)} {(type)} {(dir)} {(file)} {(perm)}) terminator: (Token id:Id.Op_Semi val:';' span_id:1517) ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$type'))} {(Id.Lit_Equals '=')} {(DQ (file))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1537) ) ] action: [ (command.Sentence child: (C {(echo)} { (DQ ($ Id.VSub_DollarName '$file') (' ') (word_part.EscapedLiteral token: (Token id: Id.Lit_EscapedChar val: '\\\\' span_id: 1547 ) ) ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:1549) ) ] spids: [1522 1539] ) ] ) ] ) ) ] negated: F ) ] ) ] spids: [1312 1325] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:1572) ) ] 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.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:1599) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:1603) 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: (Token id:Id.Lit_EscapedChar val:'\\\\' span_id:1680) ) ) } ) (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: (Token id:Id.Left_DollarParen val:'$(' span_id:1710) command_list: (command.CommandList children: [ (C {(mktemp)} { (braced_var_sub token: (Token id:Id.VSub_Name val:TMPDIR span_id:1714) suffix_op: (suffix_op.Unary op_id: 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_Other '\\') (.gz) (Id.Lit_Other '$'))}) ] negated: F ) (C {(Id.Lit_LBracket '[')} {(-x)} { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1757) command_list: (command.CommandList children: [ (command.Simple words: [{(which)} {(gzip)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1764) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } {(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_Other '\\') (.bz2) (Id.Lit_Other '$'))}) ] negated: F ) (C {(Id.Lit_LBracket '[')} {(-x)} { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1809) command_list: (command.CommandList children: [ (command.Simple words: [{(which)} {(bzip2)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1816) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } {(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_Other '\\') (.lzma) (Id.Lit_Other '$'))}) ] negated: F ) (C {(Id.Lit_LBracket '[')} {(-x)} { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1861) command_list: (command.CommandList children: [ (command.Simple words: [{(which)} {(lzma)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1868) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } {(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_Other '\\') (.xz) (Id.Lit_Other '$'))}) ] negated: F ) (C {(Id.Lit_LBracket '[')} {(-x)} { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1913) command_list: (command.CommandList children: [ (command.Simple words: [{(which)} {(xz)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1920) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } {(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_Other '\\') (.lzo) (Id.Lit_Other '$'))}) ] negated: F ) (C {(Id.Lit_LBracket '[')} {(-x)} { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:1965) command_list: (command.CommandList children: [ (command.Simple words: [{(which)} {(lzop)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:1972) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } {(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_Other '\\') (.lz4) (Id.Lit_Other '$'))}) ] negated: F ) (C {(Id.Lit_LBracket '[')} {(-x)} { (DQ (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:2017) command_list: (command.CommandList children: [ (command.Simple words: [{(which)} {(lz4)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:2024) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ) ) } {(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_Other '\\') (.cpio) (Id.Lit_Other '$'))}) ] 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: (Token id:Id.KW_While val:while span_id:2075) cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_Pound '$#')} {(-gt)} {(0)} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:2086) ) ] 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: (Token id:Id.ControlFlow_Exit val:exit span_id:2184) 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: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(${ Id.VSub_Name output_file)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2269) ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-z)} {(${ Id.VSub_Name cpio_file)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2285) ) ] 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: [ (command.Sentence child: (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$KBUILD_BUILD_TIMESTAMP'))} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2302) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:timestamp) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 2309 ) command_list: (command.CommandList children: [ (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_Other ':')}) ] ) ] ) ) ) } spids: [2307] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-n)} {(DQ ($ Id.VSub_DollarName '$timestamp'))}) terminator: (Token id:Id.Op_Semi val:';' span_id:2337) ) ] 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: (Token id:Id.Left_DollarParen val:'$(' span_id:2357) command_list: (command.CommandList children: [ (C {(mktemp)} { (braced_var_sub token: (Token id:Id.VSub_Name val:TMPDIR span_id:2361) suffix_op: (suffix_op.Unary op_id: 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.Redir op: (Token id:Id.Redir_Great val:'>' span_id:2379) fd: -1 arg_word: {(${ Id.VSub_Name cpio_tfile)} ) ] ) ] 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: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ (${ Id.VSub_Name is_cpio_compressed))} {(Id.Lit_Equals '=')} {(DQ (compressed))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:2422) ) ] action: [ (command.Simple words: [{(cat)} {(${ Id.VSub_Name cpio_tfile)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:2433) fd: -1 arg_word: {(${ Id.VSub_Name output_file)} ) ] ) ] spids: [2405 2424] ) ] else_action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Subshell command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(cat)} {(${ Id.VSub_Name cpio_tfile)}) (command.Simple words: [{(${ Id.VSub_Name compr)} {(-)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:2458) fd: -1 arg_word: {(${ Id.VSub_Name output_file)} ) ] ) ] negated: F ) ] ) ) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {(rm)} {(-f)} {(${ Id.VSub_Name output_file)}) terminator: (Token id:Id.Op_Semi val:';' span_id:2478) ) (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:(Token id:Id.ControlFlow_Exit val:exit span_id:2507) arg_word:{(0)}) ] )