2013-03-18 120 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查询最新版本并执行自动更新。

相关问题