mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-03 17:50:11 +02:00
fdroid --version
for installed releases and running from git
This will report the version embedded in the module if it is installed, and will report `git describe` if being run from git. If someone installs from git using pip, this will probably report the version in setup.py, which will be wrong. But that is not a documented install method, and I haven't heard of anyone using it. The recommended way is to run straight from git.
This commit is contained in:
parent
4a4bb3e7a5
commit
3fc2a99d71
@ -84,10 +84,10 @@ __vercode() {
|
||||
__complete_options() {
|
||||
case "${cur}" in
|
||||
--*)
|
||||
COMPREPLY=( $( compgen -W "--help ${lopts}" -- $cur ) )
|
||||
COMPREPLY=( $( compgen -W "--help --version ${lopts}" -- $cur ) )
|
||||
return 0;;
|
||||
*)
|
||||
COMPREPLY=( $( compgen -W "-h ${opts} --help ${lopts}" -- $cur ) )
|
||||
COMPREPLY=( $( compgen -W "-h ${opts} --help --version ${lopts}" -- $cur ) )
|
||||
return 0;;
|
||||
esac
|
||||
}
|
||||
|
32
fdroid
32
fdroid
@ -21,7 +21,7 @@
|
||||
import sys
|
||||
import logging
|
||||
|
||||
from fdroidserver.common import FDroidException
|
||||
import fdroidserver.common
|
||||
from optparse import OptionError
|
||||
|
||||
commands = {
|
||||
@ -45,7 +45,7 @@ commands = {
|
||||
|
||||
|
||||
def print_help():
|
||||
print "usage: fdroid [-h|--help] <command> [<args>]"
|
||||
print "usage: fdroid [-h|--help|--version] <command> [<args>]"
|
||||
print
|
||||
print "Valid commands are:"
|
||||
for cmd, summary in commands.items():
|
||||
@ -64,6 +64,32 @@ def main():
|
||||
if command in ('-h', '--help'):
|
||||
print_help()
|
||||
sys.exit(0)
|
||||
elif command == '--version':
|
||||
import os.path
|
||||
output = 'no version info found!'
|
||||
cmddir = os.path.realpath(os.path.dirname(__file__))
|
||||
moduledir = os.path.realpath(os.path.dirname(fdroidserver.common.__file__) + '/..')
|
||||
if cmddir == moduledir:
|
||||
# running from git
|
||||
os.chdir(cmddir)
|
||||
if os.path.isdir('.git'):
|
||||
import subprocess
|
||||
try:
|
||||
output = subprocess.check_output(['git', 'describe'],
|
||||
stderr=subprocess.STDOUT)
|
||||
except subprocess.CalledProcessError:
|
||||
output = 'git commit ' + subprocess.check_output(['git', 'rev-parse', 'HEAD'])
|
||||
elif os.path.exists('setup.py'):
|
||||
import re
|
||||
m = re.search(r'''.*[\s,\(]+version\s*=\s*["']([0-9a-z.]+)["'].*''',
|
||||
open('setup.py').read(), flags=re.MULTILINE)
|
||||
if m:
|
||||
output = m.group(1) + '\n'
|
||||
else:
|
||||
from pkg_resources import get_distribution
|
||||
output = get_distribution('fdroidserver').version + '\n'
|
||||
print(output),
|
||||
sys.exit(0)
|
||||
else:
|
||||
print "Command '%s' not recognised.\n" % command
|
||||
print_help()
|
||||
@ -92,7 +118,7 @@ def main():
|
||||
try:
|
||||
mod.main()
|
||||
# These are ours, contain a proper message and are "expected"
|
||||
except FDroidException, e:
|
||||
except fdroidserver.common.FDroidException, e:
|
||||
if verbose:
|
||||
raise
|
||||
else:
|
||||
|
@ -102,6 +102,12 @@ for testcase in $WORKSPACE/tests/*.TestCase; do
|
||||
done
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
echo_header "print fdroid version"
|
||||
|
||||
$fdroid --version
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
echo_header "build the TeX manual"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user