diff --git a/src/allmydata/cli/grid_manager.py b/src/allmydata/cli/grid_manager.py index d937c0f30..d07e2d412 100644 --- a/src/allmydata/cli/grid_manager.py +++ b/src/allmydata/cli/grid_manager.py @@ -75,13 +75,14 @@ def create(ctx): fp = None if config_location != '-': fp = FilePath(config_location) - if fp.exists(): - raise click.ClickException( - "The directory '{}' already exists.".format(config_location) - ) gm = create_grid_manager() - save_grid_manager(fp, gm) + try: + save_grid_manager(fp, gm) + except OSError as e: + raise click.ClickException( + "Can't create '{}': {}".format(config_location, e) + ) @grid_manager.command() diff --git a/src/allmydata/grid_manager.py b/src/allmydata/grid_manager.py index d753295ab..df0a46e6d 100644 --- a/src/allmydata/grid_manager.py +++ b/src/allmydata/grid_manager.py @@ -269,7 +269,8 @@ def save_grid_manager(file_path, grid_manager): if file_path is None: print("{}\n".format(data)) else: - fileutil.make_dirs(file_path.path, mode=0o700) + file_path.makedirs() + file_path.chmod(0o700) with file_path.child("config.json").open("w") as f: f.write("{}\n".format(data))