return ret;
}
+static PyObject* Archive_get(ArchiveObject* self, PyObject* args) {
+ const char* key = NULL;
+
+ if (!PyArg_ParseTuple(args, "|s", &key))
+ return NULL;
+
+ char* value = pakfire_archive_get(self->archive, key);
+
+ if (!value)
+ Py_RETURN_NONE;
+
+ PyObject* ret = PyUnicode_FromString(value);
+ pakfire_free(value);
+
+ return ret;
+}
+
static struct PyMethodDef Archive_methods[] = {
{
"extract",
METH_VARARGS,
NULL
},
+ {
+ "get",
+ (PyCFunction)Archive_get,
+ METH_VARARGS,
+ NULL
+ },
{
"get_package",
(PyCFunction)Archive_get_package,
pakfire_archive_create;
pakfire_archive_extract;
pakfire_archive_extraction_path;
+ pakfire_archive_get;
pakfire_archive_get_filelist;
pakfire_archive_get_format;
pakfire_archive_get_pakfire;
transaction.run()
def build(self, package, private_network=True, shell=True):
- package = self._prepare_package(package)
- assert package
+ archive = _pakfire.Archive(self.pakfire, package)
- # Setup the environment including any build dependencies
- self.setup(install=package.requires)
-
- def _prepare_package(self, package):
- # Check if the file exists
- if not os.path.exists(package):
- raise FileNotFoundError(package)
+ requires = archive.get("dependencies.requires")
- # Try opening the package
- return packages.open(self.pakfire, None, package)
+ # Setup the environment including any build dependencies
+ self.setup(install=requires.splitlines())
def shell(self, install=[]):
if not util.cli_is_interactive():