diff --git a/ckan/cli/cli.py b/ckan/cli/cli.py index 8a01aef82b0..d042ac7d6e4 100644 --- a/ckan/cli/cli.py +++ b/ckan/cli/cli.py @@ -1,6 +1,7 @@ # encoding: utf-8 import logging +import sys import click from ckan.cli import config_tool @@ -43,6 +44,10 @@ def __init__(self, conf=None): @click_config_option @click.pass_context def ckan(ctx, config, *args, **kwargs): + # This is necessary to allow the user to create + # a config file when one isn't already present + if all(arg in sys.argv for arg in ['generate', 'config']): + return ctx.obj = CkanCommand(config) diff --git a/ckan/cli/generate.py b/ckan/cli/generate.py index a8636ce468d..e7973370d7a 100644 --- a/ckan/cli/generate.py +++ b/ckan/cli/generate.py @@ -83,13 +83,17 @@ def extension(output_dir): @generate.command(name=u'config', short_help=u'Create config from template.') @click.option(u'-o', u'--output-dir', help=u'Location to put the generated ' - u'template.', default=u'.') + u'template.') def make_config(output_dir): - if not any(name in output_dir for name in - ['development.ini', 'production.ini']): + names = ['development.ini', 'production.ini'] + + if not any(name in output_dir for name in names): print('\nERROR: File name must be development.ini or production.ini') sys.exit(1) + if output_dir in names: + output_dir = os.getcwd() + '/' + output_dir + cur_loc = os.path.dirname(os.path.abspath(__file__)) os.chdir(cur_loc) os.chdir('../config') @@ -103,7 +107,6 @@ def make_config(output_dir): with open(template_loc, 'r') as file_in: template = string.Template(file_in.read()) - print(output_dir) try: with open(output_dir, 'w') as file_out: