# Copyright 2010-2015 Lars Wirzenius # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import cliapp import os import shutil import string import time import jtlib class NewTopicCommand(cliapp.Plugin): def enable(self): self.app.add_subcommand('new-topic', self.run) def run(self, args): '''Create a new topic page.''' if len(args) != 2: raise cliapp.AppException( 'Must be given two args (page path, title) (%r)' % args) pathname = self._topic_pathname(args[0]) self._create_topic_page(pathname, args[1]) jtlib.commit_to_git(self.app.settings['source'], [pathname]) if self.app.settings['push']: jtlib.push_git(self.app.settings['source']) def _topic_pathname(self, page_path): return os.path.join(self.app.settings['source'], page_path + '.mdwn') def _create_topic_page(self, pathname, title): dirname = os.path.dirname(pathname) if not os.path.exists(dirname): os.makedirs(dirname) vars = { 'title': title, } rendered_template = self.app.render_template('new_topic.j2', vars) with open(pathname, 'w') as f: f.write(rendered_template)