From 0eed06a804db373703bced366b3abcbcf73551d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20=C3=96zkural?= Date: Tue, 9 Aug 2005 11:06:36 +0000 Subject: [PATCH] * take a look at the TODO items * reorg a bit * prepare an alphabetical list of commands automatically * start upgrade command, yes. --- TODO | 49 ++++++++++++------------ pisi/cli/commands.py | 89 ++++++++++++++++++++++++++++++-------------- pisi/cli/common.py | 24 ++---------- 3 files changed, 89 insertions(+), 73 deletions(-) diff --git a/TODO b/TODO index 84a6eaab..25610044 100644 --- a/TODO +++ b/TODO @@ -38,29 +38,6 @@ Legend: + Package/Files 2. Alpha - / component/category - + requirements - - xml format (baris) (bunlarin class'leri yazilmali) - - usage (build process'in icine koymak baris - meren) - + query - - comar OM information (Provides) - - package by name, summary/description - - actionsAPI documentation, unittests (caglar - meren) - / versioning information document - / verify metodlari - + SpecFile - + MetaData - + Files - - Index (o kadar onemli degil) - - implement missing unit tests - + sourcedb - + package (baris) - + configuration file (baris) - - non-interactive use (baris) - - incremental build (meren) - - generate binary release number by comparing MD5s (meren) - + keep track of successfully completed configure, make, install - steps (necessary for large-scale builds?) (meren) + multi-package dependency analysis (eray) + design a package operation planner + install/remove operations (eray) @@ -118,11 +95,33 @@ Legend: - exception handling (baris) - incremental build/fetch for repository index (pisi-index.xml) - diffsets (caglar) + / component/category + + requirements + - xml format (baris) (bunlarin class'leri yazilmali) + - usage (build process'in icine koymak baris - meren) + + query + - comar OM information (Provides) + - package by name, summary/description + - actionsAPI documentation, unittests (caglar - meren) + / versioning information document + / verify metodlari + + SpecFile + + MetaData + + Files + - Index (o kadar onemli degil) + - implement missing unit tests + + sourcedb + + package (baris) + + configuration file (baris) + - non-interactive use (baris) + - incremental build (meren) + - generate binary release number by comparing MD5s (meren) + + keep track of successfully completed configure, make, install + steps (necessary for large-scale builds?) (meren) + + database locking bugs (eray) 4. Release (bug fix, guzellestirme vs.) - - file locking hikayesi database'lerde guzel calisiyor mu (eray) - 5. Post Release - transaction stuff for database (eray) diff --git a/pisi/cli/commands.py b/pisi/cli/commands.py index f3680aa4..a6c0307d 100644 --- a/pisi/cli/commands.py +++ b/pisi/cli/commands.py @@ -18,30 +18,17 @@ from common import * import pisi.toplevel from pisi.ui import ui + +def commandsString(): + s = '' + l = commands.keys() + l.sort() + for x in l: + s += x + '\n' + return s + # helper functions def cmdObject(cmd, fail=False): - commands = {"help": Help, - "build": Build, - "build-until": BuildUntil, - "build-unpack": BuildUnpack, - "build-setup": BuildSetup, - "build-build": BuildBuild, - "build-install": BuildInstall, - "build-package": BuildPackage, - "info": Info, - "install": Install, - "configure-pending": ConfigurePending, - "list-pending": ListPending, - "list-installed": ListInstalled, - "list-available": ListAvailable, - "search-available": SearchAvailable, - "remove": Remove, - "index": Index, - "update-repo": UpdateRepo, - "add-repo": AddRepo, - "remove-repo": RemoveRepo, - "list-repo": ListRepo - } if commands.has_key(cmd): obj = commands[cmd]() @@ -58,6 +45,8 @@ class Command(object): def __init__(self): # now for the real parser + #usage_text = usage_text1 + commandsString() + usage_text2 + #self.usage_text = usage_text self.parser = OptionParser(usage=usage_text, version="%prog " + pisi.__version__) self.options() @@ -192,11 +181,10 @@ class Install(PackageOp): """Install PISI packages Usage: - install package + install package1 package2 ... packagen -You can give an URI of the pisi package. Or you can just give a -package name and choose to install a package from the defined -repositories (with add-repo). +You may use filenames, URIs or package names for packages. If you have +specified a package name, it should exist in a specified repository. """ def __init__(self): super(Install, self).__init__() @@ -210,11 +198,32 @@ repositories (with add-repo). pisi.toplevel.install(self.args) self.finalize() +class Upgrade(PackageOp): + """Upgrade PISI packages + + Usage: + Upgrade package1 package2 ... packagen + +You may use filenames, URIs or package names for packages. If you have +specified a package name, it should exist in a specified repository. +""" + def __init__(self): + super(Install, self).__init__() + + def run(self): + if not self.args: + self.help() + return + + self.init() + pisi.toplevel.upgrade(self.args) + self.finalize() + class Remove(PackageOp): """Remove PISI packages Usage: - remove package-name + remove package1-name package2-name ... packagen-name Remove a package from your system. Just give the package name to remove. """ @@ -590,3 +599,29 @@ TODO: desc. for arg in self.args: pisi.toplevel.build_until(arg, "buildpackages", self.authInfo) + +commands = {"help": Help, + "build": Build, + "build-until": BuildUntil, + "build-unpack": BuildUnpack, + "build-setup": BuildSetup, + "build-build": BuildBuild, + "build-install": BuildInstall, + "build-package": BuildPackage, + "info": Info, + "install": Install, + "configure-pending": ConfigurePending, + "list-pending": ListPending, + "list-installed": ListInstalled, + "list-available": ListAvailable, + "search-available": SearchAvailable, + "remove": Remove, + "upgrade": Upgrade, + "index": Index, + "update-repo": UpdateRepo, + "add-repo": AddRepo, + "remove-repo": RemoveRepo, + "list-repo": ListRepo + } + +usage_text = usage_text1 + commandsString() + usage_text2 diff --git a/pisi/cli/common.py b/pisi/cli/common.py index 56f7d64d..61260c96 100644 --- a/pisi/cli/common.py +++ b/pisi/cli/common.py @@ -8,31 +8,13 @@ # Please read the COPYING file. # -usage_text = """%prog [options] [arguments] +usage_text1 = """%prog [options] [arguments] where is one of: -help -build -build-until -build-unpack -build-setup -build-build -build-install -build-package -index -info -install -list-installed -list-available -remove -configure-pending -list-pending -add-repo -remove-repo -list-repo -update-repo +""" +usage_text2 = """ Use \"%prog help \" for help on a specific subcommand. PISI Package Manager