Delete if parent folder is empty

This commit is contained in:
Mitsuhiro Koga
2017-02-14 12:28:11 +09:00
parent 026f5e2f26
commit ca0302723d
2 changed files with 11 additions and 2 deletions

View File

@@ -129,6 +129,7 @@ trait RepositorySettingsControllerBase extends ControllerBase {
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())
} }
} }
} }
@@ -333,7 +334,7 @@ trait RepositorySettingsControllerBase extends ControllerBase {
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())
} }
} }
} }
@@ -351,7 +352,9 @@ trait RepositorySettingsControllerBase extends ControllerBase {
FileUtils.deleteDirectory(getRepositoryDir(repository.owner, repository.name)) FileUtils.deleteDirectory(getRepositoryDir(repository.owner, repository.name))
FileUtils.deleteDirectory(getWikiRepositoryDir(repository.owner, repository.name)) FileUtils.deleteDirectory(getWikiRepositoryDir(repository.owner, repository.name))
FileUtils.deleteDirectory(getTemporaryDir(repository.owner, repository.name)) FileUtils.deleteDirectory(getTemporaryDir(repository.owner, repository.name))
FileUtils.deleteDirectory(getLfsDir(repository.owner, repository.name)) val lfsDir = getLfsDir(repository.owner, repository.name)
FileUtils.deleteDirectory(lfsDir)
FileUtil.deleteDirectoryIfEmpty(lfsDir.getParentFile())
} }
redirect(s"/${repository.owner}") redirect(s"/${repository.owner}")
}) })

View File

@@ -67,4 +67,10 @@ object FileUtil {
Directory.getLfsDir(owner, repository) + "/" + oid Directory.getLfsDir(owner, repository) + "/" + oid
def readableSize(size: Long): String = FileUtils.byteCountToDisplaySize(size) def readableSize(size: Long): String = FileUtils.byteCountToDisplaySize(size)
def deleteDirectoryIfEmpty(dir: File): Unit = {
if(dir.isDirectory() && dir.list().isEmpty) {
FileUtils.deleteDirectory(dir)
}
}
} }