summaryrefslogtreecommitdiff
path: root/create-reference-repo
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2014-01-07 10:02:02 +0000
committerLars Wirzenius <liw@liw.fi>2014-01-07 10:02:02 +0000
commitc3322c5c3fd72eea276f91619e6b8101a9ea8545 (patch)
treec94dc1628e5b8160d7315bcf756fd5539c8481ed /create-reference-repo
parent9f3b948fc0ab14960c2f6a94d6fdabeb0ba5c969 (diff)
downloadobnam-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-xcreate-reference-repo38
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)