OpenStreetMapの地図編集にJOSMを利用している人は多いと思いますが、開発版を使っていると活発に更新されているので最新版の更新が面倒です。
ということで開発版の更新をチェックして、更新されていればダウンロードして起動するシェルスクリプトを書きました。
josm-latest
josm-latest -h josm-latest -o josm-latest -s
JOSM開発版の更新をチェック。更新されていればダウンロードしてからJOSMを起動します。
''-h'' 使用方法のメッセージを出力します。 ''-o'' 保存している一つ前のバージョンのJOSMを起動します。 ''-s'' 最新版の更新チェックを無視してJOSMを起動します。
~/.config/josm-latest.conf
JOSM="josm-latest.jar" JOSM_URI="http://josm.openstreetmap.de/\${JOSM}" JOSM_DOWNLOAD_HOME="\${HOME}/bin" JOSM_LATEST=0 JOSM_LATEST_URI="http://josm.openstreetmap.de/latest" TIMEOUT=5
#!/bin/bash # # josm-latest # # Copyright 2012 Jun NOGATA <nogajun@gmail.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. set -e CONF="josm-latest.conf" CONF_DIR="${HOME}/.config" # ヘルプ Usage(){ cat <<EOF josm-latest, version 0.0 Usage: josm-latest [option] Options: -h help -o start old version -s skip check latest JOSM EOF } # 設定ファイルのチェック Check_conf(){ if [ ! -e "${CONF_DIR}/${CONF}" ] then # 設定ファイルを作る # ディレクトリ作る if [ -d "${CONF_DIR}" ] then mkdir -p ${CONF_DIR} fi # 設定ファイルを作る cat <<EOF > "${CONF_DIR}/${CONF}" JOSM="josm-latest.jar" JOSM_URI="http://josm.openstreetmap.de/\${JOSM}" JOSM_DOWNLOAD_HOME="\${HOME}/bin" JOSM_LATEST=0 JOSM_LATEST_URI="http://josm.openstreetmap.de/latest" TIMEOUT=5 EOF fi # 設定ファイル読み込み source "${CONF_DIR}/${CONF}" return 0 } # JOSMの更新チェック Check_latest(){ echo "Checking Latest JOSM..." LATEST=$(curl -s -L --progress-bar --connect-timeout ${TIMEOUT} ${JOSM_LATEST_URI}) if [ ${JOSM_LATEST} -lt ${LATEST} ] then echo "Found New JOSM." # バックアップ削除 [ -e "${JOSM_DOWNLOAD_HOME}/${JOSM}.old" ] && rm -f ${JOSM_DOWNLOAD_HOME}/${JOSM}.old # 現状のファイルをバックアップ [ -e "${JOSM_DOWNLOAD_HOME}/${JOSM}" ] && mv ${JOSM_DOWNLOAD_HOME}/${JOSM} ${JOSM_DOWNLOAD_HOME}/${JOSM}.old # 新しいJOSMをダウンロード curl -L --progress-bar --connect-timeout ${TIMEOUT} -o ${JOSM_DOWNLOAD_HOME}/${JOSM} ${JOSM_URI} # 設定ファイルにバージョンを書き込み sed -i -e "s/^JOSM_LATEST=.*$/JOSM_LATEST=${LATEST}/" ${CONF_DIR}/${CONF} else echo "Not found new JOSM" fi return 0 } # josm 起動 case $1 in -h) Usage exit 0 ;; -o) Check_conf /usr/bin/java -jar ${JOSM_DOWNLOAD_HOME}/${JOSM}.old ;; -s) Check_conf /usr/bin/java -jar ${JOSM_DOWNLOAD_HOME}/${JOSM} ;; *) Check_conf Check_latest /usr/bin/java -jar ${JOSM_DOWNLOAD_HOME}/${JOSM} ;; esac