(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]}) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]}) (FunctionDef Banner [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "######################################################################"]]}) (Com {[LIT_CHARS echo]} {[VarSub *]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "######################################################################"]]}) ) ) (FunctionDef Usage [] (Pipeline (Com {[LIT_CHARS egrep]} {[DQ [LIT_CHARS "^#@"]]} {[VarSub 0]}) (Com {[LIT_CHARS cut]} {[LIT_CHARS --bytes] [LIT_OTHER "="] [LIT_CHARS 3-]}) ) ) (FunctionDef SanityCheck [] (List (Com {[LIT_CHARS Banner]} {[DQ [LIT_CHARS "Sanity Checks"]]}) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[ComSub (Com {[LIT_CHARS basename]} {[ComSub (Com {[LIT_CHARS pwd]})]})]} {[DQ [LIT_CHARS native_client]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: run this script from the native_client/ dir"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) ) ) (= scope= flags=2 words=[] bindings=[('GS_UTIL', {[VarSub GS_UTIL test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS buildbot] [LIT_SLASH /] [LIT_CHARS gsutil.sh]}]})]) (= scope= flags=2 words=[] bindings=[('DIR_ARCHIVE', {[LIT_CHARS nativeclient-archive2]})]) (= scope= flags=2 words=[] bindings=[('DIR_TRYBOT', {[LIT_CHARS nativeclient-trybot]})]) (= scope= flags=2 words=[] bindings=[('GS_PREFIX_ARCHIVE', {[DQ [LIT_CHARS "gs://"][VarSub DIR_ARCHIVE]]})]) (= scope= flags=2 words=[] bindings=[('GS_PREFIX_TRYBOT', {[DQ [LIT_CHARS "gs://"][VarSub DIR_TRYBOT]]})]) (= scope= flags=2 words=[] bindings=[('URL_PREFIX_UI', {[DQ [LIT_CHARS "http://gsdview.appspot.com"]]})]) (FunctionDef GetFileSizeK [] (Pipeline (Com {[LIT_CHARS du]} {[LIT_CHARS -k]} {[VarSub 1]}) (Com {[LIT_CHARS egrep]} {[LIT_CHARS -o]} {[DQ [LIT_CHARS "^[0-9]+"]]}) ) ) (FunctionDef Upload [] (List (= scope= flags=0 words=[] bindings=[('size_kb', {[ComSub (Com {[LIT_CHARS GetFileSizeK]} {[VarSub 1]})]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "uploading: "][VarSub 2][LIT_CHARS " ("][VarSub size_kb][LIT_CHARS "kB)"]]}) (= scope= flags=0 words=[] bindings=[('path', {[VarSub 2 transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 5]}} None]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "@@@STEP_LINK@download ("][VarSub size_kb][LIT_CHARS "kB)@"][VarSub URL_PREFIX_UI][LIT_CHARS /][VarSub path][LIT_CHARS "@@@"]]}) (Com {[VarSub GS_UTIL]} {[LIT_CHARS cp]} {[LIT_CHARS -a]} {[LIT_CHARS public-read]} {[VarSub 1]} {[VarSub 2]}) ) ) (FunctionDef CheckPath [] (If (DBracket {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_NOT_EQUAL {[VarSub 1]} {[LIT_CHARS toolchain/] [LIT_OTHER "*"]}} {B? LOGICAL_BINARY_AND {B2 BINARY_STRING_NOT_EQUAL {[VarSub 1]} {[LIT_CHARS between_builders/] [LIT_OTHER "*"]}} {B2 BINARY_STRING_NOT_EQUAL {[VarSub 1]} {[LIT_CHARS canned_nexe/] [LIT_OTHER "*"]}}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: Bad component name: "][VarSub 1]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) ) (FunctionDef UploadArchive [] (List (= scope= flags=0 words=[] bindings=[('path', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 2]})]) (Com {[LIT_CHARS CheckPath]} {[VarSub path]}) (Com {[LIT_CHARS Upload]} {[VarSub tarball]} {[VarSub GS_PREFIX_ARCHIVE] [LIT_CHARS /] [VarSub path]}) ) ) (FunctionDef DownloadArchive [] (List (= scope= flags=0 words=[] bindings=[('path', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 2]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "@@@STEP_LINK@download@"][VarSub URL_PREFIX_UI][LIT_CHARS /][VarSub path][LIT_CHARS "@@@"]]}) (Com {[VarSub GS_UTIL]} {[LIT_CHARS cp]} {[VarSub GS_PREFIX_ARCHIVE] [LIT_CHARS /] [VarSub path]} {[VarSub tarball]}) ) ) (FunctionDef UploadTrybot [] (List (= scope= flags=0 words=[] bindings=[('path', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 2]})]) (Com {[LIT_CHARS CheckPath]} {[VarSub path]}) (Com {[LIT_CHARS Upload]} {[VarSub tarball]} {[VarSub GS_PREFIX_TRYBOT] [LIT_CHARS /] [VarSub path]}) ) ) (FunctionDef DownloadTrybot [] (List (= scope= flags=0 words=[] bindings=[('path', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 2]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "@@@STEP_LINK@download@"][VarSub URL_PREFIX_UI][LIT_CHARS /][VarSub path][LIT_CHARS "@@@"]]}) (Com {[VarSub GS_UTIL]} {[LIT_CHARS cp]} {[VarSub GS_PREFIX_TRYBOT] [LIT_CHARS /] [VarSub path]} {[VarSub tarball]}) ) ) (FunctionDef ComputeSha1 [] (If (Com {[LIT_CHARS which]} {[LIT_CHARS sha1sum]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [ComSub (List (= scope= flags=0 words=[] bindings=[('SHA1', {[ComSub (Com {[LIT_CHARS sha1sum]} {[LIT_CHARS -b]} {[VarSub 1]})]})]) (Com {[LIT_CHARS echo]} {[VarSub SHA1 transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 40]}}]]}) )]]}) (Com {[LIT_CHARS which]} {[LIT_CHARS openssl]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [ComSub (List (= scope= flags=0 words=[] bindings=[('SHA1', {[ComSub (Com {[LIT_CHARS openssl]} {[LIT_CHARS sha1]} {[VarSub 1]})]})]) (Com {[LIT_CHARS echo]} {[VarSub SHA1 transform_ops=[PatSub {[LIT_CHARS "* "]} {}]]}) )]]}) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: do not know how to compute SHA1"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) ) (FunctionDef UploadArmTrustedToolchain [] (List (= scope= flags=0 words=[] bindings=[('rev', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 2]})]) (Com {[LIT_CHARS UploadArchive]} {[LIT_CHARS toolchain/] [VarSub rev] [LIT_CHARS /naclsdk_linux_arm-trusted.tgz]} {[VarSub tarball]}) ) ) (FunctionDef DownloadArmTrustedToolchain [] (List (= scope= flags=0 words=[] bindings=[('rev', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 2]})]) (Com {[LIT_CHARS DownloadArchive]} {[LIT_CHARS toolchain/] [VarSub rev] [LIT_CHARS /naclsdk_linux_arm-trusted.tgz]} {[VarSub tarball]}) ) ) (FunctionDef ShowRecentArmTrustedToolchains [] (List (= scope= flags=0 words=[] bindings=[('url', {[VarSub GS_PREFIX_ARCHIVE] [LIT_CHARS /toolchain/] [LIT_OTHER "*"] [LIT_CHARS /naclsdk_linux_arm-trusted.tgz]})]) (= scope= flags=0 words=[] bindings=[('recent', {[ComSub (Pipeline (Com {[VarSub GS_UTIL]} {[LIT_CHARS ls]} {[VarSub url]}) (Com {[LIT_CHARS tail]} {[LIT_CHARS -5]}) )]})]) (For url [{[VarSub recent]}]) (If (Com {[VarSub GS_UTIL]} {[LIT_CHARS ls]} {[LIT_CHARS -L]} {[DQ [VarSub url]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "====="]]}) ) ) ) ) (FunctionDef UploadToolchainTarball [] (List (= scope= flags=0 words=[] bindings=[('rev', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('label', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 3]})]) (Com {[LIT_CHARS ComputeSha1]} {[VarSub tarball]} < (FilenameRedirectNode filename={[VarSub tarball] [LIT_CHARS .sha1hash]} "> 1), > ) (Com {[LIT_CHARS UploadArchive]} {[LIT_CHARS toolchain/] [VarSub rev] [LIT_CHARS /naclsdk_] [VarSub label] [LIT_CHARS .tgz.sha1hash]} {[VarSub tarball] [LIT_CHARS .sha1hash]}) (Com {[LIT_CHARS UploadArchive]} {[LIT_CHARS toolchain/] [VarSub rev] [LIT_CHARS /naclsdk_] [VarSub label] [LIT_CHARS .tgz]} {[VarSub tarball]}) ) ) (FunctionDef DownloadPnaclToolchains [] (List (= scope= flags=0 words=[] bindings=[('rev', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('label', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 3]})]) (Com {[LIT_CHARS DownloadArchive]} {[LIT_CHARS toolchain/] [VarSub rev] [LIT_CHARS /naclsdk_] [VarSub label] [LIT_CHARS .tgz]} {[VarSub tarball]}) ) ) (FunctionDef ShowRecentPnaclToolchains [] (List (= scope= flags=0 words=[] bindings=[('label', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('url', {[DQ [VarSub GS_PREFIX_ARCHIVE][LIT_CHARS "/toolchain/*/naclsdk_"][VarSub label][LIT_CHARS .tgz]]})]) (= scope= flags=0 words=[] bindings=[('recent', {[ComSub (Pipeline (Com {[VarSub GS_UTIL]} {[LIT_CHARS ls]} {[VarSub url]}) (Com {[LIT_CHARS tail]} {[LIT_CHARS -5]}) )]})]) (For url [{[VarSub recent]}]) (If (Com {[VarSub GS_UTIL]} {[LIT_CHARS ls]} {[LIT_CHARS -L]} {[DQ [VarSub url]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "====="]]}) ) ) ) ) (FunctionDef UploadArchivedNexes [] (List (= scope= flags=0 words=[] bindings=[('rev', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('label', {[DQ [LIT_CHARS archived_nexes_][VarSub 2][LIT_CHARS .tar.bz2]]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 3]})]) (Com {[LIT_CHARS UploadArchive]} {[LIT_CHARS canned_nexe/] [VarSub rev] [LIT_CHARS /] [VarSub label]} {[VarSub tarball]}) ) ) (FunctionDef DownloadArchivedNexes [] (List (= scope= flags=0 words=[] bindings=[('rev', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('label', {[DQ [LIT_CHARS archived_nexes_][VarSub 2][LIT_CHARS .tar.bz2]]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 3]})]) (Com {[LIT_CHARS DownloadArchive]} {[LIT_CHARS canned_nexe/] [VarSub rev] [LIT_CHARS /] [VarSub label]} {[VarSub tarball]}) ) ) (FunctionDef UploadArchivedPexes [] (List (= scope= flags=0 words=[] bindings=[('rev', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('label', {[DQ [LIT_CHARS archived_pexes_][VarSub 2][LIT_CHARS .tar.bz2]]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 3]})]) (Com {[LIT_CHARS UploadArchive]} {[LIT_CHARS toolchain/] [VarSub rev] [LIT_CHARS /] [VarSub label]} {[VarSub tarball]}) ) ) (FunctionDef DownloadArchivedPexes [] (List (= scope= flags=0 words=[] bindings=[('rev', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('label', {[DQ [LIT_CHARS archived_pexes_][VarSub 2][LIT_CHARS .tar.bz2]]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 3]})]) (Com {[LIT_CHARS DownloadArchive]} {[LIT_CHARS toolchain/] [VarSub rev] [LIT_CHARS /] [VarSub label]} {[VarSub tarball]}) ) ) (FunctionDef UploadArchivedPexesSpec2k [] (Com {[LIT_CHARS UploadArchivedPexes]} {[VarSub 1]} {[DQ [LIT_CHARS spec2k]]} {[VarSub 2]}) ) (FunctionDef DownloadArchivedPexesSpec2k [] (Com {[LIT_CHARS DownloadArchivedPexes]} {[VarSub 1]} {[DQ [LIT_CHARS spec2k]]} {[VarSub 2]}) ) (FunctionDef UploadArmBinariesForHWBots [] (List (= scope= flags=0 words=[] bindings=[('name', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 2]})]) (Com {[LIT_CHARS UploadArchive]} {[LIT_CHARS between_builders/] [VarSub name] [LIT_CHARS /] [ComSub (Com {[LIT_CHARS basename]} {[VarSub tarball]})]} {[VarSub tarball]}) ) ) (FunctionDef DownloadArmBinariesForHWBots [] (List (= scope= flags=0 words=[] bindings=[('name', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 2]})]) (Com {[LIT_CHARS DownloadArchive]} {[LIT_CHARS between_builders/] [VarSub name] [LIT_CHARS /] [ComSub (Com {[LIT_CHARS basename]} {[VarSub tarball]})]} {[VarSub tarball]}) ) ) (FunctionDef UploadArmBinariesForHWBotsTry [] (List (= scope= flags=0 words=[] bindings=[('name', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 2]})]) (Com {[LIT_CHARS UploadTrybot]} {[LIT_CHARS between_builders/] [VarSub name] [LIT_CHARS /] [ComSub (Com {[LIT_CHARS basename]} {[VarSub tarball]})]} {[VarSub tarball]}) ) ) (FunctionDef DownloadArmBinariesForHWBotsTry [] (List (= scope= flags=0 words=[] bindings=[('name', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('tarball', {[VarSub 2]})]) (Com {[LIT_CHARS DownloadTrybot]} {[LIT_CHARS between_builders/] [VarSub name] [LIT_CHARS /] [ComSub (Com {[LIT_CHARS basename]} {[VarSub tarball]})]} {[VarSub tarball]}) ) ) (Com {[LIT_CHARS SanityCheck]}) (If (DBracket {B2 BINARY_INT_EQ {[VarSub #]} {[LIT_CHARS 0]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "you must specify a mode on the commandline:"]]}) (Com {[LIT_CHARS echo]}) (Com {[LIT_CHARS Usage]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) (DBracket {B2 BINARY_STRING_NOT_EQUAL {[DQ [ComSub (Com {[LIT_CHARS type]} {[LIT_CHARS -t]} {[VarSub 1]})]]} {[DQ [LIT_CHARS function]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: unknown function '"][VarSub 1][LIT_CHARS "'."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "For help, try:"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub 0][LIT_CHARS " help"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (ElseTrue) (Com {[DQ [VarSub @]]}) ) )