From 287f9349f25b835a0f467b6b05fdc030334fe180 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=2E=C3=87a=C4=9Flar=20Onur?= Date: Tue, 25 Oct 2005 11:15:57 +0000 Subject: [PATCH] =?UTF-8?q?configure-pending=20i=C3=A7in=20postpone=20ekle?= =?UTF-8?q?ndi...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit caglar@pardus ~ $ sudo pisi it net-tools-1.60-1.pisi --postpone Yerleştirme sırası: net-tools net-tools, versiyon 1.60, sürüm 1, inşa 0 yerleştiriliyor. net-tools için kaldırma-öncesi betiği çalıştırılıyor. net-tools'in COMAR betikleri kayıttan siliniyor. Dosyalar arşivden çıkartılıyor. files.xml saklanıyor, metadata.xml saklanıyor comar/interface.py saklanıyor COMAR betiği interface.py kayıt ediliyor caglar@pardus ~ $ sudo pisi list-pending net-tools caglar@pardus ~ $ sudo pisi configure-pending digraph G { net_tools[ label = "net-tools(1.60,1)" ]; } net-tools için yerleştirme-sonrası betiği çalıştırılıyor. --- pisi/api.py | 6 ++++++ pisi/atomicoperations.py | 5 +++-- pisi/cli/commands.py | 2 ++ pisi/installdb.py | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pisi/api.py b/pisi/api.py index c4fdeb0f..a4d2b3ab 100644 --- a/pisi/api.py +++ b/pisi/api.py @@ -140,6 +140,12 @@ def package_graph(A, ignore_installed = False): B = Bp return G_f +def postpone(package): + try: + import pisi.comariface as comariface + comariface.register(package) + except ImportError: + raise Error(_("COMAR: comard not fully installed")) def configure_pending(): # start with pending packages diff --git a/pisi/atomicoperations.py b/pisi/atomicoperations.py index 5917d5e9..37674c11 100644 --- a/pisi/atomicoperations.py +++ b/pisi/atomicoperations.py @@ -82,9 +82,10 @@ class Install(AtomicOperation): self.extract_install() self.store_pisi_files() if ctx.comar: - self.register_comar_scripts() import pisi.comariface as comariface - comariface.run_postinstall(self.pkginfo.name) + self.register_comar_scripts() + if not ctx.config.options.postpone: + comariface.run_postinstall(self.pkginfo.name) self.update_databases() self.update_environment() diff --git a/pisi/cli/commands.py b/pisi/cli/commands.py index 38c33297..7ea82b4a 100644 --- a/pisi/cli/commands.py +++ b/pisi/cli/commands.py @@ -336,6 +336,8 @@ class PackageOp(Command): p = self.parser p.add_option("-B", "--ignore-comar", action="store_true", default=False, help=_("bypass comar configuration agent")) + p.add_option("-V", "--postpone", action="store_true", + default=False, help=_("Postpone postinstall script")) ignoredep_opt(self) def init(self): diff --git a/pisi/installdb.py b/pisi/installdb.py index a5a973c2..00bdafbd 100644 --- a/pisi/installdb.py +++ b/pisi/installdb.py @@ -140,7 +140,7 @@ class InstallDB: pkg = str(pkg) if self.is_installed(pkg): raise InstallDBError(_("Already installed")) - if ctx.config.get_option('ignore_comar'): + if ctx.config.get_option('postpone'): state = 'ip' self.dp[pkg] = True else: