Created
April 2, 2017 03:48
-
-
Save yatt/ba2ee6fb798c56094750569f72e03587 to your computer and use it in GitHub Desktop.
chromedriverの自動更新スクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/bash | |
cd $(dirname $0) | |
# 現在パスが通っているchromedriverのバージョンと、chromedriverで公開されている | |
# 最新のchromedriverのバージョンを比較し、新しくなっている場合は更新する。 | |
# chromedriverの保存先 | |
CURRENT_CHROMEDRIVER=/home/user/bin/chromedriver | |
CHROMEDRIVER_ARCHIVE_DIR=/home/user/bin/selenium-webdriver/chromedriver/ | |
# 取得するzipファイル名 | |
ARCHIVE_FILE_NAME=chromedriver_linux64.zip | |
echo "現行ChromeDriverパス: $CURRENT_CHROMEDRIVER" | |
# 最新のバージョンを取得する | |
# | |
# ↓のようなaタグからバージョン文字列を取得する。 | |
# <a name="TOC-Latest-Release:-ChromeDriver-2.28"></a> | |
# | |
URL_DOWNLOAD_PAGE=https://sites.google.com/a/chromium.org/chromedriver/downloads | |
LATEST_VERSION=$(curl -s $URL_DOWNLOAD_PAGE | perl -lne 'print $1 if /(?<=TOC-Latest-Release:-ChromeDriver-)([^"]+)/') | |
echo "最新バージョン: $LATEST_VERSION" | |
# 今動作しているバージョン | |
CURRENT_VERSION_FULL=$($CURRENT_CHROMEDRIVER --version | cut -f2 -d' ') | |
# マイナーバージョンまでで切った文字列 | |
CURRENT_VERSION=${CURRENT_VERSION_FULL:0:4} | |
echo "現行バージョン: $CURRENT_VERSION ($CURRENT_VERSION_FULL)" | |
echo | |
# 更新がある場合 | |
if [[ $LATEST_VERSION > $CURRENT_VERSION ]]; then | |
echo ChromeDriverが更新されています | |
# linux 64bit 向けのzipファイルを取得 | |
ZIP_URL=https://chromedriver.storage.googleapis.com/$LATEST_VERSION/$ARCHIVE_FILE_NAME | |
ZIP_DEST_DIR=$CHROMEDRIVER_ARCHIVE_DIR/$LATEST_VERSION | |
if [ ! -d $ZIP_DEST_DIR ]; then | |
echo ディレクトリ$ZIP_DEST_DIR を作成します。 | |
mkdir -p $ZIP_DEST_DIR | |
fi | |
# TODO 失敗時 | |
cd $ZIP_DEST_DIR | |
echo "アーカイブ取得 ... $ZIP_URL" | |
wget --quiet $ZIP_URL | |
echo "アーカイブ解凍" | |
# すでにある場合は上書き | |
unzip -o $ARCHIVE_FILE_NAME | |
echo "シンボリックリンク更新" | |
ABSPATH=$(readlink -f ./chromedriver) | |
ln -s $ABSPATH chromedriver_new | |
mv --force chromedriver_new $CURRENT_CHROMEDRIVER | |
echo "更新後バージョン: $($CURRENT_CHROMEDRIVER --version)" | |
else | |
echo ChromeDriverは最新です。 | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment