Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
c5eba169
Commit
c5eba169
authored
Dec 25, 2012
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cleanup service tasks
parent
c8ba5c2d
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
128 additions
and
33 deletions
+128
-33
lib/tasks/gitlab/cleanup.rake
lib/tasks/gitlab/cleanup.rake
+128
-0
lib/tasks/gitlab/gitolite_rebuild.rake
lib/tasks/gitlab/gitolite_rebuild.rake
+0
-33
No files found.
lib/tasks/gitlab/cleanup.rake
0 → 100644
View file @
c5eba169
namespace
:gitlab
do
namespace
:cleanup
do
desc
"GITLAB | Cleanup | Clean gitolite config"
task
:config
=>
:environment
do
warn_user_is_not_gitlab
real_repos
=
Project
.
all
.
map
(
&
:path_with_namespace
)
real_repos
<<
"gitolite-admin"
real_repos
<<
"@all"
remove_flag
=
ENV
[
'REMOVE'
]
puts
"Looking for repositories to remove... "
Gitlab
::
GitoliteConfig
.
new
.
apply
do
|
config
|
all_repos
=
[]
garbage_repos
=
[]
all_repos
=
config
.
conf
.
repos
.
keys
garbage_repos
=
all_repos
-
real_repos
garbage_repos
.
each
do
|
repo_name
|
if
remove_flag
config
.
conf
.
rm_repo
(
repo_name
)
print
"to remove..."
.
red
end
puts
repo_name
.
red
end
end
unless
remove_flag
puts
"To cleanup repositories run this command with REMOVE=true"
.
yellow
end
end
desc
"GITLAB | Cleanup | Clean namespaces"
task
:dirs
=>
:environment
do
warn_user_is_not_gitlab
remove_flag
=
ENV
[
'REMOVE'
]
namespaces
=
Namespace
.
pluck
(
:path
)
git_base_path
=
Gitlab
.
config
.
gitolite
.
repos_path
all_dirs
=
Dir
.
glob
(
git_base_path
+
'/*'
)
puts
git_base_path
.
yellow
puts
"Looking for directories to remove... "
all_dirs
.
reject!
do
|
dir
|
# skip if git repo
dir
=~
/.git$/
end
all_dirs
.
reject!
do
|
dir
|
dir_name
=
File
.
basename
dir
# skip if namespace present
namespaces
.
include?
(
dir_name
)
end
all_dirs
.
each
do
|
dir_path
|
if
remove_flag
if
FileUtils
.
rm_rf
dir_path
puts
"Removed...
#{
dir_path
}
"
.
red
else
puts
"Cannot remove
#{
dir_path
}
"
.
red
end
else
puts
"Can be removed:
#{
dir_path
}
"
.
red
end
end
unless
remove_flag
puts
"To cleanup this directories run this command with REMOVE=true"
.
yellow
end
end
desc
"GITLAB | Cleanup | Clean respositories"
task
:repos
=>
:environment
do
warn_user_is_not_gitlab
remove_flag
=
ENV
[
'REMOVE'
]
git_base_path
=
Gitlab
.
config
.
gitolite
.
repos_path
all_dirs
=
Dir
.
glob
(
git_base_path
+
'/*'
)
global_projects
=
Project
.
where
(
namespace_id:
nil
).
pluck
(
:path
)
puts
git_base_path
.
yellow
puts
"Looking for global repos to remove... "
# skip non git repo
all_dirs
.
select!
do
|
dir
|
dir
=~
/.git$/
end
# skip existing repos
all_dirs
.
reject!
do
|
dir
|
repo_name
=
File
.
basename
dir
path
=
repo_name
.
gsub
(
/\.git$/
,
""
)
global_projects
.
include?
(
path
)
end
# skip gitolite admin
all_dirs
.
reject!
do
|
dir
|
repo_name
=
File
.
basename
dir
repo_name
==
'gitolite-admin.git'
end
all_dirs
.
each
do
|
dir_path
|
if
remove_flag
if
FileUtils
.
rm_rf
dir_path
puts
"Removed...
#{
dir_path
}
"
.
red
else
puts
"Cannot remove
#{
dir_path
}
"
.
red
end
else
puts
"Can be removed:
#{
dir_path
}
"
.
red
end
end
unless
remove_flag
puts
"To cleanup this directories run this command with REMOVE=true"
.
yellow
end
end
end
end
lib/tasks/gitlab/gitolite_rebuild.rake
View file @
c5eba169
...
...
@@ -23,38 +23,5 @@ namespace :gitlab do
puts
"...
#{
"done"
.
green
}
"
end
end
desc
"GITLAB | Cleanup gitolite config"
task
:cleanup
=>
:environment
do
warn_user_is_not_gitlab
real_repos
=
Project
.
all
.
map
(
&
:path_with_namespace
)
real_repos
<<
"gitolite-admin"
real_repos
<<
"@all"
remove_flag
=
ENV
[
'REMOVE'
]
puts
"Looking for repositories to remove... "
Gitlab
::
GitoliteConfig
.
new
.
apply
do
|
config
|
all_repos
=
[]
garbage_repos
=
[]
all_repos
=
config
.
conf
.
repos
.
keys
garbage_repos
=
all_repos
-
real_repos
garbage_repos
.
each
do
|
repo_name
|
if
remove_flag
config
.
conf
.
rm_repo
(
repo_name
)
print
"to remove..."
.
red
end
puts
repo_name
.
red
end
end
unless
remove_flag
puts
"To cleanup repositories run this command with REMOVE=true"
.
yellow
end
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment