(List (= scope= flags=0 words=[] bindings=[('OPTIONS_KEEPDASHDASH', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('OPTIONS_STUCKLONG', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('OPTIONS_SPEC', {[DQ [LIT_CHARS "git quiltimport [options]\n"][LIT_CHARS "--\n"][LIT_CHARS "n,dry-run dry run\n"][LIT_CHARS "author= author name and email address for patches without any\n"][LIT_CHARS "patches= path to the quilt patches\n"][LIT_CHARS "series= path to the quilt series file\n"]]})]) (= scope= flags=0 words=[] bindings=[('SUBDIRECTORY_ON', {[LIT_CHARS Yes]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS git-sh-setup]}) (= scope= flags=0 words=[] bindings=[('dry_run', {[DQ ]})]) (= scope= flags=0 words=[] bindings=[('quilt_author', {[DQ ]})]) (While (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[LIT_CHARS 0]}) (List (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS --author]}], [{[LIT_CHARS -n]}, {[LIT_CHARS --dry-run]}], [{[LIT_CHARS --patches]}], [{[LIT_CHARS --series]}], [{[LIT_CHARS --]}], [{[LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('quilt_author', {[DQ [VarSub 1]]})]) ) (= scope= flags=0 words=[] bindings=[('dry_run', {[LIT_CHARS 1]})]) (List (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('QUILT_PATCHES', {[DQ [VarSub 1]]})]) ) (List (Com {[LIT_CHARS shift]}) (= scope= flags=0 words=[] bindings=[('QUILT_SERIES', {[DQ [VarSub 1]]})]) ) (List (Com {[LIT_CHARS shift]}) (Com {[LIT_CHARS break]}) ) (Com {[LIT_CHARS usage]}) ) (Com {[LIT_CHARS shift]}) ) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub quilt_author]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('quilt_author_name', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub quilt_author]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('quilt_author_email', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub quilt_author]]} {[LIT_OTHER ":"]} {[SQ ]*\\)">]})]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub quilt_author_name]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub quilt_author_email]]}) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "malformed --author parameter"]]}) ) ) ) ) ) (Com {[LIT_OTHER ":"]} {[VarSub QUILT_PATCHES test_op=VS_TEST_COLON_EQUALS {[LIT_CHARS patches]}]}) (If (Pipeline! (Com {[LIT_OTHER "["]} {[LIT_CHARS -d]} {[DQ [VarSub QUILT_PATCHES]]} {[LIT_OTHER "]"]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "The "][\ LIT_ESCAPED_CHAR "\\\""][VarSub QUILT_PATCHES][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " directory does not exist."]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_OTHER ":"]} {[VarSub QUILT_SERIES test_op=VS_TEST_COLON_EQUALS {[VarSub QUILT_PATCHES] [LIT_SLASH /] [LIT_CHARS series]}]}) (If (Pipeline! (Com {[LIT_OTHER "["]} {[LIT_CHARS -e]} {[DQ [VarSub QUILT_SERIES]]} {[LIT_OTHER "]"]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "The "][\ LIT_ESCAPED_CHAR "\\\""][VarSub QUILT_SERIES][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " file does not exist."]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('tmp_dir', {[DQ [VarSub GIT_DIR]] [LIT_CHARS /rebase-apply]})]) (= scope= flags=0 words=[] bindings=[('tmp_msg', {[DQ [VarSub tmp_dir][LIT_CHARS /msg]]})]) (= scope= flags=0 words=[] bindings=[('tmp_patch', {[DQ [VarSub tmp_dir][LIT_CHARS /patch]]})]) (= scope= flags=0 words=[] bindings=[('tmp_info', {[DQ [VarSub tmp_dir][LIT_CHARS /info]]})]) (= scope= flags=0 words=[] bindings=[('commit', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]})]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS mkdir]} {[VarSub tmp_dir]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]}) ) (While (Com {[LIT_CHARS read]} {[LIT_CHARS patch_name]} {[LIT_CHARS level]} {[LIT_CHARS garbage]} < (DescriptorRedirectNode target={[LIT_CHARS 3]} 0), > ) (List (Case to_match={[DQ [VarSub patch_name]]}, pat_word_list=[[{[SQ ]}, {[SQ ] [LIT_OTHER "*"]}]] (Com {[LIT_CHARS continue]}) ) (Case to_match={[DQ [VarSub level]]}, pat_word_list=[[{[LIT_CHARS -p] [LIT_OTHER "*"]}], [{[SQ ]}, {[SQ ] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (= scope= flags=0 words=[] bindings=[('level', {[SQ ]})]) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "unable to parse patch level, ignoring it."]]}) (= scope= flags=0 words=[] bindings=[('level', {[SQ ]})]) ) ) (Case to_match={[DQ [VarSub garbage]]}, pat_word_list=[[{[SQ ]}, {[SQ ] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "trailing garbage found in series file: "][VarSub garbage]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (If (Pipeline! (Com {[LIT_OTHER "["]} {[LIT_CHARS -f]} {[DQ [VarSub QUILT_PATCHES][LIT_CHARS /][VarSub patch_name]]} {[LIT_OTHER "]"]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub patch_name][LIT_CHARS " doesn't exist. Skipping."]]}) (Com {[LIT_CHARS continue]}) ) ) (Com {[LIT_CHARS echo]} {[VarSub patch_name]}) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS mailinfo]} {[DQ [VarSub tmp_msg]]} {[DQ [VarSub tmp_patch]]} < (FilenameRedirectNode filename={[DQ [VarSub QUILT_PATCHES][LIT_CHARS /][VarSub patch_name]]} 0), (FilenameRedirectNode filename={[DQ [VarSub tmp_info]]} "> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 3]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -s]} {[DQ [VarSub tmp_patch]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Patch is empty. Was it split wrong?"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_NAME', {[ComSub (Com {[LIT_CHARS sed]} {[LIT_CHARS -ne]} {[SQ ]} {[DQ [VarSub tmp_info]]})]})]) (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_EMAIL', {[ComSub (Com {[LIT_CHARS sed]} {[LIT_CHARS -ne]} {[SQ ]} {[DQ [VarSub tmp_info]]})]})]) (= scope= flags=1 words=[{[LIT_CHARS GIT_AUTHOR_NAME]}, {[LIT_CHARS GIT_AUTHOR_EMAIL]}] bindings=[]) (While (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub GIT_AUTHOR_EMAIL]]}) (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub GIT_AUTHOR_NAME]]}) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub quilt_author]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_NAME', {[DQ [VarSub quilt_author_name]]})]) (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_EMAIL', {[DQ [VarSub quilt_author_email]]})]) ) (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub dry_run]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "No author found in "][VarSub patch_name]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_NAME', {[DQ [LIT_CHARS dry-run-not-found]]})]) (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_EMAIL', {[DQ [LIT_CHARS dry-run-not-found]]})]) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "No author found in "][VarSub patch_name]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS ---]]}) (Com {[LIT_CHARS cat]} {[VarSub tmp_msg]}) (Com {[LIT_CHARS printf]} {[DQ [LIT_CHARS "Author: "]]}) (Com {[LIT_CHARS read]} {[LIT_CHARS patch_author]}) (Com {[LIT_CHARS echo]} {[DQ [VarSub patch_author]]}) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('patch_author_name', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub patch_author]]} {[LIT_OTHER ":"]} {[SQ ]})]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('patch_author_email', {[ComSub (Com {[LIT_CHARS expr]} {[DQ [LIT_CHARS z][VarSub patch_author]]} {[LIT_OTHER ":"]} {[SQ ]*\\)">]})]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub patch_author_name]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub patch_author_email]]}) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_NAME', {[DQ [VarSub patch_author_name]]})]) (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_EMAIL', {[DQ [VarSub patch_author_email]]})]) ) ) ) ) ) ) ) ) (= scope= flags=0 words=[] bindings=[('GIT_AUTHOR_DATE', {[ComSub (Com {[LIT_CHARS sed]} {[LIT_CHARS -ne]} {[SQ ]} {[DQ [VarSub tmp_info]]})]})]) (= scope= flags=0 words=[] bindings=[('SUBJECT', {[ComSub (Com {[LIT_CHARS sed]} {[LIT_CHARS -ne]} {[SQ ]} {[DQ [VarSub tmp_info]]})]})]) (= scope= flags=1 words=[{[LIT_CHARS GIT_AUTHOR_DATE]}, {[LIT_CHARS SUBJECT]}] bindings=[]) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub SUBJECT]]} {[LIT_OTHER "]"]}) (= scope= flags=0 words=[] bindings=[('SUBJECT', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub patch_name]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]}) )]})]) ) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub dry_run]]} {[LIT_OTHER "]"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS apply]} {[LIT_CHARS --index]} {[LIT_CHARS -C1]} {[VarSub level test_op=VS_TEST_COLON_PLUS {[DQ [VarSub level]]}]} {[DQ [VarSub tmp_patch]]}) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('tree', {[ComSub (Com {[LIT_CHARS git]} {[LIT_CHARS write-tree]})]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('commit', {[ComSub (Pipeline (Subshell (List (Com {[LIT_CHARS echo]} {[DQ [VarSub SUBJECT]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS cat]} {[DQ [VarSub tmp_msg]]}) ) ) (Com {[LIT_CHARS git]} {[LIT_CHARS commit-tree]} {[VarSub tree]} {[LIT_CHARS -p]} {[VarSub commit]}) )]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS update-ref]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "quiltimport: "][VarSub patch_name]]} {[LIT_CHARS HEAD]} {[VarSub commit]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 4]}) ) ) ) ) ) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub tmp_dir]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 5]}) ) )