File: file_up_down_load.sh

package info (click to toggle)
chromium-browser 57.0.2987.98-1~deb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 2,637,852 kB
  • ctags: 2,544,394
  • sloc: cpp: 12,815,961; ansic: 3,676,222; python: 1,147,112; asm: 526,608; java: 523,212; xml: 286,794; perl: 92,654; sh: 86,408; objc: 73,271; makefile: 27,698; cs: 18,487; yacc: 13,031; tcl: 12,957; pascal: 4,875; ml: 4,716; lex: 3,904; sql: 3,862; ruby: 1,982; lisp: 1,508; php: 1,368; exp: 404; awk: 325; csh: 117; jsp: 39; sed: 37
file content (293 lines) | stat: -rwxr-xr-x 7,555 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
#!/bin/bash
# Copyright (c) 2012 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
#@ This script for up/downloading native client toolchains, etc..
#@ To manually inspect what is on the store servers point your
#@ browser at:
#@ http://gsdview.appspot.com/nativeclient-archive2/

#set -o xtrace
set -o nounset
set -o errexit

######################################################################
# Helper
######################################################################

Banner() {
  echo "######################################################################"
  echo $*
  echo "######################################################################"
}


Usage() {
  egrep "^#@" $0 | cut --bytes=3-
}

SanityCheck() {
  Banner "Sanity Checks"
  if [[ $(basename $(pwd)) != "native_client" ]] ; then
    echo "ERROR: run this script from the native_client/ dir"
    exit -1
  fi
}

######################################################################
# Config
######################################################################

readonly GS_UTIL=${GS_UTIL:-buildbot/gsutil.sh}

readonly DIR_ARCHIVE=nativeclient-archive2
readonly DIR_TRYBOT=nativeclient-trybot

readonly GS_PREFIX_ARCHIVE="gs://${DIR_ARCHIVE}"
readonly GS_PREFIX_TRYBOT="gs://${DIR_TRYBOT}"

readonly URL_PREFIX_UI="http://gsdview.appspot.com"
######################################################################
# UTIL
######################################################################
GetFileSizeK() {
  # Note: this is tricky to make work on win/linux/mac
  du -k $1 | egrep -o "^[0-9]+"
}


Upload() {
  local size_kb=$(GetFileSizeK $1)
  echo "uploading: $2 (${size_kb}kB)"
  local path=${2:5}
  echo "@@@STEP_LINK@download (${size_kb}kB)@${URL_PREFIX_UI}/${path}@@@"
  ${GS_UTIL} cp -a public-read $1 $2
}

CheckPath() {
  if [[ $1 != toolchain/* &&
       $1 != between_builders/* &&
       $1 != canned_nexe/* ]] ; then
      echo "ERROR: Bad component name: $1"
      exit -1
  fi
}

UploadArchive() {
  local path=$1
  local tarball=$2

  CheckPath ${path}
  Upload ${tarball} ${GS_PREFIX_ARCHIVE}/${path}
}

DownloadArchive() {
  local path=$1
  local tarball=$2

  echo "@@@STEP_LINK@download@${URL_PREFIX_UI}/${path}@@@"
  ${GS_UTIL} cp ${GS_PREFIX_ARCHIVE}/${path} ${tarball}
}

UploadTrybot() {
  local path=$1
  local tarball=$2

  CheckPath ${path}
  Upload ${tarball} ${GS_PREFIX_TRYBOT}/${path}
}

DownloadTrybot() {
  local path=$1
  local tarball=$2

  echo "@@@STEP_LINK@download@${URL_PREFIX_UI}/${path}@@@"
  ${GS_UTIL} cp ${GS_PREFIX_TRYBOT}/${path} ${tarball}
}

ComputeSha1() {
  # on mac we do not have sha1sum so we fall back to openssl
  if which sha1sum >/dev/null ; then
    echo "$(SHA1=$(sha1sum -b $1) ; echo ${SHA1:0:40})"
  elif which openssl >/dev/null ; then
    echo "$(SHA1=$(openssl sha1 $1) ; echo ${SHA1/* /})"

  else
    echo "ERROR: do not know how to compute SHA1"
    exit 1
  fi
}

######################################################################
# ARM TRUSTED
######################################################################

UploadArmTrustedToolchain() {
  local rev=$1
  local tarball=$2

  UploadArchive toolchain/${rev}/naclsdk_linux_arm-trusted.tgz ${tarball}
}

DownloadArmTrustedToolchain() {
  local rev=$1
  local tarball=$2
  DownloadArchive toolchain/${rev}/naclsdk_linux_arm-trusted.tgz ${tarball}
}

ShowRecentArmTrustedToolchains() {
   local url=${GS_PREFIX_ARCHIVE}/toolchain/*/naclsdk_linux_arm-trusted.tgz
   local recent=$(${GS_UTIL} ls ${url} | tail -5)
   for url in ${recent} ; do
     if ${GS_UTIL} ls -L "${url}" ; then
       echo "====="
     fi
   done
}

######################################################################
# ARM UN-TRUSTED
######################################################################

#@ label should be in :
#@
#@ pnacl_linux_x86
#@ pnacl_mac_x86
#@ pnacl_win_x86

UploadToolchainTarball() {
  local rev=$1
  local label=$2
  local tarball=$3

  ComputeSha1 ${tarball} > ${tarball}.sha1hash
  UploadArchive toolchain/${rev}/naclsdk_${label}.tgz.sha1hash ${tarball}.sha1hash

  # NOTE: only the last link is shown on the waterfall so this should come last
  UploadArchive toolchain/${rev}/naclsdk_${label}.tgz ${tarball}
}

DownloadPnaclToolchains() {
  local rev=$1
  local label=$2
  local tarball=$3

  DownloadArchive toolchain/${rev}/naclsdk_${label}.tgz ${tarball}
}

ShowRecentPnaclToolchains() {
  local label=$1
  local url="${GS_PREFIX_ARCHIVE}/toolchain/*/naclsdk_${label}.tgz"

  local recent=$(${GS_UTIL} ls ${url} | tail -5)
  for url in ${recent} ; do
    if ${GS_UTIL} ls -L "${url}" ; then
      echo "====="
    fi
  done
}

######################################################################
# Nexes for regression/speed tests
######################################################################

UploadArchivedNexes() {
  local rev=$1
  local label="archived_nexes_$2.tar.bz2"
  local tarball=$3

  # TODO(robertm,bradn): find another place to store this and
  #                      negotiate long term storage guarantees
  UploadArchive canned_nexe/${rev}/${label} ${tarball}
}

DownloadArchivedNexes() {
  local rev=$1
  local label="archived_nexes_$2.tar.bz2"
  local tarball=$3

  DownloadArchive canned_nexe/${rev}/${label} ${tarball}
}

######################################################################
# Pexes for bitcode stability testing
######################################################################

UploadArchivedPexes() {
  local rev=$1
  local label="archived_pexes_$2.tar.bz2"
  local tarball=$3

  # TODO(robertm,bradn): find another place to store this and
  #                      negotiate long term storage guarantees
  # Note, we store the pexes with the toolchain rev for now
  UploadArchive toolchain/${rev}/${label} ${tarball}
}

DownloadArchivedPexes() {
  local rev=$1
  local label="archived_pexes_$2.tar.bz2"
  local tarball=$3
  DownloadArchive toolchain/${rev}/${label} ${tarball}
}

UploadArchivedPexesSpec2k() {
    UploadArchivedPexes $1 "spec2k" $2
}

DownloadArchivedPexesSpec2k() {
    DownloadArchivedPexes $1 "spec2k" $2
}
######################################################################
# ARM BETWEEN BOTS
######################################################################

UploadArmBinariesForHWBots() {
  local name=$1
  local tarball=$2
  UploadArchive between_builders/${name}/$(basename ${tarball}) ${tarball}
}


DownloadArmBinariesForHWBots() {
  local name=$1
  local tarball=$2
  DownloadArchive between_builders/${name}/$(basename ${tarball}) ${tarball}
}

######################################################################
# ARM BETWEEN BOTS TRY
######################################################################

UploadArmBinariesForHWBotsTry() {
  local name=$1
  local tarball=$2
  UploadTrybot between_builders/${name}/$(basename ${tarball}) ${tarball}
}


DownloadArmBinariesForHWBotsTry() {
  local name=$1
  local tarball=$2
  DownloadTrybot between_builders/${name}/$(basename ${tarball}) ${tarball}
}

######################################################################
# DISPATCH
######################################################################
SanityCheck

if [[ $# -eq 0 ]] ; then
  echo "you must specify a mode on the commandline:"
  echo
  Usage
  exit -1
elif [[ "$(type -t $1)" != "function" ]]; then
  echo "ERROR: unknown function '$1'." >&2
  echo "For help, try:"
  echo "    $0 help"
  exit 1
else
  "$@"
fi