axmol/tools/console/plugins/plugin_package/package_info.py

53 lines
1.9 KiB
Python

import time
from helper import PackageHelper
import cocos
from MultiLanguage import MultiLanguage
class PackageInfo(object):
@staticmethod
def plugin_name():
return "info"
@staticmethod
def brief_description():
return MultiLanguage.get_string('PACKAGE_INFO_BRIEF')
def parse_args(self, argv):
from argparse import ArgumentParser
parser = ArgumentParser(prog="cocos package %s" % self.__class__.plugin_name(),
description=self.__class__.brief_description())
parser.add_argument("name", metavar="NAME", help=MultiLanguage.get_string('PACKAGE_INFO_ARG_NAME'))
parser.add_argument('-v', '--version', default='all', help=MultiLanguage.get_string('PACKAGE_INFO_ARG_VERSION'))
return parser.parse_args(argv)
def run(self, argv):
args = self.parse_args(argv)
name = args.name
version = args.version
package_data = PackageHelper.query_package_data(name, version)
if package_data is None:
print MultiLanguage.get_string('PACKAGE_INFO_ERROR_NO_PKG_FMT', (name, version))
return
if isinstance(package_data, list):
for data in package_data:
self.show_info(name, data)
return
if package_data.has_key('err'):
print MultiLanguage.get_string('PACKAGE_INFO_ERROR_NO_PKG_FMT', (name, version))
return
self.show_info(name, package_data)
def show_info(self, name, package_data):
print MultiLanguage.get_string('PACKAGE_INFO_PKG_FMT',
(name, package_data["name"], package_data["version"],
time.strftime("%Y-%m-%d %H:%I:%S", time.gmtime(int(package_data["filetime"]))),
package_data["author"], (int(package_data["filesize"]) / 1024),
package_data["description"]))