From c0082b92379388a523da987c39a74953162d34f8 Mon Sep 17 00:00:00 2001 From: Michael Edward Date: Sun, 24 Mar 2013 10:48:24 -0400 Subject: [PATCH 1/2] Added support for command-line argument to specify directory --- benjen.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/benjen.py b/benjen.py index 95c6a96..c8a5afe 100644 --- a/benjen.py +++ b/benjen.py @@ -9,18 +9,22 @@ def load_all(dir): return {fn[len(dir)+1:] : file(fn, 'r').read() for fn in glob(dir + '/*')} class Benjen(object): - def __init__(self): - self.lookup = TemplateLookup(directories=['templates']) + def __init__(self, entries_dir=None): + if entries_dir is not None: + self.path_prefix = entries_dir + else: + self.path_prefix = '' + self.lookup = TemplateLookup(directories=[self.path_prefix + 'templates']) - self.config = yaml.load(file('config.yaml')) + self.config = yaml.load(file(self.path_prefix + 'config.yaml')) self.out = self.config['path'] if self.out[-1] != '/': self.out += '/' shutil.rmtree(self.out, ignore_errors=True) - shutil.copytree('static', self.out) + shutil.copytree(self.path_prefix + 'static', self.out) - self.load_entries() + self.load_entries(entries_dir) self.generate_indexes() map(self.generate_post, self.entries) @@ -29,8 +33,11 @@ def render(self, name, **kwargs): return self.lookup.get_template('/' + name + '.html').render(**kwargs) title_sub = partial(re.compile(r'[^a-zA-Z0-9_\-]').sub, '_') - def load_entries(self): - raw = load_all('entries') + def load_entries(self, entries_dir): + if entries_dir is not None: + raw = load_all(entries_dir + '/entries') + else: + raw = load_all('entries') self.entries = [] for entry in raw.values(): @@ -85,7 +92,7 @@ def generate_post(self, post): fp.write(self.render('post', post=post)) def main(): - Benjen(*sys.argv[1:]) + Benjen(entries_dir=sys.argv[1]) if __name__=='__main__': main() From 9a3a916b39dd785a26bdea2c6b8d70c1fe29a0e4 Mon Sep 17 00:00:00 2001 From: Michael Edward Date: Sun, 24 Mar 2013 22:35:12 -0400 Subject: [PATCH 2/2] Added daeken's suggestions --- benjen.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/benjen.py b/benjen.py index 593dab1..64914fe 100755 --- a/benjen.py +++ b/benjen.py @@ -12,7 +12,7 @@ def load_all(dir): class Benjen(object): def __init__(self, entries_dir=None): if entries_dir is not None: - self.path_prefix = entries_dir + self.path_prefix = entries_dir + '/' else: self.path_prefix = '' self.lookup = TemplateLookup(directories=[self.path_prefix + 'templates']) @@ -25,7 +25,7 @@ def __init__(self, entries_dir=None): shutil.rmtree(self.out, ignore_errors=True) shutil.copytree(self.path_prefix + 'static', self.out) - self.load_entries(entries_dir) + self.load_entries() self.generate_indexes() map(self.generate_post, self.entries) @@ -34,11 +34,8 @@ def render(self, name, **kwargs): return self.lookup.get_template('/' + name + '.html').render(**kwargs) title_sub = partial(re.compile(r'[^a-zA-Z0-9_\-]').sub, '_') - def load_entries(self, entries_dir): - if entries_dir is not None: - raw = load_all(entries_dir + '/entries') - else: - raw = load_all('entries') + def load_entries(self): + raw = load_all(self.path_prefix + 'entries') self.entries = [] for entry in raw: @@ -95,7 +92,7 @@ def generate_post(self, post): fp.write(self.render('post', post=post)) def main(): - Benjen(entries_dir=sys.argv[1]) + Benjen(*sys.argv[1:]) if __name__=='__main__': main()