From 6160b6fdcf8eea0d750b74794a938dc3392038e1 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Mar 25 2014 15:03:43 +0000 Subject: Adjust the creation of a project and its fork to create the wiki folder as well --- diff --git a/progit/app.py b/progit/app.py index 63eb18a..edb3bcd 100644 --- a/progit/app.py +++ b/progit/app.py @@ -181,7 +181,8 @@ def new_project(): name=name, description=description, user=flask.g.fas_user.username, - folder=APP.config['GIT_FOLDER'], + gitfolder=APP.config['GIT_FOLDER'], + docfolder=APP.config['WIKI_FOLDER'], ) SESSION.commit() flask.flash(message) diff --git a/progit/fork.py b/progit/fork.py index d337a26..a68690c 100644 --- a/progit/fork.py +++ b/progit/fork.py @@ -266,8 +266,9 @@ def fork_project(repo, username=None): message = progit.lib.fork_project( session=SESSION, repo=repo, - repo_folder=APP.config['GIT_FOLDER'], - fork_folder=APP.config['FORK_FOLDER'], + repofolder=APP.config['GIT_FOLDER'], + forkfolder=APP.config['FORK_FOLDER'], + docfolder=APP.config['WIKI_FOLDER'], user=flask.g.fas_user.username) SESSION.commit() diff --git a/progit/lib.py b/progit/lib.py index bb4a196..7d1fec4 100644 --- a/progit/lib.py +++ b/progit/lib.py @@ -56,11 +56,11 @@ def get_user_project(session, username): return query.all() -def new_project(session, user, name, folder, +def new_project(session, user, name, gitfolder, docfolder, description=None, parent_id=None): ''' Create a new project based on the information provided. ''' - gitrepo = os.path.join(folder, '%s.git' % name) + gitrepo = os.path.join(gitfolder, '%s.git' % name) if os.path.exists(gitrepo): raise progit.exceptions.RepoExistsException( 'The project "%s" already exists' % name @@ -78,6 +78,13 @@ def new_project(session, user, name, folder, pygit2.init_repository(gitrepo, bare=True) + gitrepo = os.path.join(docfolder, project.path) + if os.path.exists(gitrepo): + raise progit.exceptions.RepoExistsException( + 'The wiki "%s" already exists' % project.path + ) + pygit2.init_repository(gitrepo, bare=True) + return 'Project "%s" created' % name @@ -136,7 +143,7 @@ def edit_issue(session, issue, title=None, content=None, status=None): return 'Edited successfully issue #%s' % issue.id -def fork_project(session, user, repo, repo_folder, fork_folder): +def fork_project(session, user, repo, gitfolder, forkfolder, docfolder): ''' Fork a given project into the user's forks. ''' reponame = os.path.join(repo_folder, repo.path) forkreponame = os.path.join(fork_folder, user, repo.path) @@ -157,6 +164,13 @@ def fork_project(session, user, repo, repo_folder, fork_folder): pygit2.clone_repository(reponame, forkreponame, bare=True) + gitrepo = os.path.join(docfolder, project.path) + if os.path.exists(gitrepo): + raise progit.exceptions.RepoExistsException( + 'The wiki "%s" already exists' % project.path + ) + pygit2.init_repository(gitrepo, bare=True) + return 'Repo "%s" cloned to "%s/%s"' % (repo.name, user, repo.name)