(List (= scope= flags=0 words=[] bindings=[('mirror_base_address', {[DQ [LIT_CHARS "https://storage.googleapis.com/nativeclient-mirror/toolchain"]]})]) (If (DParen {A2 AS_OP_DPIPE {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub #]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}} {A2 AS_OP_GREAT {A Atom NODE_ARITH_WORD {[VarSub #]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}}}}) (List (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='END' do_expansion=True body_word={[DQ [LIT_CHARS "Usage:\n"][LIT_CHARS " "][VarSub 0][LIT_CHARS " [SRC-directory name]\n"][LIT_CHARS "\n"][LIT_CHARS "This script downloads pristine sources and applies patches found on\n"][LIT_CHARS "https://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r/\n"][LIT_CHARS "By default sources are put in SRC directory (which should be empty).\n"]]} 0), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('dir', {[DQ [ComSub (Com {[LIT_CHARS realpath]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub 0]]})]]})]]})]) (If (DParen {A2 AS_OP_DEQUAL {A Atom NODE_ARITH_WORD {[VarSub #]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}}}) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub 2 transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}]]]} {[DQ [LIT_CHARS /]]}}) (= scope= flags=0 words=[] bindings=[('target', {[DQ [VarSub 2]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('target', {[DQ [VarSub dir][LIT_CHARS /][VarSub 2]]})]) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('target', {[DQ [VarSub dir][LIT_CHARS /SRC]]})]) ) (If (AndOr OP_AND_IF (DBracket {B1 UNARY_FILE_e {[DQ [VarSub target]]}}) (DParen {A2 AS_OP_GREAT {A Atom NODE_ARITH_WORD {[ComSub (Pipeline (Com {[LIT_CHARS find]} {[DQ [VarSub target]]} {[LIT_CHARS -maxdepth]} {[LIT_CHARS 1]} {[LIT_OTHER "!"]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS ".*"]]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}) ) (List (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='END' do_expansion=True body_word={[DQ [VarSub target][LIT_CHARS " already exist and it's not empty. Not overwriting.\n"]]} 0), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]}) ) ) (= scope= flags=0 words=[] bindings=[('tar', {[ComSub (AndOr OP_OR_IF (Com {[LIT_CHARS which]} {[LIT_CHARS gnutar]}) (Com {[LIT_CHARS which]} {[LIT_CHARS tar]}) )]})]) (= scope= flags=0 words=[] bindings=[('uncompress', {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS xz]})]})]) (= scope= flags=0 words=[] bindings=[('suffix', {[LIT_CHARS xz]})]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub uncompress]]} {[DQ ]}}) (List (= scope= flags=0 words=[] bindings=[('uncompress', {[LIT_CHARS bzip2]})]) (= scope= flags=0 words=[] bindings=[('suffix', {[LIT_CHARS bz2]})]) ) ) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS wget]})]]} {[DQ ]}}) (FunctionDef wget [] (If (DParen {A2 AS_OP_DEQUAL {A Atom NODE_ARITH_WORD {[VarSub #]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}) (Com {[LIT_CHARS curl]} {[DQ [VarSub 1]]} {[LIT_CHARS -o]} {[DQ [ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub 1]]})]]}) (ElseTrue) (Com {[LIT_CHARS curl]} {[DQ [VarSub 1]]}) ) ) ) (Com {[LIT_CHARS set]} {[LIT_CHARS -e]}) (Com {[LIT_CHARS set]} {[LIT_CHARS -u]}) (Com {[LIT_CHARS set]} {[LIT_CHARS -x]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [VarSub target]]}) (Subshell (List (Com {[LIT_CHARS flock]} {[LIT_CHARS -x]} {[LIT_CHARS 3]}) (If (DParen {A2 AS_OP_LE {A Atom NODE_ARITH_WORD {[ComSub (Pipeline (Com {[LIT_CHARS find]} {[DQ [VarSub target]]} {[LIT_CHARS -maxdepth]} {[LIT_CHARS 1]} {[LIT_OTHER "!"]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS ".*"]]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}) (List (Pipeline (Com {[LIT_CHARS wget]} {[DQ [LIT_CHARS "https://gsdview.appspot.com/nativeclient-archive2/x86_toolchain/r"][VarSub 1][LIT_CHARS /]]} {[LIT_CHARS -O-]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS patch.] [VarSub suffix]}) (While (Com {[LIT_CHARS read]} {[LIT_CHARS -r]} {[LIT_CHARS -d]} {[SQ ]} {[LIT_CHARS prefix]} {[LIT_CHARS patchname]} {[LIT_CHARS suffix]} more_env=[('IFS', {[SQ ]})] ) (List (= scope= flags=0 words=[] bindings=[('basename', {[DQ [ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub patchname]]})]]})]) (= scope= flags=0 words=[] bindings=[('version', {[DQ [VarSub basename transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*-"]}]]]})]) (= scope= flags=0 words=[] bindings=[('version', {[DQ [VarSub version transform_ops=[VS_UNARY_PERCENT {[LIT_CHARS "-*"]}]]]})]) (Com {[LIT_CHARS cd]} {[DQ [VarSub target]]}) (Case to_match={[DQ [VarSub basename]]}, pat_word_list=[[{[LIT_OTHER "*"] [LIT_CHARS binutils] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"] [LIT_CHARS gcc] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"] [LIT_CHARS glibc] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"] [LIT_CHARS newlib] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (List (Com {[LIT_CHARS wget]} {[DQ [VarSub mirror_base_address][LIT_CHARS /binutils/binutils-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[DQ [VarSub tar]]} {[LIT_CHARS xjSvpf]} {[DQ [LIT_CHARS binutils-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[LIT_CHARS mv]} {[DQ [LIT_CHARS binutils-][VarSub version]]} {[DQ [LIT_CHARS binutils]]}) (Com {[LIT_CHARS cd]} {[DQ [LIT_CHARS binutils]]}) ) (List (Com {[LIT_CHARS wget]} {[DQ [VarSub mirror_base_address][LIT_CHARS /gcc/gcc-][VarSub version][LIT_CHARS /gcc-core-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[DQ [VarSub tar]]} {[LIT_CHARS xjSvpf]} {[DQ [LIT_CHARS gcc-core-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[LIT_CHARS wget]} {[DQ [VarSub mirror_base_address][LIT_CHARS /gcc/gcc-][VarSub version][LIT_CHARS /gcc-fortran-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[DQ [VarSub tar]]} {[LIT_CHARS xjSvpf]} {[DQ [LIT_CHARS gcc-fortran-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[LIT_CHARS wget]} {[DQ [VarSub mirror_base_address][LIT_CHARS /gcc/gcc-][VarSub version][LIT_CHARS "/gcc-g++-"][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[DQ [VarSub tar]]} {[LIT_CHARS xjSvpf]} {[DQ [LIT_CHARS "gcc-g++-"][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[LIT_CHARS wget]} {[DQ [VarSub mirror_base_address][LIT_CHARS /gcc/gcc-][VarSub version][LIT_CHARS /gcc-objc-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[DQ [VarSub tar]]} {[LIT_CHARS xjSvpf]} {[DQ [LIT_CHARS gcc-objc-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[LIT_CHARS wget]} {[DQ [VarSub mirror_base_address][LIT_CHARS /gcc/gcc-][VarSub version][LIT_CHARS /gcc-testsuite-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[DQ [VarSub tar]]} {[LIT_CHARS xjSvpf]} {[DQ [LIT_CHARS gcc-testsuite-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[LIT_CHARS mv]} {[DQ [LIT_CHARS gcc-][VarSub version]]} {[DQ [LIT_CHARS gcc]]}) (Com {[LIT_CHARS cd]} {[DQ [LIT_CHARS gcc]]}) ) (List (Com {[LIT_CHARS wget]} {[DQ [VarSub mirror_base_address][LIT_CHARS /glibc/glibc-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[DQ [VarSub tar]]} {[LIT_CHARS xjSvpf]} {[DQ [LIT_CHARS glibc-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[LIT_CHARS wget]} {[DQ [VarSub mirror_base_address][LIT_CHARS /glibc/glibc-libidn-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[DQ [VarSub tar]]} {[LIT_CHARS xjSvpf]} {[DQ [LIT_CHARS glibc-libidn-][VarSub version][LIT_CHARS .tar.bz2]]}) (Com {[LIT_CHARS mv]} {[DQ [LIT_CHARS glibc-][VarSub version]]} {[DQ [LIT_CHARS glibc]]}) (Com {[LIT_CHARS mv]} {[DQ [LIT_CHARS glibc-libidn-][VarSub version]]} {[DQ [LIT_CHARS glibc/libidn]]}) (Com {[LIT_CHARS cd]} {[DQ [LIT_CHARS glibc]]}) ) (List (Com {[LIT_CHARS wget]} {[DQ [VarSub mirror_base_address][LIT_CHARS /newlib/newlib-][VarSub version][LIT_CHARS .tar.gz]]}) (Com {[DQ [VarSub tar]]} {[LIT_CHARS xzSvpf]} {[DQ [LIT_CHARS newlib-][VarSub version][LIT_CHARS .tar.gz]]}) (Com {[LIT_CHARS mv]} {[DQ [LIT_CHARS newlib-][VarSub version]]} {[DQ [LIT_CHARS newlib]]}) (Com {[LIT_CHARS cd]} {[DQ [LIT_CHARS newlib]]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Unknown package: "][VarSub basename]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 3]}) ) ) (Pipeline (Com {[LIT_CHARS wget]} {[DQ [LIT_CHARS "https://storage.googleapis.com"][VarSub patchname]]} {[LIT_CHARS -O-]}) (Com {[DQ [VarSub uncompress]]} {[LIT_CHARS -d]}) (Com {[LIT_CHARS patch]} {[LIT_CHARS -p1]}) ) ) ) ) (Com {[LIT_CHARS cd]} {[DQ [VarSub target]]}) (Com {[LIT_CHARS rm]} {[LIT_OTHER "*"] [LIT_CHARS .tar.] [LIT_OTHER "*"]}) ) ) ) ) )