add ability to import packages from diretory (#2)

This commit is contained in:
Evgenii Alekseev 2021-03-21 15:29:30 +03:00
parent 2f2d6c2b70
commit 475afe4e08

View File

@ -27,6 +27,7 @@ from ahriman.core.build_tools.task import Task
from ahriman.core.configuration import Configuration from ahriman.core.configuration import Configuration
from ahriman.core.repository.repository import Repository from ahriman.core.repository.repository import Repository
from ahriman.core.tree import Tree from ahriman.core.tree import Tree
from ahriman.core.util import package_like
from ahriman.models.package import Package from ahriman.models.package import Package
@ -100,6 +101,11 @@ class Application:
''' '''
known_packages = self._known_packages() known_packages = self._known_packages()
def add_directory(path: str) -> None:
for package in filter(package_like, os.listdir(path)):
full_path = os.path.join(path, package)
add_manual(full_path)
def add_manual(name: str) -> str: def add_manual(name: str) -> str:
package = Package.load(name, self.repository.pacman, self.config.get('alpm', 'aur_url')) package = Package.load(name, self.repository.pacman, self.config.get('alpm', 'aur_url'))
path = os.path.join(self.repository.paths.manual, package.base) path = os.path.join(self.repository.paths.manual, package.base)
@ -117,11 +123,13 @@ class Application:
self.add(dependencies.difference(known_packages), without_dependencies) self.add(dependencies.difference(known_packages), without_dependencies)
def process_single(name: str) -> None: def process_single(name: str) -> None:
if not os.path.isfile(name): if os.path.isdir(name):
add_directory(name)
elif os.path.isfile(name):
add_archive(name)
else:
path = add_manual(name) path = add_manual(name)
process_dependencies(path) process_dependencies(path)
else:
add_archive(name)
for name in names: for name in names:
process_single(name) process_single(name)