123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import os
- import subprocess
- from .pkgbuild import PKGBUILD
- class Package(object):
- def __init__(self, config):
- self.config = config
- @property
- def name(self):
- return self.config["name"]
- @property
- def url(self):
- return self.config.get("url") or "https://aur.archlinux.org/{}.git".format(
- self.name)
- @property
- def path(self):
- return os.path.join(self.config.config.cachedir, self.name)
- @property
- def PKGBUILD(self):
- if not os.path.exists(self.path):
- subprocess.check_call(["git", "clone", self.url],
- cwd=self.config.config.cachedir)
- if not hasattr(self, '_PKGBUILD'):
- path = os.path.join(self.path, 'PKGBUILD')
- self._PKGBUILD = PKGBUILD(path)
- return self._PKGBUILD
- class Repo(object):
- def __init__(self, config):
- self.config = config
- self.packages = []
- for package in self.config["packages"]:
- if isinstance(package, str):
- self.packages.append(Package(dict(name=package)))
- else:
- self.packages.append(Package(package))
- @property
- def name(self):
- return self.config.name
- @property
- def id(self):
- return self.config.id
|