2013-03-18 180 views
1

如何獲取GAE SDK告訴我它是什麼版本?我找不到這樣的事:如何獲取當前的dev_appserver版本?

dev_appserver.py --version 

注意,這是不同於os.environ['CURRENT_VERSION_ID'],返回應用程序版本,它似乎是os.environ['SERVER_SOFTWARE']總是返回Development/1.0當我運行它的交互式控制檯內。

我想創建執行以下邏輯GAE SDK更新腳本:

  1. 檢查該latest version of GAE SDK for Python on Linux是什麼(在本文寫作1.7.5這是可以免費下載的https://storage.googleapis.com/appengine-sdks/deprecated/175/google_appengine_1.7.5.zip
  2. 檢查當前安裝的版本的SDK GAE的。
  3. 如果可用的版本>安裝的版本,下載最新的包,並將其解壓縮到正確的目錄。

如果沒有「支持」的方法來執行第1步,我願意在腳本中對「最新版本」進行硬編碼,但即使腳本本身運行,我仍然只想下載/安裝一次多次。換句話說,劇本應該是冪等的。

回答

2

在GAE SDK的壓縮被解壓到該目錄中,有以下內容的版本文件:

release: "1.7.5" 
timestamp: 1357690550 
api_versions: ['1'] 

所以我寫了一個腳本來拉動版出來的有:

#!/bin/sh 

INSTALLEDVERSION=`cat /usr/local/google_appengine/VERSION | grep release | cut -d: -f 2 | cut -d\" -f 2` 
LATESTVERSION="1.7.5" 

if [ $INSTALLEDVERSION != $LATESTVERSION ]; then 
     echo "Update GAE SDK" 
fi 

或者,您可以使用它在非默認安裝上獲取版本字符串,但readlink可能無法在Linux上正常運行:

INSTALLEDDIR=`which dev_appserver.py | xargs readlink | xargs dirname` 
INSTALLEDVERSION=`cat $INSTALLEDDIR/VERSION | grep release | cut -d: -f 2 | cut -d\" -f 2` 

但是,這仍然沒有提供執行步驟1的方法,該步驟將向Web查詢最新版本並執行自動更新。

相關問題