Tweak directory processing

This commit is contained in:
Naoki Takezoe
2017-02-14 16:57:51 +09:00
parent da64cf8800
commit ee65ae3e49
2 changed files with 29 additions and 11 deletions

View File

@@ -119,19 +119,24 @@ trait RepositorySettingsControllerBase extends ControllerBase {
renameRepository(repository.owner, repository.name, repository.owner, form.repositoryName) renameRepository(repository.owner, repository.name, repository.owner, form.repositoryName)
// Move git repository // Move git repository
defining(getRepositoryDir(repository.owner, repository.name)){ dir => defining(getRepositoryDir(repository.owner, repository.name)){ dir =>
if(dir.isDirectory){
FileUtils.moveDirectory(dir, getRepositoryDir(repository.owner, form.repositoryName)) FileUtils.moveDirectory(dir, getRepositoryDir(repository.owner, form.repositoryName))
} }
}
// Move wiki repository // Move wiki repository
defining(getWikiRepositoryDir(repository.owner, repository.name)){ dir => defining(getWikiRepositoryDir(repository.owner, repository.name)){ dir =>
if(dir.isDirectory) {
FileUtils.moveDirectory(dir, getWikiRepositoryDir(repository.owner, form.repositoryName)) FileUtils.moveDirectory(dir, getWikiRepositoryDir(repository.owner, form.repositoryName))
} }
}
// Move lfs directory // Move lfs directory
defining(getLfsDir(repository.owner, repository.name)){ dir => defining(getLfsDir(repository.owner, repository.name)){ dir =>
if(dir.isDirectory()) { if(dir.isDirectory) {
FileUtils.moveDirectory(dir, getLfsDir(repository.owner, form.repositoryName)) FileUtils.moveDirectory(dir, getLfsDir(repository.owner, form.repositoryName))
FileUtil.deleteDirectoryIfEmpty(dir.getParentFile())
} }
} }
// Delete parent directory
FileUtil.deleteDirectoryIfEmpty(getRepositoryFilesDir(repository.owner, repository.name))
} }
flash += "info" -> "Repository settings has been updated." flash += "info" -> "Repository settings has been updated."
redirect(s"/${repository.owner}/${form.repositoryName}/settings/options") redirect(s"/${repository.owner}/${form.repositoryName}/settings/options")
@@ -324,19 +329,24 @@ trait RepositorySettingsControllerBase extends ControllerBase {
renameRepository(repository.owner, repository.name, form.newOwner, repository.name) renameRepository(repository.owner, repository.name, form.newOwner, repository.name)
// Move git repository // Move git repository
defining(getRepositoryDir(repository.owner, repository.name)){ dir => defining(getRepositoryDir(repository.owner, repository.name)){ dir =>
if(dir.isDirectory){
FileUtils.moveDirectory(dir, getRepositoryDir(form.newOwner, repository.name)) FileUtils.moveDirectory(dir, getRepositoryDir(form.newOwner, repository.name))
} }
}
// Move wiki repository // Move wiki repository
defining(getWikiRepositoryDir(repository.owner, repository.name)){ dir => defining(getWikiRepositoryDir(repository.owner, repository.name)){ dir =>
if(dir.isDirectory) {
FileUtils.moveDirectory(dir, getWikiRepositoryDir(form.newOwner, repository.name)) FileUtils.moveDirectory(dir, getWikiRepositoryDir(form.newOwner, repository.name))
} }
}
// Move lfs directory // Move lfs directory
defining(getLfsDir(repository.owner, repository.name)){ dir => defining(getLfsDir(repository.owner, repository.name)){ dir =>
if(dir.isDirectory()) { if(dir.isDirectory()) {
FileUtils.moveDirectory(dir, getLfsDir(form.newOwner, repository.name)) FileUtils.moveDirectory(dir, getLfsDir(form.newOwner, repository.name))
FileUtil.deleteDirectoryIfEmpty(dir.getParentFile())
} }
} }
// Delere parent directory
FileUtil.deleteDirectoryIfEmpty(getRepositoryFilesDir(repository.owner, repository.name))
} }
} }
redirect(s"/${form.newOwner}/${repository.name}") redirect(s"/${form.newOwner}/${repository.name}")

View File

@@ -42,22 +42,29 @@ object Directory {
def getRepositoryDir(owner: String, repository: String): File = def getRepositoryDir(owner: String, repository: String): File =
new File(s"${RepositoryHome}/${owner}/${repository}.git") new File(s"${RepositoryHome}/${owner}/${repository}.git")
/**
* Directory for repository files.
*/
def getRepositoryFilesDir(owner: String, repository: String): File =
new File(s"${RepositoryHome}/${owner}/${repository}")
/** /**
* Directory for files which are attached to issue. * Directory for files which are attached to issue.
*/ */
def getAttachedDir(owner: String, repository: String): File = def getAttachedDir(owner: String, repository: String): File =
new File(s"${RepositoryHome}/${owner}/${repository}/comments") new File(getRepositoryFilesDir(owner, repository), "comments")
/** /**
* Directory for files which are attached to issue. * Directory for files which are attached to issue.
*/ */
def getLfsDir(owner: String, repository: String): File = def getLfsDir(owner: String, repository: String): File =
new File(s"${RepositoryHome}/${owner}/${repository}/lfs") new File(getRepositoryFilesDir(owner, repository), "lfs")
/** /**
* Directory for uploaded files by the specified user. * Directory for uploaded files by the specified user.
*/ */
def getUserUploadDir(userName: String): File = new File(s"${GitBucketHome}/data/${userName}/files") def getUserUploadDir(userName: String): File =
new File(s"${GitBucketHome}/data/${userName}/files")
/** /**
* Root of temporary directories for the upload file. * Root of temporary directories for the upload file.
@@ -74,7 +81,8 @@ object Directory {
/** /**
* Root of plugin cache directory. Plugin repositories are cloned into this directory. * Root of plugin cache directory. Plugin repositories are cloned into this directory.
*/ */
def getPluginCacheDir(): File = new File(s"${TemporaryHome}/_plugins") def getPluginCacheDir(): File =
new File(s"${TemporaryHome}/_plugins")
/** /**
* Substance directory of the wiki repository. * Substance directory of the wiki repository.