* fix: check lzma return value

* fix: stderr wants PIPE to connect to process
* remove psyclo support, might not be too useful for cli 
which is usually one shot
This commit is contained in:
Eray Özkural
2006-05-26 12:29:48 +00:00
parent 1c2df789a2
commit 1a48fe9fd0
4 changed files with 17 additions and 465 deletions
-6
View File
@@ -70,12 +70,6 @@ Please file a bug report. (http://bugs.uludag.org.tr)"""))
if __name__ == "__main__":
try:
import psyco
psyco.full()
except ImportError:
pass
sys.excepthook = handle_exception
locale.setlocale(locale.LC_ALL, '')
+3 -456
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Project SYSTEM "Project-3.8.dtd">
<!-- Project file for project pisi -->
<!-- Saved: 2006-05-23, 17:02:35 -->
<!-- Saved: 2006-05-25, 16:13:51 -->
<!-- Copyright (C) 2006 PiSi Development Team, -->
<Project version="3.8">
<ProgLanguage mixed="0">Python</ProgLanguage>
@@ -565,459 +565,6 @@
<Dir>pccts</Dir>
<Name>actions.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>atomicoperations.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>comariface.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>specfile.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>package.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>dbshelve.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>__init__.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>build.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>packagedb.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>files.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>environment.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>config.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>index.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>api.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>repodb.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>ui.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>util.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>oo.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>dependency.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>metadata.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>operations.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>pgraph.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>lockeddbshelve.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>context.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>itembyrepodb.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>uri.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>graph.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>component.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>sourcearchive.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>configfile.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>sourcedb.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>installdb.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>constants.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>fetcher.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>file.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>archive.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Name>version.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>cli</Dir>
<Name>pisicli.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>cli</Dir>
<Name>__init__.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>cli</Dir>
<Name>colors.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>cli</Dir>
<Name>commands.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>shelltools.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>variables.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>autotools.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>coreutils.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>pythonmodules.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>perlmodules.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>__init__.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>get.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>pisitoolsfunctions.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>kde.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>pisitools.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>scons.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>actionsapi</Dir>
<Name>libtools.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>pxml</Dir>
<Name>xmlextpiks.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>pxml</Dir>
<Name>autoxml.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>pxml</Dir>
<Name>xmlfilemdom.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>pxml</Dir>
<Name>xmlextmdom.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>pxml</Dir>
<Name>__init__.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>pxml</Dir>
<Name>xmlfile.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>pxml</Dir>
<Name>xmlext.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>pxml</Dir>
<Name>xmlfilecdom.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>pxml</Dir>
<Name>xmlextcdom.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>pxml</Dir>
<Name>xmlfilepiks.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>search</Dir>
<Name>invertedindex.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>search</Dir>
<Name>tokenize.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>search</Dir>
<Name>__init__.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>lib</Dir>
<Dir>pisi</Dir>
<Dir>search</Dir>
<Name>preprocess.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>scripts-2.4</Dir>
<Name>repostats.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>scripts-2.4</Dir>
<Name>find-lib-deps.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>scripts-2.4</Dir>
<Name>update-environ.py</Name>
</Source>
<Source>
<Dir>build</Dir>
<Dir>scripts-2.4</Dir>
<Name>calc-build-order.py</Name>
</Source>
<Source>
<Dir>scripts</Dir>
<Name>lspisi</Name>
@@ -1064,9 +611,9 @@
</Vcs>
<FiletypeAssociations>
<FiletypeAssociation pattern="*.ui.h" type="FORMS" />
<FiletypeAssociation pattern="*.ptl" type="SOURCES" />
<FiletypeAssociation pattern="*.idl" type="INTERFACES" />
<FiletypeAssociation pattern="*.ui" type="FORMS" />
<FiletypeAssociation pattern="*.idl" type="INTERFACES" />
<FiletypeAssociation pattern="*.ptl" type="SOURCES" />
<FiletypeAssociation pattern="*.py" type="SOURCES" />
</FiletypeAssociations>
</Project>
+9 -2
View File
@@ -31,6 +31,9 @@ import pisi.context as ctx
class ArchiveError(pisi.Error):
pass
class LZMAError(pisi.Error):
def __init__(self, err):
pisi.Error.__init__(self, _("An error has occured while running LZMA:\n%s") % err)
class ArchiveBase(object):
"""Base class for Archive classes."""
@@ -88,7 +91,9 @@ class ArchiveTar(ArchiveBase):
elif self.type == 'tarlzma':
rmode = 'r:'
self.file_path = self.file_path.rstrip('.lzma')
util.run_batch("lzma d %s %s" % (self.file_path + '.lzma', self.file_path))
ret, out, err = util.run_batch("lzma d %s %s" % (self.file_path + '.lzma', self.file_path))
if ret != 0:
raise LZMAError(err)
else:
raise ArchiveError(_("Archive type not recognized"))
@@ -122,7 +127,9 @@ class ArchiveTar(ArchiveBase):
self.tar.close()
if self.tar.mode == 'wb' and self.type == 'tarlzma':
util.run_batch("lzma e -a2 -d26 -fb64 %s %s" % (self.file_path, self.file_path + '.lzma'))
ret, out, err = util.run_batch("lzma e -a2 -d26 -fb64 %s %s" % (self.file_path, self.file_path + '.lzma'))
if ret != 0:
raise LZMAError(err)
class ArchiveZip(ArchiveBase):
"""ArchiveZip handles zip archives.
+5 -1
View File
@@ -139,6 +139,10 @@ def human_readable_rate(size = 0):
# Process Releated Functions #
##############################
#FIXME: the added flags make out and err defunct, they should be
#split to another function if needed, this function runs a command
#noninteractively, then returns return value, standard output and
# error. the return spec must not change.
def run_batch(cmd, realtime = False):
"""run command non-interactively/realtime and report return value and output"""
ctx.ui.info(_('Running ') + cmd, verbose=True)
@@ -151,7 +155,7 @@ def run_batch(cmd, realtime = False):
if ctx.stderr:
stderr = ctx.stderr
else:
stderr = subprocess.STDOUT
stderr = subprocess.PIPE
out = err = ""
p = subprocess.Popen(cmd, shell=True, stdout=stdout, stderr=stderr)