| createrepo: Implement --dbpath command line option |
| |
| --dbpath option allows to specify path to the directory |
| with rpm database. By default createrepo uses or creates |
| rpm database in /var/lib/rpm/ |
| |
| Upstream-Status: Pending |
| |
| Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> |
| |
| --- createrepo-0.4.11.orig/genpkgmetadata.py 2015-03-30 22:18:19.904000000 +0300 |
| +++ createrepo-0.4.11/genpkgmetadata.py 2015-03-30 22:28:49.208000000 +0300 |
| @@ -65,6 +65,7 @@ |
| -p, --pretty = output xml files in pretty format. |
| --update = update existing metadata (if present) |
| -d, --database = generate the sqlite databases. |
| + --dbpath <dir> = specify path to rpm db directory. |
| """) |
| |
| sys.exit(retval) |
| @@ -72,10 +73,13 @@ |
| class MetaDataGenerator: |
| def __init__(self, cmds): |
| self.cmds = cmds |
| - self.ts = rpm.TransactionSet() |
| self.pkgcount = 0 |
| self.files = [] |
| |
| + if self.cmds['dbpath']: |
| + rpm.addMacro("_dbpath", self.cmds['dbpath']) |
| + self.ts = rpm.TransactionSet() |
| + |
| def _os_path_walk(self, top, func, arg): |
| """Directory tree walk with callback function. |
| copy of os.path.walk, fixes the link/stating problem |
| @@ -435,6 +439,7 @@ |
| cmds['dir-pattern-match'] = ['.*bin\/.*', '^\/etc\/.*'] |
| cmds['skip-symlinks'] = False |
| cmds['pkglist'] = [] |
| + cmds['dbpath'] = None |
| |
| try: |
| gopts, argsleft = getopt.getopt(args, 'phqVvndg:s:x:u:c:o:CSi:', ['help', 'exclude=', |
| @@ -442,7 +447,7 @@ |
| 'baseurl=', 'groupfile=', 'checksum=', |
| 'version', 'pretty', 'split', 'outputdir=', |
| 'noepoch', 'checkts', 'database', 'update', |
| - 'skip-symlinks', 'pkglist=']) |
| + 'skip-symlinks', 'pkglist=', 'dbpath=']) |
| except getopt.error, e: |
| errorprint(_('Options Error: %s.') % e) |
| usage() |
| @@ -516,6 +521,8 @@ |
| cmds['skip-symlinks'] = True |
| elif arg in ['-i', '--pkglist']: |
| cmds['pkglist'] = a |
| + elif arg == '--dbpath': |
| + cmds['dbpath'] = os.path.realpath(a) |
| |
| except ValueError, e: |
| errorprint(_('Options Error: %s') % e) |