2013-03-18 4 views
1

Comment puis-je obtenir le GAE SDK pour me dire de quelle version il s'agit? Je ne pouvais pas trouver quelque chose comme ça:Comment obtenir la version actuelle de dev_appserver?

dev_appserver.py --version 

Notez que ceci est différent de os.environ['CURRENT_VERSION_ID'], qui renvoie la version de l'application, et il semble que os.environ['SERVER_SOFTWARE'] retourne toujours Development/1.0 quand je le lance dans la console interactive.

Je voudrais créer un script de mise à jour GAE SDK qui effectue la logique suivante:

  1. vérifie ce que le latest version of GAE SDK for Python on Linux est (de cette écriture 1.7.5 qui est disponible pour téléchargement à l'adresse https://storage.googleapis.com/appengine-sdks/deprecated/175/google_appengine_1.7.5.zip
  2. .
  3. Vérifie la version actuellement installée du SDK GAE.
  4. Si la version disponible> version installée, télécharge le dernier paquet et décompresse dans le répertoire approprié.

S'il n'y a pas de façon "supportée" de faire l'étape 1, je suis prêt à coder en dur la "dernière version" dans le script, mais je veux seulement télécharger/installer une fois même si le script est exécuté plusieurs fois. En d'autres termes, le script devrait être idempotent.

Répondre

2

Le répertoire où le zip SDK GAE est décompressé contient un fichier VERSION avec le contenu suivant:

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

J'ai donc écrit un script pour tirer la version de là:

#!/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 

Ou, vous pouvez l'utiliser pour obtenir la chaîne de version sur les installations autres que celles par défaut, mais readlink peut ne pas fonctionner correctement sous Linux:

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

Mais cela ne permet toujours pas d'exécuter l'étape 1, qui interrogerait le Web pour la dernière version et effectuerait une mise à jour automatique.

Questions connexes