(List (Com {[LIT_CHARS set]} {[LIT_CHARS -eu]} ) (FunctionDef make_helper [] (List (= scope= flags=0 words=[] bindings=[('containing_dir', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('app_name', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('feature', {[DQ [VarSub 3]]})]) (= scope= flags=0 words=[] bindings=[('flags', {[DQ [VarSub 4]]})]) (= scope= flags=0 words=[] bindings=[('helper_name', {[DQ [VarSub app_name][LIT_CHARS " Helper"]]})]) (= scope= flags=0 words=[] bindings=[('helper_stem', {[DQ [VarSub containing_dir][LIT_CHARS /][VarSub helper_name]]})]) (= scope= flags=0 words=[] bindings=[('original_helper', {[DQ [VarSub helper_stem][LIT_CHARS .app]]})]) (If (DBracket {B! {B1 UNARY_FILE_d {[DQ [VarSub original_helper]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub 0][LIT_CHARS ": error: "][VarSub original_helper][LIT_CHARS " is a required directory"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('original_helper_exe', {[DQ [VarSub original_helper][LIT_CHARS /Contents/MacOS/][VarSub helper_name]]})]) (If (DBracket {B! {B1 UNARY_FILE_f {[DQ [VarSub original_helper_exe]]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub 0][LIT_CHARS ": error: "][VarSub original_helper_exe][LIT_CHARS " is a required file"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('feature_helper', {[DQ [VarSub helper_stem][LIT_CHARS " "][VarSub feature][LIT_CHARS .app]]})]) (Com {[LIT_CHARS rsync]} {[LIT_CHARS -acC]} {[LIT_CHARS --delete]} {[LIT_CHARS --include]} {[SQ ]} {[DQ [VarSub original_helper][LIT_CHARS /]]} {[DQ [VarSub feature_helper]]} ) (= scope= flags=0 words=[] bindings=[('helper_feature', {[DQ [VarSub helper_name][LIT_CHARS " "][VarSub feature]]})]) (= scope= flags=0 words=[] bindings=[('helper_feature_exe', {[DQ [VarSub feature_helper][LIT_CHARS /Contents/MacOS/][VarSub helper_feature]]})]) (Com {[LIT_CHARS mv]} {[DQ [VarSub feature_helper][LIT_CHARS /Contents/MacOS/][VarSub helper_name]]} {[DQ [VarSub helper_feature_exe]]} ) (= scope= flags=0 words=[] bindings=[('change_flags', {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub 0]]})][LIT_CHARS /change_mach_o_flags.py]]})]) (Com {[DQ [VarSub change_flags]]} {[VarSub flags]} {[DQ [VarSub helper_feature_exe]]} ) (= scope= flags=0 words=[] bindings=[('feature_info', {[DQ [VarSub feature_helper][LIT_CHARS /Contents/Info]]})]) (= scope= flags=0 words=[] bindings=[('feature_info_plist', {[DQ [VarSub feature_info][LIT_CHARS .plist]]})]) (Com {[LIT_CHARS defaults]} {[LIT_CHARS write]} {[DQ [VarSub feature_info]]} {[DQ [LIT_CHARS CFBundleDisplayName]]} {[DQ [VarSub helper_feature]]} ) (Com {[LIT_CHARS defaults]} {[LIT_CHARS write]} {[DQ [VarSub feature_info]]} {[DQ [LIT_CHARS CFBundleExecutable]]} {[DQ [VarSub helper_feature]]} ) (= scope= flags=0 words=[] bindings=[('cfbundleid', {[DQ [ComSub (Com {[LIT_CHARS defaults]} {[LIT_CHARS read]} {[DQ [VarSub feature_info]]} {[DQ [LIT_CHARS CFBundleIdentifier]]})]]})]) (= scope= flags=0 words=[] bindings=[('feature_cfbundleid', {[DQ [VarSub cfbundleid][LIT_CHARS .][VarSub feature]]})]) (Com {[LIT_CHARS defaults]} {[LIT_CHARS write]} {[DQ [VarSub feature_info]]} {[DQ [LIT_CHARS CFBundleIdentifier]]} {[DQ [VarSub feature_cfbundleid]]} ) (= scope= flags=0 words=[] bindings=[('cfbundlename', {[DQ [ComSub (Com {[LIT_CHARS defaults]} {[LIT_CHARS read]} {[DQ [VarSub feature_info]]} {[DQ [LIT_CHARS CFBundleName]]})]]})]) (= scope= flags=0 words=[] bindings=[('feature_cfbundlename', {[DQ [VarSub cfbundlename][LIT_CHARS " "][VarSub feature]]})]) (Com {[LIT_CHARS defaults]} {[LIT_CHARS write]} {[DQ [VarSub feature_info]]} {[DQ [LIT_CHARS CFBundleName]]} {[DQ [VarSub feature_cfbundlename]]} ) (Com {[LIT_CHARS plutil]} {[LIT_CHARS -convert]} {[LIT_CHARS xml1]} {[DQ [VarSub feature_info_plist]]} ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS a] [LIT_OTHER "+"] [LIT_CHARS r]} {[DQ [VarSub feature_info_plist]]} ) ) ) (If (DBracket {B2 BINARY_INT_NE {[VarSub #]} {[LIT_CHARS 2]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "usage: "][VarSub 0][LIT_CHARS " "]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('DIRECTORY_WITHIN_CONTENTS', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('APP_NAME', {[DQ [VarSub 2]]})]) (= scope= flags=0 words=[] bindings=[('CONTENTS_DIR', {[DQ [VarSub BUILT_PRODUCTS_DIR][LIT_CHARS /][VarSub CONTENTS_FOLDER_PATH]]})]) (= scope= flags=0 words=[] bindings=[('CONTAINING_DIR', {[DQ [VarSub CONTENTS_DIR][LIT_CHARS /][VarSub DIRECTORY_WITHIN_CONTENTS]]})]) (Com {[LIT_CHARS make_helper]} {[DQ [VarSub CONTAINING_DIR]]} {[DQ [VarSub APP_NAME]]} {[DQ [LIT_CHARS EH]]} {[DQ [LIT_CHARS --executable-heap]]} ) (Com {[LIT_CHARS make_helper]} {[DQ [VarSub CONTAINING_DIR]]} {[DQ [VarSub APP_NAME]]} {[DQ [LIT_CHARS NP]]} {[DQ [LIT_CHARS --no-pie]]} ) )