forked from standout/gitosis-web-admin
/
gitosis_admin.rb
37 lines (30 loc) · 1014 Bytes
/
gitosis_admin.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class GitosisAdmin
def initialize
@repository = Git.open(configatron.gitosis_admin_root) #, :log => Logger.new(STDOUT)
@repository.config('user.name', 'Gitosis web admin')
end
def push_config(message)
push(message) do
@repository.add(File.join(configatron.gitosis_admin_root, configatron.gitosis_config))
end
end
def push_key(filename, message)
push(message) do
@repository.add(File.join(configatron.gitosis_admin_root, configatron.gitosis_config))
@repository.add(File.join(configatron.gitosis_admin_root, configatron.gitosis_keydir, filename))
end
end
def remove_key(filename, message)
push(message) do
@repository.add(File.join(configatron.gitosis_admin_root, configatron.gitosis_config))
@repository.remove(File.join(configatron.gitosis_admin_root, configatron.gitosis_keydir, filename))
end
end
private
def push(message)
@repository.pull
yield
@repository.commit(message)
@repository.push
end
end