95 lines
3.4 KiB
Diff
95 lines
3.4 KiB
Diff
diff -Nuar a/pisi/actionsapi/python3modules.py b/pisi/actionsapi/python3modules.py
|
|
--- a/pisi/actionsapi/python3modules.py 1970-01-01 02:00:00.000000000 +0200
|
|
+++ b/pisi/actionsapi/python3modules.py 2022-12-03 20:18:28.131097916 +0300
|
|
@@ -0,0 +1,90 @@
|
|
+# -*- coding: utf-8 -*-
|
|
+#
|
|
+# Copyright (C) 2005-2010 TUBITAK/UEKAE
|
|
+#
|
|
+# This program is free software; you can redistribute it and/or modify it under
|
|
+# the terms of the GNU General Public License as published by the Free
|
|
+# Software Foundation; either version 2 of the License, or (at your option)
|
|
+# any later version.
|
|
+#
|
|
+# Please read the COPYING file.
|
|
+
|
|
+# standard python modules
|
|
+import os
|
|
+import glob
|
|
+# import installer
|
|
+
|
|
+import gettext
|
|
+__trans = gettext.translation('pisi', fallback=True)
|
|
+_ = __trans.ugettext
|
|
+
|
|
+# Pisi Modules
|
|
+import pisi.context as ctx
|
|
+
|
|
+# ActionsAPI Modules
|
|
+import pisi.actionsapi
|
|
+import pisi.actionsapi.get as get
|
|
+from pisi.actionsapi.shelltools import system, can_access_file, unlink, isEmpty
|
|
+from pisi.actionsapi.pisitools import dodoc
|
|
+
|
|
+class ConfigureError(pisi.actionsapi.Error):
|
|
+ def __init__(self, value=''):
|
|
+ pisi.actionsapi.Error.__init__(self, value)
|
|
+ self.value = value
|
|
+ ctx.ui.error(value)
|
|
+
|
|
+class CompileError(pisi.actionsapi.Error):
|
|
+ def __init__(self, value=''):
|
|
+ pisi.actionsapi.Error.__init__(self, value)
|
|
+ self.value = value
|
|
+ ctx.ui.error(value)
|
|
+
|
|
+class InstallError(pisi.actionsapi.Error):
|
|
+ def __init__(self, value=''):
|
|
+ pisi.actionsapi.Error.__init__(self, value)
|
|
+ self.value = value
|
|
+ ctx.ui.error(value)
|
|
+
|
|
+class RunTimeError(pisi.actionsapi.Error):
|
|
+ def __init__(self, value=''):
|
|
+ pisi.actionsapi.Error.__init__(self, value)
|
|
+ self.value = value
|
|
+ ctx.ui.error(value)
|
|
+
|
|
+def configure(parameters = '', pyVer = '3'):
|
|
+ '''does python setup.py configure'''
|
|
+ if system('python%s -m build --wheel --no-isolation configure %s' % (pyVer, parameters)):
|
|
+ raise ConfigureError, _('Configuration failed.')
|
|
+
|
|
+
|
|
+def compile(parameters = '', pyVer = '3'):
|
|
+ '''compile source with given parameters.'''
|
|
+ if system('python%s -m build --wheel --no-isolation %s' % (pyVer, parameters)):
|
|
+ raise CompileError, _('Make failed.')
|
|
+
|
|
+def install(parameters = '', pyVer = '3'):
|
|
+ '''does python setup.py install'''
|
|
+ if system('python%s -m installer --destdir=%s dist/*.whl %s' % (pyVer, get.installDIR(), parameters)):
|
|
+ raise InstallError, _('Install failed.')
|
|
+
|
|
+ docFiles = ('AUTHORS', 'CHANGELOG', 'CONTRIBUTORS', 'COPYING*', 'COPYRIGHT',
|
|
+ 'Change*', 'KNOWN_BUGS', 'LICENSE', 'MAINTAINERS', 'NEWS',
|
|
+ 'README*', 'PKG-INFO')
|
|
+
|
|
+ for docGlob in docFiles:
|
|
+ for doc in glob.glob(docGlob):
|
|
+ if not isEmpty(doc):
|
|
+ dodoc(doc)
|
|
+
|
|
+def run(parameters = '', pyVer = '3'):
|
|
+ '''executes parameters with python'''
|
|
+ if system('python%s %s' % (pyVer, parameters)):
|
|
+ raise RunTimeError, _('Running %s failed.') % parameters
|
|
+
|
|
+def fixCompiledPy(lookInto = '/usr/lib/%s/' % get.curPYTHON()):
|
|
+ ''' cleans *.py[co] from packages '''
|
|
+ for root, dirs, files in os.walk('%s/%s' % (get.installDIR(),lookInto)):
|
|
+ for compiledFile in files:
|
|
+ if compiledFile.endswith('.pyc') or compiledFile.endswith('.pyo'):
|
|
+ if can_access_file('%s/%s' % (root,compiledFile)):
|
|
+ unlink('%s/%s' % (root,compiledFile))
|