如何获取当前的dev_appserver版本?

时间:2013-03-18 21:33:08

标签: google-app-engine

如何让GAE SDK告诉我它是什么版本?我找不到这样的东西:

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. 检查当前安装的GAE SDK版本。
  3. 如果可用版本>安装版本,下载最新的软件包并将其解压缩到正确的目录中。
  4. 如果没有“支持”的方式来执行步骤#1,我愿意在脚本中硬编码“最新版本”,但即使脚本本身是,我仍然只想下载/安装一次多次运行。换句话说,脚本应该是幂等的。

1 个答案:

答案 0 :(得分:2)

解压缩GAE SDK zip的目录包含一个包含以下内容的VERSION文件:

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步的方法,第1步会在网上查询最新版本并进行自动更新。