[fix] Display YunoHost packages versions (fix #11)

This commit is contained in:
Jérôme Lebleu 2015-07-13 17:50:38 +02:00 committed by kload
parent c8dc2e324f
commit d8dd81c644
3 changed files with 48 additions and 4 deletions

View file

@ -155,10 +155,14 @@ if __name__ == '__main__':
_init_moulinette()
from moulinette import (api, MoulinetteError)
from yunohost import get_versions
try:
# Run the server
api(_retrieve_namespaces(), port=6787,
routes={('GET', '/installed'): is_installed},
routes={
('GET', '/installed'): is_installed,
('GET', '/version'): get_versions,
},
use_cache=USE_CACHE, use_websocket=USE_WEBSOCKET)
except MoulinetteError as e:
_die(e.strerror, m18n.g('error'))

View file

@ -54,9 +54,11 @@ _global:
arguments:
-v:
full: --version
help: Display moulinette version
action: version
version: moulinette %version%
help: Display YunoHost packages versions
action: callback
callback:
method: yunohost.get_versions
return: true
#############################
# User #

View file

@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
""" YunoHost scripts for the moulinette """
""" License
Copyright (C) 2015 YUNOHOST.ORG
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, see http://www.gnu.org/licenses
"""
## Packages versions
def get_version(package):
from moulinette.utils import process
return process.check_output(
"dpkg-query -W -f='${{Version}}' {0}".format(package)
).strip()
def get_versions(*args, **kwargs):
from collections import OrderedDict
return OrderedDict([
('moulinette', get_version('moulinette')),
('moulinette-yunohost', get_version('moulinette-yunohost')),
('yunohost-admin', get_version('yunohost-admin')),
])