mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-28 17:11:34 +02:00
Making default to LOGNAME work correctly.
Modifying gsdcurl to accept username and password from the environment. Switching cros_download_latest_image to use gsdcurl Merge branch 'master' of ssh://chromiumos-git/crosutils Switching back to MixedCase. Wrong style guide... Switching to match external style guide. Dropping unneeded arg as per review. Fixing copyright. Making the prompts go to stderr. Renaming for tab completion. Adding gsdcurl utility for pulling for Google Storage for Developers. BUG=None TEST=None Review URL: http://codereview.chromium.org/3060043
This commit is contained in:
parent
97117a9d97
commit
825074abc0
70
bin/cros_gsdcurl.py
Executable file
70
bin/cros_gsdcurl.py
Executable file
@ -0,0 +1,70 @@
|
||||
#!/usr/bin/python
|
||||
# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
|
||||
import getpass
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import urllib
|
||||
|
||||
|
||||
def Authenticate():
|
||||
# Authenticate.
|
||||
default_username = os.environ.get('LOGNAME', '')
|
||||
username = os.environ.get('GSDCURL_USERNAME')
|
||||
if username is None:
|
||||
sys.stderr.write('Username [' + default_username + ']: ')
|
||||
username = raw_input()
|
||||
if username == '':
|
||||
username = default_username + '@google.com'
|
||||
elif '@' not in username:
|
||||
username = username + '@google.com'
|
||||
passwd = os.environ.get('GSDCURL_PASSWORD')
|
||||
if passwd is None:
|
||||
sys.stderr.write('Password: ')
|
||||
passwd = urllib.quote_plus(getpass.getpass(prompt=''))
|
||||
cmd = [
|
||||
'curl', '--silent', 'https://www.google.com/accounts/ClientLogin',
|
||||
'-d', 'Email=' + username,
|
||||
'-d', 'Passwd=' + passwd,
|
||||
'-d', 'accountType=GOOGLE',
|
||||
'-d', 'source=Google-gsdcurl-ver1',
|
||||
'-d', 'service=cds',
|
||||
]
|
||||
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
|
||||
(p_stdout, _) = p.communicate()
|
||||
assert p.returncode == 0
|
||||
m = re.search('\nAuth=([^\n]+)\n', p_stdout)
|
||||
if not m:
|
||||
sys.stderr.write('BAD LOGIN\n')
|
||||
sys.exit(1)
|
||||
auth = m.group(1)
|
||||
return auth
|
||||
|
||||
|
||||
def DoCurl(auth, argv):
|
||||
(_, cookies) = tempfile.mkstemp(prefix='gsdcookie')
|
||||
cmd = [
|
||||
'curl', '-L',
|
||||
'-b', cookies, '-c', cookies,
|
||||
'--header', 'Authorization: GoogleLogin auth=' + auth,
|
||||
] + argv[1:]
|
||||
try:
|
||||
p = subprocess.Popen(cmd)
|
||||
return p.wait()
|
||||
finally:
|
||||
os.remove(cookies)
|
||||
|
||||
|
||||
def main(argv):
|
||||
auth = Authenticate()
|
||||
return DoCurl(auth, argv)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main(sys.argv))
|
@ -30,19 +30,25 @@ IMAGES_DIR="${DEFAULT_BUILD_ROOT}/images/${FLAGS_board}"
|
||||
|
||||
if [ $FLAGS_board = x86-generic ]; then
|
||||
if [ "$FLAGS_incremental" -eq "$FLAGS_TRUE" ]; then
|
||||
URL_PREFIX="http://codg174.jail.google.com/archive/x86-generic-inc"
|
||||
URL_PREFIX="https://sandbox.google.com/storage/chromeos-archive/x86-generic-bin"
|
||||
else
|
||||
URL_PREFIX="http://codg163.jail.google.com/archive/x86-generic-rel"
|
||||
URL_PREFIX="https://sandbox.google.com/storage/chromeos-archive/x86-generic-rel"
|
||||
fi
|
||||
else
|
||||
die "Unrecognized board: $FLAGS_board"
|
||||
fi
|
||||
|
||||
LATEST_BUILD=$(curl -s $URL_PREFIX/LATEST)
|
||||
read -p "Username [${LOGNAME}]: " GSDCURL_USERNAME
|
||||
export GSDCURL_USERNAME
|
||||
read -s -p "Password: " GSDCURL_PASSWORD
|
||||
export GSDCURL_PASSWORD
|
||||
|
||||
LATEST_BUILD=$(bin/cros_gsdcurl.py -s $URL_PREFIX/LATEST)
|
||||
LATEST_IMAGE_DIR="$IMAGES_DIR/$LATEST_BUILD"
|
||||
if [ ! -e $LATEST_IMAGE_DIR/chromiumos_base_image.bin ]; then
|
||||
mkdir -p $LATEST_IMAGE_DIR
|
||||
curl $URL_PREFIX/$LATEST_BUILD/image.zip -o $LATEST_IMAGE_DIR/image.zip \
|
||||
bin/cros_gsdcurl.py $URL_PREFIX/$LATEST_BUILD/image.zip -o \
|
||||
$LATEST_IMAGE_DIR/image.zip \
|
||||
|| die "Could not download image.zip"
|
||||
( cd $LATEST_IMAGE_DIR && unzip -qo image.zip ) \
|
||||
|| die "Could not unzip image.zip"
|
||||
|
Loading…
x
Reference in New Issue
Block a user