(List (= scope= flags=0 words=[] bindings=[('OPTIONS_KEEPDASHDASH', {[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 series and patches\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_NEQUAL "!="]} {[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 --]}], [{[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]} ) (Com {[LIT_CHARS break]} ) ) (Com {[LIT_CHARS usage]} ) ) (Com {[LIT_CHARS shift]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub quilt_author]]} {[LIT_DBRACKET_LIKE "]"]} ) (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_NEQUAL "!="]} {[DQ [VarSub quilt_author_name]]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_NEQUAL "!="]} {[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_DBRACKET_LIKE "["]} {[LIT_CHARS -d]} {[DQ [VarSub QUILT_PATCHES]]} {[LIT_DBRACKET_LIKE "]"]} ) ) (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]} ) ) ) (= 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_DBRACKET_LIKE "["]} {[LIT_CHARS -f]} {[DQ [VarSub QUILT_PATCHES][LIT_CHARS /][VarSub patch_name]]} {[LIT_DBRACKET_LIKE "]"]} ) ) (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_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub quilt_author]]} {[LIT_DBRACKET_LIKE "]"]} ) (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_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub dry_run]]} {[LIT_DBRACKET_LIKE "]"]} ) (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_NEQUAL "!="]} {[DQ [VarSub patch_author_name]]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[SQ ]} {[LIT_NEQUAL "!="]} {[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_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub SUBJECT]]} {[LIT_DBRACKET_LIKE "]"]} ) (= 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_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub dry_run]]} {[LIT_DBRACKET_LIKE "]"]} ) (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]} ) ) )