(CommandList children: [ (AndOr children:[(C {(.)} {(./build.conf)}) (C {(exit)} {(1)})] op_id:Op_DPipe) (C {(export)} {(Lit_VarLike 'LANG=') (C)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DEBUG) op:Equal rhs:{(0)} spids:[29])] spids: [29] ) (C {(rm)} {(-f)} {(./fw-) (Lit_Other '*') (.log)}) (AndOr children: [ (C {(Lit_Other '[')} {($ VSub_Name '$DEBUG')} {(-ne)} {(1)} {(-a)} {(-d)} {(zfirmware_workdir)} {(Lit_Other ']')} ) (C {(rm)} {(-r)} {(zfirmware_workdir)}) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CWD) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_Backtick '`'> spids: [69 71] ) } spids: [68] ) ] spids: [68] ) (AndOr children: [ (Pipeline children: [(C {(busybox)}) (C {(grep)} {(-qow)} {(SQ <stat>)})] negated: False ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:STAT) op: Equal rhs: {(SQ <'busybox stat'>)} spids: [89] ) ] spids: [89] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:STAT) op:Equal rhs:{(stat)} spids:[96])] spids: [96] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRC_FW_DIR) op: Equal rhs: {(SQ <../linux-firmware>)} spids: [104] ) ] spids: [104] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DEST_FW_DIR) op: Equal rhs: {(SQ <zfirmware_workdir/lib>)} spids: [109] ) ] spids: [109] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SRC_FILE_FW) op: Equal rhs: {(${ VSub_Name SRC_FW_DIR) (/WHENCE)} spids: [115] ) ] spids: [115] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dotconfig) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {(output)} {(-maxdepth)} {(1)} {(-type)} {(f)} {(-name)} {(SQ <'DOTconfig*'>)} ) (C {(head)} {(-1)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [122 146] ) } spids: [121] ) ] spids: [121] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$dotconfig'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DOTCONFIG_str) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(grep)} {(-v)} {(-E)} {(SQ <'^#|is not set$'>)} {($ VSub_Name '$dotconfig')} ) ] ) left_token: <Left_CommandSub '$('> spids: [166 178] ) } spids: [165] ) ] spids: [165] ) ] spids: [16777215 162] ) ] else_action: [ (C {(echo)} {(DQ ('WARNING: No DOTconfig file in output/'))}) (C {(echo)} {(DQ ('Put a DOTconfig file there...'))}) ] spids: [180 200] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FIRMWARE_SFS) op: Equal rhs: { (DQ (sources/fdrv_) (${ VSub_Name kernel_version) (_) (${ VSub_Name package_name_suffix) (.sfs) ) } spids: [203] ) ] spids: [203] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FIRMWARE_RESULT_DIR) op: Equal rhs: {(SQ <zfirmware_workdir/lib/firmware>)} spids: [216] ) ] spids: [216] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FIRMWARE_EXTRA_DIR) op: Equal rhs: {(SQ <zfirmware_workdir/lib/linux-firmware>)} spids: [221] ) ] spids: [221] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kernel_package) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {(output)} {(-type)} {(d)} {(-name)} {(SQ <'linux_kernel*'>)}) (C {(head)} {(-1)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [228 248] ) } spids: [227] ) ] spids: [227] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name kernel_package))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:kernel_package) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {($ VSub_Name '$CWD')} {(-type)} {(d)} {(-name)} {(SQ <'linux_kernel*'>)} ) (C {(head)} {(-1)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [273 293] ) } spids: [272] ) ] spids: [272] ) ] spids: [16777215 269] ) ] spids: [16777215 295] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dest_kernel_package) op: Equal rhs: {(${ VSub_Name kernel_package) (/lib/firmware)} spids: [311] ) ] spids: [311] ) (AndOr children: [ (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(${ VSub_Name dest_kernel_package)} {(Lit_Other ']')}) (C {(mkdir)} {(-p)} {($ VSub_Name '$dest_kernel_package')}) ] op_id: Op_DAmp ) (FuncDef name: func_git body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Name '$SRC_FW_DIR'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(cd)} {($ VSub_Name '$SRC_FW_DIR')}) (C {(echo)} {(DQ ('Updating the git firmware repo'))}) (C {(git)} {(pull)}) (AndOr children: [ (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')}) (C {(echo)} {(DQ ('Failed to update git firmware'))}) ] op_id: Op_DAmp ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 372] ) ] else_action: [ (C {(cd)} {(..)}) (C {(echo)} {(DQ ('Cloning the firmware repo may take a long time'))}) (C {(git)} {(clone)} {(git) (Lit_Other ':') (//git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git) } ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('Failed to clone the git firmware repo'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 458] ) ] spids: [16777215 473] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [422 481] ) ] spids: [357] ) spids: [353 356] ) (FuncDef name: process_driver body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:driver) op: Equal rhs: {($ VSub_Number '$1')} spids: [495] ) ] spids: [493] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: { (BracedVarSub token: <VSub_Name driver> suffix_op: (StringUnary op_id:VOp1_DCaret arg_word:{}) spids: [502 505] ) } spids: [501] ) ] spids: [499] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: { (BracedVarSub token: <VSub_Name DRIVER> suffix_op: (PatSub pat: {(-)} replace: {(_)} do_all: True do_prefix: False do_suffix: False ) spids: [509 516] ) } spids: [508] ) ] spids: [508] ) (Case to_match: {($ VSub_Name '$DRIVER')} arms: [ (case_arm pat_list: [{(RADEON)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: {(SQ <'DRM_RADEON='>)} spids: [532] ) ] spids: [532] ) ] spids: [529 530 537 16777215] ) (case_arm pat_list: [{(NOUVEAU)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: {(SQ <'DRM_NOUVEAU='>)} spids: [543] ) ] spids: [543] ) ] spids: [540 541 548 16777215] ) (case_arm pat_list: [{(AMDGPU)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: {(SQ <'DRM_AMDGPU='>)} spids: [554] ) ] spids: [554] ) ] spids: [551 552 559 16777215] ) (case_arm pat_list: [{(I915)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: {(SQ <'DRM_I915='>)} spids: [565] ) ] spids: [565] ) ] spids: [562 563 570 16777215] ) (case_arm pat_list: [{(KEYSPAN)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: {(SQ <'SERIAL_KEYSPAN='>)} spids: [576] ) ] spids: [576] ) ] spids: [573 574 580 16777215] ) (case_arm pat_list: [{(LIBERTAS)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: {(LIBERTAS_USB)} spids: [586] ) ] spids: [586] ) ] spids: [583 584 589 16777215] ) (case_arm pat_list: [{(RTL8821AE)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: {(8821AE)} spids: [594] ) ] spids: [594] ) ] spids: [592 593 597 16777215] ) (case_arm pat_list: [{(MWIFIEX)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: {(MWIFIEX_USB)} spids: [603] ) ] spids: [603] ) ] spids: [600 601 606 16777215] ) (case_arm pat_list: [{(MWLWIFI)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVER) op: Equal rhs: {(SQ <CONFIG_MAC80211>)} spids: [612] ) ] spids: [612] ) ] spids: [609 610 616 16777215] ) ] spids: [519 523 622] ) (C {(echo)} {(-n)} {(DQ ($ VSub_Name '$driver') (' '))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:D) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$DOTCONFIG_str'))}) (C {(grep)} {($ VSub_Name '$DRIVER')}) (C {(head)} {(-n1)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [636 654] ) } spids: [635] ) ] spids: [635] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$D'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [16777215 671] ) ] else_action: [ (C {(echo)} {(--)} {($ VSub_Name '$D')} {(--)}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [682 699] ) ] spids: [490] ) spids: [486 489] ) (FuncDef name: get_func body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: {(${ VSub_Number 1)} spids: [713] ) ] spids: [711] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:source_path) op: Equal rhs: {(${ VSub_Name SRC_FW_DIR) (/) (${ VSub_Name file)} spids: [721] ) ] spids: [719] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:target_dir) op: Equal rhs: {(${ VSub_Name CWD) (/) (${ VSub_Name FIRMWARE_EXTRA_DIR) (/) (${ VSub_Name file)} spids: [733] ) ] spids: [731] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:target_dir) op: Equal rhs: { (BracedVarSub token: <VSub_Name target_dir> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')}) spids: [748 753] ) } spids: [747] ) ] spids: [747] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name target_dir))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(mkdir)} {(-p)} {(${ VSub_Name target_dir)})] spids: [16777215 777] ) ] spids: [16777215 792] ) (SimpleCommand words: [{(cp)} {(-d)} {(${ VSub_Name source_path)} {(${ VSub_Name target_dir)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[807])] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} { (DQ ($ VSub_Name '$file') (' \t') (CommandSubPart command_list: (CommandList children: [ (C {($ VSub_Name '$STAT')} {(-c)} {(Lit_Other '%') (s)} {($ VSub_Name '$SRC_FW_DIR') (/) ($ VSub_Name '$file')} ) ] ) left_token: <Left_Backtick '`'> spids: [831 842] ) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(fw-1.log)} spids: [845] ) ] ) ] spids: [16777215 823] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(DQ ('FAILURE: ') ($ VSub_Name '$file'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(fw-1.log)} spids: [860] ) ] ) ] spids: [850 865] ) ] spids: [708] ) spids: [704 707] ) (FuncDef name: extract_firmware body: (BraceGroup children: [ (Subshell child: (While cond: [ (Sentence child: (C {(read)} {(-r)} {(field)} {(value)} {(etc)}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Case to_match: {($ VSub_Name '$field')} arms: [ (case_arm pat_list: [{(DQ ('Driver:'))}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:driver) op: Equal rhs: {($ VSub_Name '$value')} spids: [909] ) ] spids: [909] ) (AndOr children: [ (C {(process_driver)} {($ VSub_Name '$driver')}) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DPipe ) (SimpleCommand words: [{(echo)} {(-n)} {(DQ ($ VSub_Name '$driver') (' '))}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [935] ) ] ) (While cond: [ (Sentence child: (C {(Lit_Other '[')} {(1)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (C {(read)} {(-r)} {(field)} {(value)} {(etc)}) (Case to_match: {($ VSub_Name '$field')} arms: [ (case_arm pat_list: [{(DQ ('File:'))}] action: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: {($ VSub_Name '$value')} spids: [975] ) ] spids: [975] ) terminator: <Op_Semi ';'> ) (C {(get_func)} {($ VSub_Name '$file')}) ] spids: [971 973 984 16777215] ) (case_arm pat_list: [{(DQ ('License:'))} {(DQ ('Licence:'))}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [988 994 998 16777215] ) ] spids: [963 967 1001] ) ] spids: [949 1004] ) ) ] spids: [904 906 16777215 1007] ) ] spids: [897 901 1007] ) ] spids: [894 1010] ) redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(${ VSub_Name SRC_FILE_FW)} spids: [1012] ) ] ) redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(fw-2.log)} spids:[1021])] spids: [877 1019] ) ] spids: [874] ) spids: [870 873] ) (FuncDef name: fw_filter body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:list) op: Equal rhs: {($ VSub_Number '$1')} spids: [1034] ) ] spids: [1034] ) (AndOr children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:B) op: Equal rhs: {(10000000)} spids: [1050] ) ] spids: [1050] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:B) op: Equal rhs: {($ VSub_Number '$2')} spids: [1055] ) ] spids: [1055] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(Lit_Other '[')} {($ VSub_Name '$B')} {(-eq)} {(0)} {(Lit_Other ']')}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:B) op:Equal rhs:{(10000000)} spids:[1074])] spids: [1074] ) ] op_id: Op_DAmp ) (C {(echo)} {(DQ ('Filtering with ') ($ VSub_Name '$list'))}) (Subshell child: (CommandList children: [ (Sentence child:(C {(echo)}) terminator:<Op_Semi ';'>) (Sentence child:(C {(echo)}) terminator:<Op_Semi ';'>) (C {(echo)} {(DQ ('Filtering with ') ($ VSub_Name '$list'))}) (C {(echo)} {(SQ <'FILTERED FIRMWARE LIST IN ZDRV'>)}) (C {(echo)} {(SQ <'=============================='>)}) (C {(mkdir)} {(-p)} {(${ VSub_Name FIRMWARE_RESULT_DIR)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:filelist) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {(${ VSub_Name FIRMWARE_EXTRA_DIR)}) (C {(sed)} { (DQ ('s%') (${ VSub_Name FIRMWARE_EXTRA_DIR) (Lit_Other '\\') ('/%%') ) } ) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [1129 1148] ) } spids: [1128] ) ] spids: [1128] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:filelist2) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {(${ VSub_Name SRC_FW_DIR)}) (C {(sed)} {(-e)} { (DQ ('s%') (${ VSub_Name SRC_FW_DIR) (Lit_Other '\\') ('/%%') ) } {(-e)} {(SQ <'s|\\.git/||'>)} ) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [1155 1182] ) } spids: [1154] ) ] spids: [1154] ) (While cond: [(Sentence child:(C {(read)} {(line)}) terminator:<Op_Semi ';'>)] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: { (BracedVarSub token: <VSub_Name line> suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [1203 1208] ) } spids: [1202] ) ] spids: [1202] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file2) op: Equal rhs: {(${ VSub_Name line)} spids: [1211] ) ] spids: [1211] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:action) op: Equal rhs: {(mv)} spids: [1217] ) ] spids: [1217] ) (SimpleCommand words: [{(echo)} {(-n)} {(DQ ($ VSub_Name '$file') (' '))}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [1233] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$filelist'))}) (C {(grep)} {(DQ ('^') (${ VSub_Name file2) (Lit_Other '$'))} ) (C {(head)} {(-n1)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [1238 1262] ) } spids: [1237] ) ] spids: [1237] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$file_path'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$filelist'))}) (C {(grep)} { (DQ (Lit_Other '\\') (/) (${ VSub_Name file) (Lit_Other '$') ) } ) (C {(head)} {(-n1)}) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [1283 1308] ) } spids: [1282] ) ] spids: [1282] ) (AndOr children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$file_path'))} {(Lit_Other ']')} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) ] spids: [16777215 1279] ) ] spids: [16777215 1326] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source_path) op: Equal rhs: {(${ VSub_Name FIRMWARE_EXTRA_DIR) (/) (${ VSub_Name file_path)} spids: [1329] ) ] spids: [1329] ) (AndOr children: [ (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name source_path)} {(-o)} {(-h)} {(${ VSub_Name source_path)} {(Lit_Other ']')} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:target_dir) op: Equal rhs: {(${ VSub_Name FIRMWARE_RESULT_DIR) (/) (${ VSub_Name file_path)} spids: [1362] ) ] spids: [1362] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:target_dir) op: Equal rhs: { (BracedVarSub token: <VSub_Name target_dir> suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [1373 1378] ) } spids: [1372] ) ] spids: [1372] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name target_dir))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(mkdir)} {(-p)} {(${ VSub_Name target_dir)})] spids: [16777215 1402] ) ] spids: [16777215 1417] ) (AndOr children: [ (C {(Lit_Other '[')} {(-h)} {(DQ (${ VSub_Name source_path))} {(-a)} {(-e)} {(DQ (${ VSub_Name source_path))} {(Lit_Other ']')} ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SSIZE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {($ VSub_Name '$STAT')} {(-L)} {(-c)} {(Lit_Other '%') (s)} {(${ VSub_Name source_path)} ) ] ) left_token: <Left_Backtick '`'> spids: [1449 1462] ) } spids: [1448] ) ] spids: [1448] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SSIZE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(stat)} {(-c)} {(Lit_Other '%') (s)} {(${ VSub_Name source_path)} ) ] ) left_token: <Left_Backtick '`'> spids: [1467 1478] ) } spids: [1466] ) ] spids: [1466] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$SSIZE'))} {(Lit_Other ']')} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(Lit_Other '[')} {($ VSub_Name '$SSIZE')} {(-gt)} {(DQ ($ VSub_Name '$B'))} {(Lit_Other ']')} ) (ControlFlow token: <ControlFlow_Continue continue> ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: {(0)} spids: [1523] ) ] spids: [1523] ) (AndOr children: [ (C {(Lit_Other '[')} {(-h)} {(DQ (${ VSub_Name source_path))} {(Lit_Other ']')} ) (C {(${ VSub_Name action)} {(-f)} {(${ VSub_Name source_path)} {(${ VSub_Name target_dir) (/)} ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1560] ) ] spids: [1560] ) (AndOr children: [ (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name source_path))} {(Lit_Other ']')} ) (C {(${ VSub_Name action)} {(-f)} {(${ VSub_Name source_path)} {(${ VSub_Name target_dir) (/)} ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$ret')}) right: (ArithWord w:{($ VSub_QMark '$?')}) ) spids: [1595 1602] ) } spids: [1594] ) ] spids: [1594] ) (AndOr children: [ (C {(Lit_Other '[')} {($ VSub_Name '$ret')} {(-le)} {(1)} {(Lit_Other ']')} ) (AndOr children: [ (C {(echo)} {(DQ (${ VSub_Name file) (' SUCCESS'))}) (C {(echo)} {(DQ (${ VSub_Name file) (' FAIL'))}) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] spids: [1199 1638] ) redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {($ VSub_Name '$list')} spids: [1640] ) ] ) ] ) redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(fw-2.log)} spids:[1647])] spids: [1086 1645] ) ] spids: [1031] ) spids: [1028 1031] ) (FuncDef name: licence_func body: (BraceGroup children: [ (C {(echo)} {(DQ ('Extracting licences'))}) (C {(mkdir)} {(-p)} {(${ VSub_Name FIRMWARE_RESULT_DIR) (/licences)}) (C {(find)} {(${ VSub_Name SRC_FW_DIR)} {(-type)} {(f)} {(-iname)} {(SQ <'licen?e*'>)} {(-exec)} {(cp)} {(SQ <'{}'>)} {(${ VSub_Name FIRMWARE_RESULT_DIR) (/licences)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\;'>)} ) ] spids: [1659] ) spids: [1654 1658] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$GIT_ALREADY_DOWNLOADED'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (AndOr children: [ (C {(func_git)}) (BraceGroup children: [ (Sentence child: (C {(echo)} {(DQ (ERROR))}) terminator: <Op_Semi ';'> ) (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ';'>) ] spids: [1752] ) ] op_id: Op_DPipe ) ] spids: [16777215 1745] ) ] spids: [16777215 1770] ) (C {(cd)} {(${ VSub_Name CWD)}) (AndOr children: [ (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Name '$DEST_FW_DIR'))} {(Lit_Other ']')}) (C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$DEST_FW_DIR'))}) ] op_id: Op_DAmp ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$DEST_FW_DIR'))}) (AndOr children: [ (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name FIRMWARE_SFS))} {(Lit_Other ']')}) (C {(rm)} {(-f)} {(${ VSub_Name FIRMWARE_SFS)}) ] op_id: Op_DAmp ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FW_FLAG) op: Equal rhs: {($ VSub_Number '$1')} spids: [1834] ) ] spids: [1834] ) terminator: <Op_Semi ';'> ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$FW_FLAG'))} {(-a)} {(-z)} {(DQ ($ VSub_Name '$CUTBYTES'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (C {(echo)} {(-n)} { (DQ ('\n') ('Cut down firmware?\n') ('1. Cut down according to firmware.lst [default]\n') ('2. Cut down according to built modules (needs work)\n') ("3. Don't cut down\n") ('\n') ('Choose option: ') ) } ) terminator: <Op_Semi ';'> ) (C {(read)} {(cdf)}) (Case to_match: {($ VSub_Name '$cdf')} arms: [ (case_arm pat_list: [{(2)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FW_FLAG) op: Equal rhs: {(DQ (big))} spids: [1894] ) ] spids: [1894] ) ] spids: [1891 1892 1899 16777215] ) (case_arm pat_list: [{(3)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FW_FLAG) op: Equal rhs: {(DQ (complete))} spids: [1905] ) ] spids: [1905] ) ] spids: [1902 1903 1910 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FW_FLAG) op: Equal rhs: {(DQ )} spids: [1916] ) ] spids: [1916] ) ] spids: [1913 1914 1920 16777215] ) ] spids: [1884 1888 1923] ) ] spids: [16777215 1860] ) ] spids: [16777215 1925] ) (Case to_match: {($ VSub_Name '$FW_FLAG')} arms: [ (case_arm pat_list: [{(complete)}] action: [ (C {(mkdir)} {(-p)} {(${ VSub_Name FIRMWARE_RESULT_DIR)}) (C {(echo)} {(DQ ('Copy all firmware'))}) (C {(cp)} {(-an)} {(${ VSub_Name SRC_FW_DIR) (/) (Lit_Other '*')} {(${ VSub_Name FIRMWARE_RESULT_DIR) (/)} ) (C {(rm)} {(-rf)} {(${ VSub_Name FIRMWARE_RESULT_DIR) (/.git)} {(${ VSub_Name FIRMWARE_RESULT_DIR) (/LICEN) (Lit_Other '*')} ) (C {(licence_func)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name dest_kernel_package))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(cp)} {(-an)} {(${ VSub_Name FIRMWARE_RESULT_DIR) (/) (Lit_Other '*')} {(${ VSub_Name dest_kernel_package) (/)} ) (C {(rm)} {(-r)} {(${ VSub_Name FIRMWARE_RESULT_DIR)}) ] spids: [16777215 2006] ) ] else_action: [ (C {(mksquashfs)} {(zfirmware_workdir)} { (BracedVarSub token: <VSub_Name FIRMWARE_SFS> suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)}) spids: [2041 2046] ) } {(-comp)} {(xz)} ) (SimpleCommand words: [ {(md5sum)} { (BracedVarSub token: <VSub_Name FIRMWARE_SFS> suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)}) spids: [2055 2060] ) } ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: { (BracedVarSub token: <VSub_Name FIRMWARE_SFS> suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*') (Lit_Slash /)}) spids: [2064 2069] ) (.md5.txt) } spids: [2062] ) ] ) ] spids: [2034 2073] ) ] spids: [1935 1936 2076 16777215] ) (case_arm pat_list: [{(big)}] action: [ (C {(echo)} {(DQ ('Extracting firmware'))}) (C {(extract_firmware)}) (C {(echo)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:echo) op: Equal rhs: {(DQ ('Not filtering'))} spids: [2103] ) ] spids: [2103] ) (C {(mv)} {(${ VSub_Name FIRMWARE_EXTRA_DIR)} {(${ VSub_Name FIRMWARE_RESULT_DIR)}) (C {(licence_func)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name dest_kernel_package))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(cp)} {(-n)} {(-r)} {(${ VSub_Name FIRMWARE_RESULT_DIR) (/) (Lit_Other '*')} {(${ VSub_Name dest_kernel_package) (/)} ) ] spids: [16777215 2139] ) ] spids: [16777215 2160] ) ] spids: [2079 2080 2163 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Pipeline children: [ (C {(grep)} {(SQ <'^File'>)} {($ VSub_Name '$SRC_FILE_FW')}) (C {(grep)} {(-oE)} {(SQ <'\\: [a-zA-Z].*|\\: L.*|\\: [0-9].*'>)}) (C {(sed)} {(SQ <'s/^\\: //'>)}) (SimpleCommand words: [{(grep)} {(-vE)} {(SQ <'liquidio|cxgb[34]|phanfw.bin'>)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(firmware.lst)} spids: [2209] ) ] ) ] negated: False ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$CUTBYTES'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (C {(echo)} {(-n)} { (DQ ('\n') ('Cut down firmware more?\n') ( '1. Cut down with some big, mostly obscure firmware removed (default)\n' ) ('2. Cut down eliminating fw bigger than 1.5MB - usually safe\n') ( '3. Cut down eliminating fw bigger than 1MB - may cut wifi support\n' ) ('4. Cut down eliminating fw bigger than 500KB - use at own risk\n') ('5. Cut down eliminating fw bigger than 250KB - are you insane?\n') ('\n') ('Choose option: ') ) } ) terminator: <Op_Semi ';'> ) (C {(read)} {(cdfplus)}) (Case to_match: {($ VSub_Name '$cdfplus')} arms: [ (case_arm pat_list: [{(2)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CUTBYTES) op: Equal rhs: {(1500000)} spids: [2266] ) ] spids: [2266] ) ] spids: [2263 2264 2269 16777215] ) (case_arm pat_list: [{(3)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CUTBYTES) op: Equal rhs: {(1000000)} spids: [2275] ) ] spids: [2275] ) ] spids: [2272 2273 2278 16777215] ) (case_arm pat_list: [{(4)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CUTBYTES) op: Equal rhs: {(500000)} spids: [2284] ) ] spids: [2284] ) ] spids: [2281 2282 2287 16777215] ) (case_arm pat_list: [{(5)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CUTBYTES) op: Equal rhs: {(250000)} spids: [2293] ) ] spids: [2293] ) ] spids: [2290 2291 2296 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CUTBYTES) op: Equal rhs: {(0)} spids: [2302] ) ] spids: [2302] ) ] spids: [2299 2300 2305 16777215] ) ] spids: [2256 2260 2308] ) ] spids: [16777215 2230] ) ] spids: [16777215 2311] ) (C {(echo)} {(DQ ('Extracting firmware'))}) (C {(extract_firmware)}) (C {(echo)}) (C {(fw_filter)} {(firmware.lst)} {($ VSub_Name '$CUTBYTES')}) (C {(find)} {(${ VSub_Name FIRMWARE_EXTRA_DIR)} {(-type)} {(d)} {(-empty)} {(-delete)}) (C {(licence_func)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name dest_kernel_package))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(cp)} {(-n)} {(-r)} {(${ VSub_Name FIRMWARE_RESULT_DIR) (/) (Lit_Other '*')} {(${ VSub_Name dest_kernel_package) (/)} ) ] spids: [16777215 2375] ) ] spids: [16777215 2396] ) (C {(rm)} {(-r)} {(${ VSub_Name FIRMWARE_RESULT_DIR)}) (C {(mv)} {(${ VSub_Name FIRMWARE_EXTRA_DIR)} {(${ VSub_Name FIRMWARE_RESULT_DIR)}) (C {(mksquashfs)} {(zfirmware_workdir)} {(${ VSub_Name FIRMWARE_SFS)} {(-comp)} {(xz)}) (SimpleCommand words: [{(md5sum)} {(${ VSub_Name FIRMWARE_SFS)}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(${ VSub_Name FIRMWARE_SFS) (.md5.txt)} spids: [2442] ) ] ) ] spids: [2166 2167 2450 16777215] ) ] spids: [1928 1932 2452] ) (Sentence child: (Subshell child: (CommandList children: [ (C {(echo)} {(SQ <'================'>)}) (C {(echo)} {(DQ ('FIRMWARE IN FDRV'))}) (C {(echo)} {(SQ <'================'>)}) (C {(cat)} {(fw-1.log)}) (C {(echo)} {(SQ <'=============================='>)}) (AndOr children: [ (C {(Lit_Other '[')} {(-f)} {(${ VSub_Name list) (.log)} {(Lit_Other ']')}) (AndOr children: [ (C {(cat)} {(${ VSub_Name list) (.log)}) (C {(rm)} {(${ VSub_Name list) (.log)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] ) spids: [2455 2520] ) terminator: <Op_Amp '&'> ) (SimpleCommand redirects: [(Redir op_id:Redir_DGreat fd:16777215 arg_word:{(build.log)} spids:[2523])] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$DEBUG')} {(-ne)} {(1)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-f)} {(fw-) (Lit_Other '*') (.log)}) (C {(rm)} {(-rf)} {(zfirmware_workdir)}) ] spids: [16777215 2545] ) ] spids: [16777215 2563] ) (C {(echo)} {(DQ ('Firmware script complete.'))}) ] )