add ability to add archive as well

This commit is contained in:
2021-03-07 15:35:48 +03:00
parent 550474f790
commit e4317469d1
3 changed files with 15 additions and 4 deletions

View File

@ -71,7 +71,7 @@ def update(args: argparse.Namespace) -> None:
packages = app.get_updates(args.no_aur, args.no_manual, log_fn)
if args.dry_run:
return
app.update(packages) # type: ignore
app.update(packages)
if __name__ == '__main__':
@ -84,7 +84,7 @@ if __name__ == '__main__':
subparsers = parser.add_subparsers(title='command')
add_parser = subparsers.add_parser('add', description='add package')
add_parser.add_argument('package', help='package name', nargs='+')
add_parser.add_argument('package', help='package name or archive path', nargs='+')
add_parser.set_defaults(fn=add)
check_parser = subparsers.add_parser('check', description='check for updates')

View File

@ -19,6 +19,7 @@
#
import logging
import os
import shutil
from typing import Callable, List, Optional
@ -55,11 +56,21 @@ class Application:
return updates
def add(self, names: List[str]) -> None:
for name in names:
def add_manual(name: str) -> None:
package = Package.load(name, self.config.get('aur', 'url'))
task = Task(package, self.architecture, self.config, self.repository.paths)
task.fetch(os.path.join(self.repository.paths.manual, package.name))
def add_archive(src: str) -> None:
dst = os.path.join(self.repository.paths.packages, os.path.basename(src))
shutil.move(src, dst)
for name in names:
if os.path.isfile(name):
add_archive(name)
else:
add_manual(name)
def remove(self, names: List[str]) -> None:
self.repository.process_remove(names)
self._finalize()