diff options
author | Lars Wirzenius <liw@liw.fi> | 2014-01-07 10:02:02 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2014-01-07 10:02:02 +0000 |
commit | c3322c5c3fd72eea276f91619e6b8101a9ea8545 (patch) | |
tree | c94dc1628e5b8160d7315bcf756fd5539c8481ed /create-reference-repo | |
parent | 9f3b948fc0ab14960c2f6a94d6fdabeb0ba5c969 (diff) | |
download | obnam-c3322c5c3fd72eea276f91619e6b8101a9ea8545.tar.gz |
Add option for user to add obnam options
This allows us to run the create-reference-repo script to specify
variations of the repository, for example.
Diffstat (limited to 'create-reference-repo')
-rwxr-xr-x | create-reference-repo | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/create-reference-repo b/create-reference-repo index 85eb514c..27ac6280 100755 --- a/create-reference-repo +++ b/create-reference-repo @@ -36,6 +36,7 @@ Only one command line argument: path to the Obnam executable. import cliapp +import logging import os import shutil import tarfile @@ -51,6 +52,11 @@ class CreateReferenceRepository(cliapp.Application): metavar='CMD', default='./obnam') + self.settings.string_list( + ['obnam-argument', 'a'], + 'add ARG to obnam command line', + metavar='ARG') + def process_args(self, args): if args: raise cliapp.AppException('Wrong command line args') @@ -59,6 +65,9 @@ class CreateReferenceRepository(cliapp.Application): live_dir = os.path.join(tempdir, 'data') repo_dir = os.path.join(tempdir, 'repo') + logging.info('Live data: %s', live_dir) + logging.info('Repository: %s', repo_dir) + # First generation. self.create_live_data(live_dir) self.create_manifest(live_dir, os.path.join(tempdir, 'manifest-1')) @@ -76,30 +85,47 @@ class CreateReferenceRepository(cliapp.Application): self.create_tar_file(tempdir) def create_live_data(self, dirname): + logging.info('Creating live data in %s with funnyfarm', dirname) cliapp.runcmd(['./mkfunnyfarm', dirname]) def modify_live_data(self, dirname): + logging.info('Modifying live data in %s', dirname) filename = os.path.join(dirname, 'new-file.txt') with open(filename, 'w') as f: f.write('This file created for 2nd generation.\n') def create_manifest(self, dirname, manifest_name): + logging.info('Creating manifest of %s in %s', dirname, manifest_name) cliapp.runcmd( ['summain', '--exclude=Ino', '--exclude=Dev', '--exclude=Uid', '--exclude=Username', '--exclude=Gid', '--exclude=Group', '-r', '--output', manifest_name, dirname]) def backup(self, live_dir, repo_dir): + logging.info('Backing up %s to %s', live_dir, repo_dir) env = dict(os.environ) env['GNUPGHOME'] = 'test-gpghome' - # The encryption key is the one in test-gpghome. - cliapp.runcmd( - [self.settings['obnam'], '--no-default-config', '--quiet', - '--weak-random', '--encrypt-with=3B1802F81B321347', - '--compress-with=deflate', '-r', repo_dir, 'backup', live_dir], - env=env) + + argv = [ + self.settings['obnam'], + '--no-default-config', + '--quiet', + '--weak-random', + '--compress-with=deflate', + '-r', repo_dir, + ] + + # This encryption key is the one in test-gpghome. + argv += ['--encrypt-with=3B1802F81B321347'] + + argv += self.settings['obnam-argument'] + argv += ['backup', live_dir] + + logging.info('Command line: %s', repr(argv)) + cliapp.runcmd(argv, env=env) def create_tar_file(self, tempdir): + logging.info('Creating tar file of %s to stdout', tempdir) with tarfile.TarFile(fileobj=self.output, mode='w') as f: for basename in os.listdir(tempdir): pathname = os.path.join(tempdir, basename) |