Skip to content

Instantly share code, notes, and snippets.

@chimame
Forked from yatt/chromedriver-updator.sh
Created June 4, 2017 13:55
Show Gist options
  • Save chimame/e33399f288c8fba8a6d8104c9e5808ea to your computer and use it in GitHub Desktop.
Save chimame/e33399f288c8fba8a6d8104c9e5808ea to your computer and use it in GitHub Desktop.
chromedriverの自動更新スクリプト
#! /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