1

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

dev_appserver.py --version

请注意,这与返回应用程序版本的 不同,当我在交互式控制台中运行它时os.environ['CURRENT_VERSION_ID'],它似乎os.environ['SERVER_SOFTWARE']总是返回。Development/1.0

我想创建一个执行以下逻辑的 GAE SDK 更新脚本:

  1. 检查最新版本的 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. 如果可用版本 > 已安装版本,则下载最新的软件包并将其解压缩到正确的目录中。

如果没有“支持”的方式来执行步骤#1,我愿意在脚本中硬编码“最新版本”,但即使脚本本身运行多次,我仍然只想下载/安装一次. 换句话说,脚本应该是幂等的。

4

1 回答 1

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

于 2013-03-19T00:50:56.410 回答