diff --git a/arch/autorepo/autorepo.xsd b/arch/autorepo/autorepo.xsd new file mode 100644 index 0000000..27622ac --- /dev/null +++ b/arch/autorepo/autorepo.xsd @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/arch/autorepo/build.py b/arch/autorepo/build.py index 7364d6b..5256069 100755 --- a/arch/autorepo/build.py +++ b/arch/autorepo/build.py @@ -3,6 +3,7 @@ # TODO: make as flexible as the :/bin/build.py (flesh out args), logging, etc. import argparse +import datetime import copy import io import os @@ -16,19 +17,18 @@ import warnings ## import gpg import requests +from lxml import etree -# TODO: move pkgs to some kind of list/config file/whatever. # TODO: track which versions are built so we don't need to consistently rebuild ALL packages -# You will probably want to change these. -_dflts = {'pkgs': ['dumpet'], - 'reponame': 'MY_REPO', - 'destdir': '~/pkgs/built', - 'aurbase': 'https://aur.archlinux.org'} +# TODO: should this be a configuration option? +aurbase = 'https://aur.archlinux.org' + +_dflts = {'cfgfile': '~/.config/optools/arch/autorepo.xml'} class Packager(object): - def __init__(self, *args, **kwargs): + def __init__(self, cfgfile = _dflts['cfgfile'], *args, **kwargs): user_params = kwargs self.args = copy.deepcopy(_dflts) self.args.update(user_params) @@ -173,28 +173,10 @@ class Packager(object): def parseArgs(): args = argparse.ArgumentParser(description = 'Build Pacman packages and update a local repository') - args.add_argument('-p', '--package', - dest = 'pkgs', - action = 'append', - help = ('If specified, only build for this package name. Can be specified multiple times. ' - '(Default is hardcoded: {0})').format(', '.join(_dflts['pkgs']))) - args.add_argument('-r', '--repo-name', - dest = 'reponame', - default = _dflts['reponame'], - help = ('The name of the repo. Default: {0}').format(_dflts['reponame'])) - args.add_argument('-d', '--dest-dir', - dest = 'destdir', - default = _dflts['destdir'], - help = ('Where the built packages should go. Default: {0}').format(_dflts['destdir'])) - args.add_argument('-a', '--aur-base', - dest = 'aurbase', - default = _dflts['aurbase'], - help = ('The base URL for AUR. You probably don\'t want to change this. ' - 'Default: {0}').format(_dflts['aurbase'])) - args.add_argument('-A', '--aur-only', - dest = 'auronly', - action = 'store_true', - help = ('If specified, ignore local PKGBUILDs and only build from AUR')) + args.add_argument('-c', '--config', + dest = 'cfgfile', + default = _dflts['cfgfile'], + help = ('The path to the configuration file. Default: {0}').format(_dflts['cfgfile'])) return(args) def main(): diff --git a/arch/autorepo/example.pkgs.xml b/arch/autorepo/example.pkgs.xml new file mode 100644 index 0000000..8942485 --- /dev/null +++ b/arch/autorepo/example.pkgs.xml @@ -0,0 +1,112 @@ + + + + + + + + + /path/to/path + a/relative/path + + /path/to/remote/path + + + + + + somepkg + + pkgnm + pkgnm2 + + + \ No newline at end of file