gritano 0.10.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. data/Gemfile +0 -1
  2. data/Gemfile.lock +0 -2
  3. data/README.rdoc +0 -6
  4. data/TODO +8 -4
  5. data/VERSION +1 -1
  6. data/features/data/local_help.txt +0 -6
  7. data/features/data/remote_commands/admin_help_igorbonadio.txt +0 -6
  8. data/features/data/remote_commands/admin_help_jessicaeto.txt +0 -6
  9. data/features/data/remote_commands/help_igorbonadio.txt +0 -1
  10. data/features/data/remote_commands/help_jessicaeto.txt +0 -1
  11. data/features/data/remote_commands/invalid_command_igorbonadio.txt +0 -1
  12. data/features/data/remote_commands/invalid_command_jessicaeto.txt +0 -1
  13. data/features/data/remote_help.txt +0 -1
  14. data/features/local.feature +0 -10
  15. data/features/remote.feature +0 -12
  16. data/features/step_definitions/local_step.rb +0 -2
  17. data/gritano.gemspec +2 -37
  18. data/lib/gritano.rb +0 -1
  19. data/lib/gritano/console.rb +5 -7
  20. data/lib/gritano/console/executor.rb +0 -16
  21. data/lib/gritano/console/gritano.rb +0 -54
  22. data/lib/gritano/console/remote.rb +0 -5
  23. metadata +3 -51
  24. data/features/data/local_commands/addon_list.txt +0 -5
  25. data/features/data/local_commands/addon_ssh_install.txt +0 -0
  26. data/features/data/local_commands/plugin_add_ssh.txt +0 -1
  27. data/features/data/local_commands/plugin_add_sshs.txt +0 -1
  28. data/features/data/local_commands/plugin_exec_ssh_help.txt +0 -12
  29. data/features/data/local_commands/plugin_exec_ssh_helps.txt +0 -12
  30. data/features/data/local_commands/plugin_exec_sshs_help.txt +0 -1
  31. data/features/data/local_commands/plugin_info_ssh.txt +0 -1
  32. data/features/data/local_commands/plugin_info_sshs.txt +0 -1
  33. data/features/data/local_commands/plugin_list.txt +0 -6
  34. data/features/data/local_commands/plugin_rm_ssh.txt +0 -1
  35. data/features/data/local_commands/plugin_rm_sshs.txt +0 -1
  36. data/features/data/remote_commands/admin_addon_list_igorbonadio.txt +0 -5
  37. data/features/data/remote_commands/admin_addon_list_jessicaeto.txt +0 -1
  38. data/features/data/remote_commands/admin_plugin_exec_ssh_help_igorbonadio.txt +0 -12
  39. data/features/data/remote_commands/admin_plugin_exec_ssh_help_jessicaeto.txt +0 -1
  40. data/features/data/remote_commands/admin_plugin_exec_ssh_helps_igorbonadio.txt +0 -12
  41. data/features/data/remote_commands/admin_plugin_exec_ssh_helps_jessicaeto.txt +0 -1
  42. data/features/data/remote_commands/admin_plugin_exec_sshs_help_igorbonadio.txt +0 -1
  43. data/features/data/remote_commands/admin_plugin_exec_sshs_help_jessicaeto.txt +0 -1
  44. data/features/data/remote_commands/admin_plugin_info_ssh_igorbonadio.txt +0 -1
  45. data/features/data/remote_commands/admin_plugin_info_ssh_jessicaeto.txt +0 -1
  46. data/features/data/remote_commands/admin_plugin_info_sshs_igorbonadio.txt +0 -1
  47. data/features/data/remote_commands/admin_plugin_info_sshs_jessicaeto.txt +0 -1
  48. data/features/data/remote_commands/admin_plugin_list_igorbonadio.txt +0 -6
  49. data/features/data/remote_commands/admin_plugin_list_jessicaeto.txt +0 -1
  50. data/features/data/ssh_help.txt +0 -12
  51. data/lib/gritano/plugin.rb +0 -85
  52. data/lib/gritano/plugin/http.rb +0 -73
  53. data/lib/gritano/plugin/ssh.rb +0 -121
  54. data/spec/plugin_spec.rb +0 -64
  55. data/spec/plugin_ssh_spec.rb +0 -16
data/Gemfile CHANGED
@@ -7,7 +7,6 @@ gem 'activerecord', ">= 3.2.8"
7
7
  gem 'sqlite3', ">= 1.3.6"
8
8
  gem 'grit', ">= 2.5.0"
9
9
  gem 'terminal-table', ">= 1.4.5"
10
- gem "sshd_config"
11
10
  gem 'bcrypt-ruby'
12
11
 
13
12
  # Add dependencies to develop your gem here.
data/Gemfile.lock CHANGED
@@ -55,7 +55,6 @@ GEM
55
55
  simplecov-html (~> 0.7.1)
56
56
  simplecov-html (0.7.1)
57
57
  sqlite3 (1.3.7)
58
- sshd_config (0.1.0)
59
58
  terminal-table (1.4.5)
60
59
  tzinfo (0.3.35)
61
60
 
@@ -74,5 +73,4 @@ DEPENDENCIES
74
73
  rspec (>= 2.11.0)
75
74
  simplecov (>= 0.6.4)
76
75
  sqlite3 (>= 1.3.6)
77
- sshd_config
78
76
  terminal-table (>= 1.4.5)
data/README.rdoc CHANGED
@@ -91,12 +91,6 @@ Starting from Gritano 0.3.0, administrators can execute commands via ssh:
91
91
 
92
92
  $ ssh git@host.com admin:repo:list
93
93
 
94
- == Plugins
95
-
96
- Starting from Gritano 0.7.0, Gritano can be extended by plugins:
97
-
98
- * SSH - It's a patched OpenSSH v6.1p1 used by Gritano that enables SSH lookup for public keys in a database.
99
-
100
94
  == For more Information
101
95
 
102
96
  http://igorbonadio.com.br/gritano
data/TODO CHANGED
@@ -1,7 +1,11 @@
1
- v0.10.3:
2
- configurar o nome do servidor ssh
3
- ☐ permitir usuario ver o repo:info
1
+ v0.12.0:
2
+ mostrar url ssh e https se existir
3
+
4
+ v1.0.0:
5
+ ☐ testar instalação manual (anotar o processo)
6
+ ☐ escrever um manual
7
+ ☐ site
4
8
 
5
9
  futuro:
6
10
  ☐ divulgar
7
- interface gráfica via web
11
+ criar um modulo puppet para instalação
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.10.3
1
+ 0.11.0
@@ -3,11 +3,6 @@
3
3
  Examples:
4
4
  gritano help
5
5
  gritano version
6
- gritano plugin:list
7
- gritano plugin:info plugin_name
8
- gritano plugin:add plugin_name
9
- gritano plugin:rm plugin_name
10
- gritano plugin:exec plugin_name command
11
6
  gritano setup:prepare
12
7
  gritano setup:install
13
8
  gritano user:list
@@ -31,7 +26,6 @@
31
26
  gritano repo:write:add reponame.git username
32
27
  gritano repo:read:rm reponame.git username
33
28
  gritano repo:write:rm reponame.git username
34
- gritano repo:info reponame.git
35
29
 
36
30
  --
37
31
  v{{VERSION}}
@@ -3,11 +3,6 @@
3
3
  Examples:
4
4
  ssh git@host.com admin:help
5
5
  ssh git@host.com admin:version
6
- ssh git@host.com admin:plugin:list
7
- ssh git@host.com admin:plugin:info plugin_name
8
- ssh git@host.com admin:plugin:add plugin_name
9
- ssh git@host.com admin:plugin:rm plugin_name
10
- ssh git@host.com admin:plugin:exec plugin_name command
11
6
  ssh git@host.com admin:setup:prepare
12
7
  ssh git@host.com admin:setup:install
13
8
  ssh git@host.com admin:user:list
@@ -31,7 +26,6 @@
31
26
  ssh git@host.com admin:repo:write:add reponame.git username
32
27
  ssh git@host.com admin:repo:read:rm reponame.git username
33
28
  ssh git@host.com admin:repo:write:rm reponame.git username
34
- ssh git@host.com admin:repo:info reponame.git
35
29
 
36
30
  --
37
31
  v{{VERSION}}
@@ -3,11 +3,6 @@
3
3
  Examples:
4
4
  ssh git@host.com admin:help
5
5
  ssh git@host.com admin:version
6
- ssh git@host.com admin:plugin:list
7
- ssh git@host.com admin:plugin:info plugin_name
8
- ssh git@host.com admin:plugin:add plugin_name
9
- ssh git@host.com admin:plugin:rm plugin_name
10
- ssh git@host.com admin:plugin:exec plugin_name command
11
6
  ssh git@host.com admin:setup:prepare
12
7
  ssh git@host.com admin:setup:install
13
8
  ssh git@host.com admin:user:list
@@ -31,7 +26,6 @@
31
26
  ssh git@host.com admin:repo:write:add reponame.git username
32
27
  ssh git@host.com admin:repo:read:rm reponame.git username
33
28
  ssh git@host.com admin:repo:write:rm reponame.git username
34
- ssh git@host.com admin:repo:info reponame.git
35
29
 
36
30
  --
37
31
  v{{VERSION}}
@@ -5,7 +5,6 @@
5
5
  ssh git@host.com help
6
6
  ssh git@host.com username
7
7
  ssh git@host.com repo:list
8
- ssh git@host.com repo:info reponame
9
8
  ssh git@host.com key:list
10
9
  ssh git@host.com key:add keyname < key.pub
11
10
  ssh git@host.com key:rm keyname
@@ -5,7 +5,6 @@
5
5
  ssh git@host.com help
6
6
  ssh git@host.com username
7
7
  ssh git@host.com repo:list
8
- ssh git@host.com repo:info reponame
9
8
  ssh git@host.com key:list
10
9
  ssh git@host.com key:add keyname < key.pub
11
10
  ssh git@host.com key:rm keyname
@@ -5,7 +5,6 @@
5
5
  ssh git@host.com help
6
6
  ssh git@host.com username
7
7
  ssh git@host.com repo:list
8
- ssh git@host.com repo:info reponame
9
8
  ssh git@host.com key:list
10
9
  ssh git@host.com key:add keyname < key.pub
11
10
  ssh git@host.com key:rm keyname
@@ -5,7 +5,6 @@
5
5
  ssh git@host.com help
6
6
  ssh git@host.com username
7
7
  ssh git@host.com repo:list
8
- ssh git@host.com repo:info reponame
9
8
  ssh git@host.com key:list
10
9
  ssh git@host.com key:add keyname < key.pub
11
10
  ssh git@host.com key:rm keyname
@@ -5,7 +5,6 @@
5
5
  gritano help
6
6
  gritano username
7
7
  gritano repo:list
8
- gritano repo:info reponame
9
8
  gritano key:list
10
9
  gritano key:add keyname < key.pub
11
10
  gritano key:rm keyname
@@ -82,14 +82,4 @@ Feature: Local access
82
82
  | repo:write:rm tmp/gritano.git arybonadio |
83
83
  | repo:write:rm tmp/p-lang.git igorbonadio |
84
84
  | repo:user:list tmp/ruby.git |
85
- | plugin:list |
86
- | plugin:info ssh |
87
- | plugin:add ssh |
88
- | plugin:rm ssh |
89
- | plugin:info sshs |
90
- | plugin:exec ssh help |
91
- | plugin:exec ssh helps |
92
- | plugin:exec sshs help |
93
- | plugin:add sshs |
94
- | plugin:rm sshs |
95
85
 
@@ -107,12 +107,6 @@ Feature: Remote access
107
107
  | admin:repo:write:rm tmp/gritano.git arybonadio |
108
108
  | admin:repo:write:rm tmp/p-lang.git igorbonadio |
109
109
  | admin:repo:user:list tmp/ruby.git |
110
- | admin:plugin:list |
111
- | admin:plugin:info ssh |
112
- | admin:plugin:info sshs |
113
- | admin:plugin:exec ssh help |
114
- | admin:plugin:exec ssh helps |
115
- | admin:plugin:exec sshs help |
116
110
 
117
111
  Scenario Outline: Admin user execute command
118
112
  Given I start the remote console with "igorbonadio"
@@ -174,9 +168,3 @@ Feature: Remote access
174
168
  | admin:repo:write:rm tmp/gritano.git arybonadio |
175
169
  | admin:repo:write:rm tmp/p-lang.git igorbonadio |
176
170
  | admin:repo:user:list tmp/ruby.git |
177
- | admin:plugin:list |
178
- | admin:plugin:info ssh |
179
- | admin:plugin:info sshs |
180
- | admin:plugin:exec ssh help |
181
- | admin:plugin:exec ssh helps |
182
- | admin:plugin:exec sshs help |
@@ -4,8 +4,6 @@ Given /^I start the gritano console$/ do
4
4
  @home_dir = '.'
5
5
  @repo_dir = 'tmp'
6
6
  @console = Gritano::CLI
7
- Gritano::Ssh.any_instance.stub(:add)
8
- Gritano::Ssh.any_instance.stub(:rm)
9
7
  end
10
8
 
11
9
  When /^I execute "(.*?)"$/ do |command|
data/gritano.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "gritano"
8
- s.version = "0.10.3"
8
+ s.version = "0.11.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Igor Bonadio"]
12
- s.date = "2013-05-07"
12
+ s.date = "2013-05-13"
13
13
  s.description = "Gritano is the simplest way to configure your git server over ssh. You can create repositories and manage user access."
14
14
  s.email = "igorbonadio@gmail.com"
15
15
  s.executables = ["gritano", "gritano-pub-key", "gritano-remote"]
@@ -42,18 +42,6 @@ Gem::Specification.new do |s|
42
42
  "db/migrate/006_add_email_to_users.rb",
43
43
  "db/migrate/007_add_password_to_users.rb",
44
44
  "features/data/config_true.yml",
45
- "features/data/local_commands/addon_list.txt",
46
- "features/data/local_commands/addon_ssh_install.txt",
47
- "features/data/local_commands/plugin_add_ssh.txt",
48
- "features/data/local_commands/plugin_add_sshs.txt",
49
- "features/data/local_commands/plugin_exec_ssh_help.txt",
50
- "features/data/local_commands/plugin_exec_ssh_helps.txt",
51
- "features/data/local_commands/plugin_exec_sshs_help.txt",
52
- "features/data/local_commands/plugin_info_ssh.txt",
53
- "features/data/local_commands/plugin_info_sshs.txt",
54
- "features/data/local_commands/plugin_list.txt",
55
- "features/data/local_commands/plugin_rm_ssh.txt",
56
- "features/data/local_commands/plugin_rm_sshs.txt",
57
45
  "features/data/local_commands/repo_add_tmp_jeka_git.txt",
58
46
  "features/data/local_commands/repo_add_tmp_p_lang_git.txt",
59
47
  "features/data/local_commands/repo_add_tmp_p_lang_git_igorbonadio.txt",
@@ -99,22 +87,8 @@ Gem::Specification.new do |s|
99
87
  "features/data/local_commands/user_rm_jose.txt",
100
88
  "features/data/local_commands/version.txt",
101
89
  "features/data/local_help.txt",
102
- "features/data/remote_commands/admin_addon_list_igorbonadio.txt",
103
- "features/data/remote_commands/admin_addon_list_jessicaeto.txt",
104
90
  "features/data/remote_commands/admin_help_igorbonadio.txt",
105
91
  "features/data/remote_commands/admin_help_jessicaeto.txt",
106
- "features/data/remote_commands/admin_plugin_exec_ssh_help_igorbonadio.txt",
107
- "features/data/remote_commands/admin_plugin_exec_ssh_help_jessicaeto.txt",
108
- "features/data/remote_commands/admin_plugin_exec_ssh_helps_igorbonadio.txt",
109
- "features/data/remote_commands/admin_plugin_exec_ssh_helps_jessicaeto.txt",
110
- "features/data/remote_commands/admin_plugin_exec_sshs_help_igorbonadio.txt",
111
- "features/data/remote_commands/admin_plugin_exec_sshs_help_jessicaeto.txt",
112
- "features/data/remote_commands/admin_plugin_info_ssh_igorbonadio.txt",
113
- "features/data/remote_commands/admin_plugin_info_ssh_jessicaeto.txt",
114
- "features/data/remote_commands/admin_plugin_info_sshs_igorbonadio.txt",
115
- "features/data/remote_commands/admin_plugin_info_sshs_jessicaeto.txt",
116
- "features/data/remote_commands/admin_plugin_list_igorbonadio.txt",
117
- "features/data/remote_commands/admin_plugin_list_jessicaeto.txt",
118
92
  "features/data/remote_commands/admin_repo_add_tmp_jeka_git_igorbonadio.txt",
119
93
  "features/data/remote_commands/admin_repo_add_tmp_jeka_git_jessicaeto.txt",
120
94
  "features/data/remote_commands/admin_repo_add_tmp_p_lang_git_igorbonadio.txt",
@@ -222,7 +196,6 @@ Gem::Specification.new do |s|
222
196
  "features/data/remote_commands/version_igorbonadio.txt",
223
197
  "features/data/remote_commands/version_jessicaeto.txt",
224
198
  "features/data/remote_help.txt",
225
- "features/data/ssh_help.txt",
226
199
  "features/install.feature",
227
200
  "features/local.feature",
228
201
  "features/pub_key.feature",
@@ -249,9 +222,6 @@ Gem::Specification.new do |s|
249
222
  "lib/gritano/models/permission.rb",
250
223
  "lib/gritano/models/repository.rb",
251
224
  "lib/gritano/models/user.rb",
252
- "lib/gritano/plugin.rb",
253
- "lib/gritano/plugin/http.rb",
254
- "lib/gritano/plugin/ssh.rb",
255
225
  "spec/cli_spec.rb",
256
226
  "spec/config_spec.rb",
257
227
  "spec/console_base_spec.rb",
@@ -265,8 +235,6 @@ Gem::Specification.new do |s|
265
235
  "spec/model_permission_spec.rb",
266
236
  "spec/model_repository_spec.rb",
267
237
  "spec/model_user_spec.rb",
268
- "spec/plugin_spec.rb",
269
- "spec/plugin_ssh_spec.rb",
270
238
  "spec/spec_helper.rb"
271
239
  ]
272
240
  s.homepage = "http://igorbonadio.com.br/gritano"
@@ -283,7 +251,6 @@ Gem::Specification.new do |s|
283
251
  s.add_runtime_dependency(%q<sqlite3>, [">= 1.3.6"])
284
252
  s.add_runtime_dependency(%q<grit>, [">= 2.5.0"])
285
253
  s.add_runtime_dependency(%q<terminal-table>, [">= 1.4.5"])
286
- s.add_runtime_dependency(%q<sshd_config>, [">= 0"])
287
254
  s.add_runtime_dependency(%q<bcrypt-ruby>, [">= 0"])
288
255
  s.add_development_dependency(%q<rspec>, [">= 2.11.0"])
289
256
  s.add_development_dependency(%q<rdoc>, [">= 3.12"])
@@ -297,7 +264,6 @@ Gem::Specification.new do |s|
297
264
  s.add_dependency(%q<sqlite3>, [">= 1.3.6"])
298
265
  s.add_dependency(%q<grit>, [">= 2.5.0"])
299
266
  s.add_dependency(%q<terminal-table>, [">= 1.4.5"])
300
- s.add_dependency(%q<sshd_config>, [">= 0"])
301
267
  s.add_dependency(%q<bcrypt-ruby>, [">= 0"])
302
268
  s.add_dependency(%q<rspec>, [">= 2.11.0"])
303
269
  s.add_dependency(%q<rdoc>, [">= 3.12"])
@@ -312,7 +278,6 @@ Gem::Specification.new do |s|
312
278
  s.add_dependency(%q<sqlite3>, [">= 1.3.6"])
313
279
  s.add_dependency(%q<grit>, [">= 2.5.0"])
314
280
  s.add_dependency(%q<terminal-table>, [">= 1.4.5"])
315
- s.add_dependency(%q<sshd_config>, [">= 0"])
316
281
  s.add_dependency(%q<bcrypt-ruby>, [">= 0"])
317
282
  s.add_dependency(%q<rspec>, [">= 2.11.0"])
318
283
  s.add_dependency(%q<rdoc>, [">= 3.12"])
data/lib/gritano.rb CHANGED
@@ -5,5 +5,4 @@ require "fileutils"
5
5
  require File.join(ROOT_PATH, '/gritano/models')
6
6
  require File.join(ROOT_PATH, '/gritano/console')
7
7
  require File.join(ROOT_PATH, '/gritano/cli')
8
- require File.join(ROOT_PATH, '/gritano/plugin')
9
8
  require File.join(ROOT_PATH, '/gritano/config')
@@ -8,19 +8,17 @@ module Gritano
8
8
  module Console
9
9
  def Console.remote_console(remote)
10
10
  if remote
11
- Base.bin_name = "ssh #{::Gritano::Ssh.servername} admin:"
12
- Remote.bin_name = "ssh #{::Gritano::Ssh.servername} "
13
- Executor.bin_name = "ssh #{::Gritano::Ssh.servername} admin:"
14
- Gritano.bin_name = "ssh #{::Gritano::Ssh.servername} admin:"
15
- Installer.bin_name = "ssh #{::Gritano::Ssh.servername} admin:"
16
- Plugin.bin_name = "ssh #{::Gritano::Ssh.servername} admin:"
11
+ Base.bin_name = "ssh #{"git@host.com"} admin:"
12
+ Remote.bin_name = "ssh #{"git@host.com"} "
13
+ Executor.bin_name = "ssh #{"git@host.com"} admin:"
14
+ Gritano.bin_name = "ssh #{"git@host.com"} admin:"
15
+ Installer.bin_name = "ssh #{"git@host.com"} admin:"
17
16
  else
18
17
  Base.bin_name = "gritano "
19
18
  Remote.bin_name = "gritano "
20
19
  Executor.bin_name = "gritano "
21
20
  Gritano.bin_name = "gritano "
22
21
  Installer.bin_name = "gritano "
23
- Plugin.bin_name = "gritano "
24
22
  end
25
23
  end
26
24
  end
@@ -319,22 +319,6 @@ module Gritano
319
319
  end
320
320
  return [false, "An error occurred. Permissions was not modified."]
321
321
  end
322
-
323
- add_command "repo:info", "reponame.git" do |argv|
324
- repo_name, = argv
325
- repo = Repository.find_by_name(repo_name)
326
- if repo
327
- msg = Terminal::Table.new do |t|
328
- t << ['ssh', "#{Ssh.servername}:#{repo_name}"]
329
- if ::Gritano::Http.check_install
330
- t << :separator
331
- t << ['http', "#{Http.servername}/#{repo_name}"]
332
- end
333
- end
334
- return [true, msg]
335
- end
336
- return [false, "Repository #{repo_name} doesn't exist."]
337
- end
338
322
 
339
323
  end
340
324
  end
@@ -19,60 +19,6 @@ module Gritano
19
19
  version = "v#{File.open(File.join(File.dirname(__FILE__), '..', '..', '..', 'VERSION')).readlines.join}"
20
20
  [true, version]
21
21
  end
22
-
23
- add_command "plugin:list" do |argv|
24
- msg = Terminal::Table.new do |t|
25
- t << ['plugin', 'installed']
26
- t << :separator
27
- Plugin.list.each do |plugin, params|
28
- t.add_row [plugin, params[:installed].call]
29
- end
30
- end
31
- return [true, msg]
32
- end
33
-
34
- add_command "plugin:info", "plugin_name" do |argv|
35
- name, = argv
36
- begin
37
- return [true, Plugin.list[name][:klass].info]
38
- rescue
39
- return [false, "There isn't a plugin called #{name}"]
40
- end
41
- end
42
-
43
- add_command "plugin:add", "plugin_name" do |argv|
44
- name, = argv
45
- begin
46
- Plugin.list[name][:klass].new.add
47
- return [true, "Plugin #{name} was added"]
48
- rescue
49
- return [false, "There isn't a plugin called #{name}"]
50
- end
51
- end
52
-
53
- add_command "plugin:rm", "plugin_name" do |argv|
54
- name, = argv
55
- begin
56
- Plugin.list[name][:klass].new(@stdin, @home_dir, @repo_path).remove
57
- return [true, "Plugin #{name} was removed"]
58
- rescue
59
- return [false, "There isn't a plugin called #{name}"]
60
- end
61
- end
62
-
63
- add_command "plugin:exec", "plugin_name command" do |argv|
64
- name = argv[0]
65
- params = argv[1..-1]
66
- if Plugin.list[name]
67
- begin
68
- return [true, Plugin.list[name][:klass].new(@stdin, @home_dir, @repo_path).exec(params)]
69
- rescue Exception => e
70
- return [true, Plugin.list[name][:klass].help]
71
- end
72
- else
73
- return [false, "There isn't a plugin called #{name}"]
74
- end
75
- end
76
22
 
77
23
  def method_missing(meth, *args, &block)
78
24
  params = [meth.to_s.gsub("_", ":")] + args[0]
@@ -36,11 +36,6 @@ module Gritano
36
36
  login, = args
37
37
  @executor.execute(["user:repo:list"] + [login])
38
38
  end
39
-
40
- add_command "repo:info", "reponame" do |args|
41
- reponame, login = args
42
- @executor.execute(["repo:info"] + [reponame])
43
- end
44
39
 
45
40
  add_command "key:list" do |args|
46
41
  login, = args
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gritano
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.3
4
+ version: 0.11.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-07 00:00:00.000000000 Z
12
+ date: 2013-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -75,22 +75,6 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: 1.4.5
78
- - !ruby/object:Gem::Dependency
79
- name: sshd_config
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- type: :runtime
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
78
  - !ruby/object:Gem::Dependency
95
79
  name: bcrypt-ruby
96
80
  requirement: !ruby/object:Gem::Requirement
@@ -255,18 +239,6 @@ files:
255
239
  - db/migrate/006_add_email_to_users.rb
256
240
  - db/migrate/007_add_password_to_users.rb
257
241
  - features/data/config_true.yml
258
- - features/data/local_commands/addon_list.txt
259
- - features/data/local_commands/addon_ssh_install.txt
260
- - features/data/local_commands/plugin_add_ssh.txt
261
- - features/data/local_commands/plugin_add_sshs.txt
262
- - features/data/local_commands/plugin_exec_ssh_help.txt
263
- - features/data/local_commands/plugin_exec_ssh_helps.txt
264
- - features/data/local_commands/plugin_exec_sshs_help.txt
265
- - features/data/local_commands/plugin_info_ssh.txt
266
- - features/data/local_commands/plugin_info_sshs.txt
267
- - features/data/local_commands/plugin_list.txt
268
- - features/data/local_commands/plugin_rm_ssh.txt
269
- - features/data/local_commands/plugin_rm_sshs.txt
270
242
  - features/data/local_commands/repo_add_tmp_jeka_git.txt
271
243
  - features/data/local_commands/repo_add_tmp_p_lang_git.txt
272
244
  - features/data/local_commands/repo_add_tmp_p_lang_git_igorbonadio.txt
@@ -312,22 +284,8 @@ files:
312
284
  - features/data/local_commands/user_rm_jose.txt
313
285
  - features/data/local_commands/version.txt
314
286
  - features/data/local_help.txt
315
- - features/data/remote_commands/admin_addon_list_igorbonadio.txt
316
- - features/data/remote_commands/admin_addon_list_jessicaeto.txt
317
287
  - features/data/remote_commands/admin_help_igorbonadio.txt
318
288
  - features/data/remote_commands/admin_help_jessicaeto.txt
319
- - features/data/remote_commands/admin_plugin_exec_ssh_help_igorbonadio.txt
320
- - features/data/remote_commands/admin_plugin_exec_ssh_help_jessicaeto.txt
321
- - features/data/remote_commands/admin_plugin_exec_ssh_helps_igorbonadio.txt
322
- - features/data/remote_commands/admin_plugin_exec_ssh_helps_jessicaeto.txt
323
- - features/data/remote_commands/admin_plugin_exec_sshs_help_igorbonadio.txt
324
- - features/data/remote_commands/admin_plugin_exec_sshs_help_jessicaeto.txt
325
- - features/data/remote_commands/admin_plugin_info_ssh_igorbonadio.txt
326
- - features/data/remote_commands/admin_plugin_info_ssh_jessicaeto.txt
327
- - features/data/remote_commands/admin_plugin_info_sshs_igorbonadio.txt
328
- - features/data/remote_commands/admin_plugin_info_sshs_jessicaeto.txt
329
- - features/data/remote_commands/admin_plugin_list_igorbonadio.txt
330
- - features/data/remote_commands/admin_plugin_list_jessicaeto.txt
331
289
  - features/data/remote_commands/admin_repo_add_tmp_jeka_git_igorbonadio.txt
332
290
  - features/data/remote_commands/admin_repo_add_tmp_jeka_git_jessicaeto.txt
333
291
  - features/data/remote_commands/admin_repo_add_tmp_p_lang_git_igorbonadio.txt
@@ -435,7 +393,6 @@ files:
435
393
  - features/data/remote_commands/version_igorbonadio.txt
436
394
  - features/data/remote_commands/version_jessicaeto.txt
437
395
  - features/data/remote_help.txt
438
- - features/data/ssh_help.txt
439
396
  - features/install.feature
440
397
  - features/local.feature
441
398
  - features/pub_key.feature
@@ -462,9 +419,6 @@ files:
462
419
  - lib/gritano/models/permission.rb
463
420
  - lib/gritano/models/repository.rb
464
421
  - lib/gritano/models/user.rb
465
- - lib/gritano/plugin.rb
466
- - lib/gritano/plugin/http.rb
467
- - lib/gritano/plugin/ssh.rb
468
422
  - spec/cli_spec.rb
469
423
  - spec/config_spec.rb
470
424
  - spec/console_base_spec.rb
@@ -478,8 +432,6 @@ files:
478
432
  - spec/model_permission_spec.rb
479
433
  - spec/model_repository_spec.rb
480
434
  - spec/model_user_spec.rb
481
- - spec/plugin_spec.rb
482
- - spec/plugin_ssh_spec.rb
483
435
  - spec/spec_helper.rb
484
436
  - TODO
485
437
  homepage: http://igorbonadio.com.br/gritano
@@ -497,7 +449,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
497
449
  version: '0'
498
450
  segments:
499
451
  - 0
500
- hash: -1400646238535156968
452
+ hash: -1882815293766482329
501
453
  required_rubygems_version: !ruby/object:Gem::Requirement
502
454
  none: false
503
455
  requirements:
@@ -1,5 +0,0 @@
1
- +---------+
2
- | add-ons |
3
- +---------+
4
- | ssh |
5
- +---------+
File without changes
@@ -1 +0,0 @@
1
- Plugin ssh was added
@@ -1 +0,0 @@
1
- error: There isn't a plugin called sshs
@@ -1,12 +0,0 @@
1
- gritano plugin:exec ssh [command]
2
-
3
- Examples:
4
- gritano plugin:exec ssh help
5
- gritano plugin:exec ssh install gritano_path
6
- gritano plugin:exec ssh start
7
- gritano plugin:exec ssh stop
8
- gritano plugin:exec ssh servername:get
9
- gritano plugin:exec ssh servername:set servername
10
-
11
- --
12
- v{{VERSION}}
@@ -1,12 +0,0 @@
1
- gritano plugin:exec ssh [command]
2
-
3
- Examples:
4
- gritano plugin:exec ssh help
5
- gritano plugin:exec ssh install gritano_path
6
- gritano plugin:exec ssh start
7
- gritano plugin:exec ssh stop
8
- gritano plugin:exec ssh servername:get
9
- gritano plugin:exec ssh servername:set servername
10
-
11
- --
12
- v{{VERSION}}
@@ -1 +0,0 @@
1
- error: There isn't a plugin called sshs
@@ -1 +0,0 @@
1
- It installs a patched OpenSSH version used by Gritano that enables SSH lookup for public keys in a database
@@ -1 +0,0 @@
1
- error: There isn't a plugin called sshs
@@ -1,6 +0,0 @@
1
- +--------+-----------+
2
- | plugin | installed |
3
- +--------+-----------+
4
- | ssh | false |
5
- | http | false |
6
- +--------+-----------+
@@ -1 +0,0 @@
1
- Plugin ssh was removed
@@ -1 +0,0 @@
1
- error: There isn't a plugin called sshs
@@ -1,5 +0,0 @@
1
- +---------+
2
- | add-ons |
3
- +---------+
4
- | ssh |
5
- +---------+
@@ -1 +0,0 @@
1
- error: access denied
@@ -1,12 +0,0 @@
1
- ssh git@host.com admin:plugin:exec ssh [command]
2
-
3
- Examples:
4
- ssh git@host.com admin:plugin:exec ssh help
5
- ssh git@host.com admin:plugin:exec ssh install gritano_path
6
- ssh git@host.com admin:plugin:exec ssh start
7
- ssh git@host.com admin:plugin:exec ssh stop
8
- ssh git@host.com admin:plugin:exec ssh servername:get
9
- ssh git@host.com admin:plugin:exec ssh servername:set servername
10
-
11
- --
12
- v{{VERSION}}
@@ -1 +0,0 @@
1
- error: access denied
@@ -1,12 +0,0 @@
1
- ssh git@host.com admin:plugin:exec ssh [command]
2
-
3
- Examples:
4
- ssh git@host.com admin:plugin:exec ssh help
5
- ssh git@host.com admin:plugin:exec ssh install gritano_path
6
- ssh git@host.com admin:plugin:exec ssh start
7
- ssh git@host.com admin:plugin:exec ssh stop
8
- ssh git@host.com admin:plugin:exec ssh servername:get
9
- ssh git@host.com admin:plugin:exec ssh servername:set servername
10
-
11
- --
12
- v{{VERSION}}
@@ -1 +0,0 @@
1
- error: There isn't a plugin called sshs
@@ -1 +0,0 @@
1
- It installs a patched OpenSSH version used by Gritano that enables SSH lookup for public keys in a database
@@ -1 +0,0 @@
1
- error: access denied
@@ -1 +0,0 @@
1
- error: There isn't a plugin called sshs
@@ -1 +0,0 @@
1
- error: access denied
@@ -1,6 +0,0 @@
1
- +--------+-----------+
2
- | plugin | installed |
3
- +--------+-----------+
4
- | ssh | false |
5
- | http | false |
6
- +--------+-----------+
@@ -1 +0,0 @@
1
- error: access denied
@@ -1,12 +0,0 @@
1
- gritano plugin:exec ssh [command]
2
-
3
- Examples:
4
- gritano plugin:exec ssh help
5
- gritano plugin:exec ssh install gritano_path
6
- gritano plugin:exec ssh start
7
- gritano plugin:exec ssh stop
8
- gritano plugin:exec ssh servername:get
9
- gritano plugin:exec ssh servername:set servername
10
-
11
- --
12
- v{{VERSION}}
@@ -1,85 +0,0 @@
1
- module Gritano
2
- class Plugin
3
-
4
- def initialize(stdin = STDIN, home_dir = Etc.getpwuid.dir, repo_path = Etc.getpwuid.dir)
5
- @stdin = stdin
6
- @home_dir = home_dir
7
- @repo_path = repo_path
8
- @ssh_path = File.join(@home_dir, '.ssh')
9
- end
10
-
11
- def add
12
- on_add
13
- end
14
-
15
- def remove
16
- on_remove
17
- end
18
-
19
- def on_add
20
- raise NotImplementedError
21
- end
22
-
23
- def on_remove
24
- raise NotImplementedError
25
- end
26
-
27
- def exec(cmd)
28
- method = cmd[0].split(':').join('_')
29
- params = cmd[1..-1]
30
- send(method, params)
31
- end
32
-
33
- def self.name
34
- self.to_s.downcase.split('::')[-1]
35
- end
36
-
37
- def self.info
38
- raise NotImplementedError
39
- end
40
-
41
- def self.check_install
42
- false
43
- end
44
-
45
- def self.list
46
- @subclass
47
- end
48
-
49
- def self.inherited(subclass)
50
- @subclass ||= Hash.new
51
- @subclass[subclass.name] = {klass: subclass, installed: lambda { subclass.check_install }}
52
- end
53
-
54
- def self.add_command(command, parameters = "", &block)
55
- define_method(command.gsub(':', '_'), &block)
56
- commands[command] = parameters
57
- end
58
-
59
- def self.commands
60
- @commands || @commands = Hash.new
61
- end
62
-
63
- def self.bin_name=(name)
64
- @bin_name = name
65
- end
66
-
67
- def self.bin_name
68
- @bin_name || "gritano "
69
- end
70
-
71
- def self.help
72
- msg = " #{Plugin.bin_name}plugin:exec #{self.name} [command]\n\n"
73
- msg += " Examples:\n"
74
- commands.each do |command, parameters|
75
- msg += " #{Plugin.bin_name}plugin:exec #{self.name} #{command} #{parameters}\n"
76
- end
77
- msg += "\n --\n v#{File.open(File.join(File.dirname(__FILE__), '..', '..', 'VERSION')).readlines.join}"
78
- msg
79
- end
80
-
81
- end
82
- end
83
-
84
- require File.join(ROOT_PATH, 'gritano/plugin/ssh')
85
- require File.join(ROOT_PATH, 'gritano/plugin/http')
@@ -1,73 +0,0 @@
1
- module Gritano
2
- class Http < Plugin
3
-
4
- def self.info
5
- "TODO"
6
- end
7
-
8
- def on_add
9
- config = Config.new(File.join(@home_dir, '.gritano', 'config.yml'))
10
- config.http = true
11
- config.save
12
- end
13
-
14
- def on_remove
15
- config = Config.new(File.join(@home_dir, '.gritano', 'config.yml'))
16
- config.http = false
17
- config.save
18
- end
19
-
20
- def self.check_install
21
- home = Etc.getpwuid.dir
22
- if File.exist?(File.join(home, '.gritano', 'config.yml'))
23
- config = Config.new(File.join(home, '.gritano', 'config.yml'))
24
- if config.http
25
- return config.http
26
- else
27
- return false
28
- end
29
- else
30
- return false
31
- end
32
- end
33
-
34
- def self.servername
35
- home = Etc.getpwuid.dir
36
- if File.exist?(File.join(home, '.gritano', 'config.yml'))
37
- config = Config.new(File.join(home, '.gritano', 'config.yml'))
38
- if config.http_servername
39
- return config.http_servername
40
- end
41
- end
42
- return "http://git.server.com"
43
- end
44
-
45
- add_command "help" do |params|
46
- Http.help
47
- end
48
-
49
- add_command "install", "install_dir" do |params|
50
- install_dir, = params
51
- puts "[git] Cloning"
52
- if system "git clone git://github.com/igorbonadio/gritano-grack.git #{install_dir}"
53
- puts "Please, edit the gritano-grack/config.yml file to finish your installation."
54
- return "Done"
55
- end
56
- return "error"
57
- end
58
-
59
- add_command "servername:get" do |params|
60
- return Http.servername
61
- end
62
-
63
- add_command "servername:set", "servername" do |params|
64
- servername, = params
65
- home = Etc.getpwuid.dir
66
- config = Config.new(File.join(home, '.gritano', 'config.yml'))
67
- config.http_servername = servername
68
- config.save
69
- return "done!"
70
- end
71
-
72
- end
73
- end
@@ -1,121 +0,0 @@
1
- require "sshd_config"
2
-
3
- module Gritano
4
- class Ssh < Plugin
5
-
6
- def self.info
7
- "It installs a patched OpenSSH version used by Gritano that enables SSH lookup for public keys in a database"
8
- end
9
-
10
- def on_add
11
- config = Config.new(File.join(@home_dir, '.gritano', 'config.yml'))
12
- config.ssh = true
13
- config.save
14
- File.open(File.join(@ssh_path, 'authorized_keys'), "w").write('')
15
- gritano_pub_key_path = `which gritano-pub-key`[0..-2]
16
- `ln -s #{gritano_pub_key_path} #{File.join(@home_dir, '.gritano', 'gritano-pub-key')}`
17
- end
18
-
19
- def on_remove
20
- config = Config.new(File.join(@home_dir, '.gritano', 'config.yml'))
21
- config.ssh = false
22
- config.save
23
- File.open(File.join(@ssh_path, 'authorized_keys'), 'w').write(Key.authorized_keys)
24
- FileUtils.rm(File.join(@home_dir, '.gritano', 'gritano-pub-key')) if File.exist?(File.join(@home_dir, '.gritano', 'gritano-pub-key'))
25
- end
26
-
27
- def self.check_install
28
- home = Etc.getpwuid.dir
29
- if File.exist?(File.join(home, '.gritano', 'config.yml'))
30
- config = Config.new(File.join(home, '.gritano', 'config.yml'))
31
- if config.ssh
32
- return config.ssh
33
- else
34
- return false
35
- end
36
- else
37
- return false
38
- end
39
- end
40
-
41
- def self.servername
42
- home = Etc.getpwuid.dir
43
- if File.exist?(File.join(home, '.gritano', 'config.yml'))
44
- config = Config.new(File.join(home, '.gritano', 'config.yml'))
45
- if config.ssh_servername
46
- return config.ssh_servername
47
- end
48
- end
49
- return "git@host.com"
50
- end
51
-
52
- add_command "help" do |params|
53
- Ssh.help
54
- end
55
-
56
- add_command "install", "gritano_path" do |params|
57
- gritano_dir, = params
58
- FileUtils.rm_rf(File.join('/tmp', 'gritano-openssh')) if Dir.exist?(File.join('/tmp', 'gritano-openssh'))
59
-
60
- puts "[git] Cloning"
61
- if system "git clone git://github.com/igorbonadio/gritano-openssh.git /tmp/gritano-openssh"
62
- puts "[build] Configuring"
63
- if system "cd /tmp/gritano-openssh/src && ./configure"
64
- puts "[build] Compiling"
65
- if system "cd /tmp/gritano-openssh/src && make"
66
- puts "[build] Installing"
67
- if system "cd /tmp/gritano-openssh/src && make install"
68
- sshd_config = SshdConfig::SshdConfig.read(File.join("/usr", "local", "etc", "sshd_config"))
69
- sshd_config.AuthorizedKeysScript = File.join(gritano_dir, 'gritano-pub-key')
70
- sshd_config.save
71
- return "Installed"
72
- end
73
- end
74
- end
75
- end
76
-
77
- return "error"
78
- end
79
-
80
- add_command "start" do |params|
81
- `/usr/local/sbin/sshd`
82
- end
83
-
84
- add_command "stop" do |params|
85
- pid = `ps aux | grep -e /usr/local/sbin/sshd | grep -v grep | tr -s \" \" | cut -d \" \" -f2`
86
- `kill -9 #{pid}`
87
- end
88
-
89
- add_command "servername:get" do |params|
90
- return Ssh.servername
91
- end
92
-
93
- add_command "servername:set", "servername" do |params|
94
- servername, = params
95
- home = Etc.getpwuid.dir
96
- config = Config.new(File.join(home, '.gritano', 'config.yml'))
97
- config.ssh_servername = servername
98
- config.save
99
- return "done!"
100
- end
101
-
102
- def method_missing(name, *args, &body)
103
- case name.to_s
104
- when /^get_/ then
105
- begin
106
- sshd_config = SshdConfig::SshdConfig.read(File.join("/usr", "local", "etc", "sshd_config"))
107
- return sshd_config.send(name.to_s.gsub(/^get_/, ''))
108
- rescue Exception => e
109
- return "invalid property"
110
- end
111
- when /^set_/ then
112
- sshd_config = SshdConfig::SshdConfig.read(File.join("/usr", "local", "etc", "sshd_config"))
113
- sshd_config.send("#{name.to_s.gsub(/^set_/, '')}=", args[0])
114
- sshd_config.save
115
- return "property #{name.to_s.gsub(/^set_/, '')} updated"
116
- end
117
- raise NoMethodError
118
- end
119
-
120
- end
121
- end
data/spec/plugin_spec.rb DELETED
@@ -1,64 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- module Gritano
4
- describe Plugin do
5
- it "should have an on_add method" do
6
- Plugin.new.should respond_to :on_add
7
- end
8
-
9
- it "should have an on_remove method" do
10
- Plugin.new.should respond_to :on_remove
11
- end
12
-
13
- it "should have an exec method" do
14
- Plugin.new.should respond_to :exec
15
- end
16
-
17
- it "should have an info method" do
18
- Plugin.should respond_to :info
19
- end
20
-
21
- it "should raise an NotImplementedError if on_add is not overrided" do
22
- lambda { Plugin.new.on_add }.should raise_error NotImplementedError
23
- end
24
-
25
- it "should raise an NotImplementedError if on_remove is not overrided" do
26
- lambda { Plugin.new.on_remove }.should raise_error NotImplementedError
27
- end
28
-
29
- it "should raise an NotImplementedError if info is not overrided" do
30
- lambda { Plugin.info }.should raise_error NotImplementedError
31
- end
32
-
33
- it "should exec commands" do
34
- plugin = Plugin.new
35
- plugin.should_receive(:config_port).with(["2222"])
36
- plugin.exec("config:port 2222".split(" "))
37
-
38
- plugin.should_receive(:start).with([])
39
- plugin.exec("start".split(" "))
40
- end
41
-
42
- it "should have a ssh pluging" do
43
- Plugin.list['ssh'][:klass].should be == Ssh
44
- Plugin.list['ssh'][:installed].call.should be == false
45
- end
46
-
47
- it "should call on_remove when it receives remove" do
48
- plugin = Plugin.new
49
- plugin.should_receive(:on_remove)
50
- plugin.remove
51
- end
52
-
53
- it "should call on_add when it receives add" do
54
- plugin = Plugin.new
55
- plugin.should_receive(:on_add)
56
- plugin.add
57
- end
58
-
59
- it "should not be installed" do
60
- Plugin.check_install.should be_false
61
- end
62
-
63
- end
64
- end
@@ -1,16 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- module Gritano
4
- describe Ssh do
5
- it "should show information" do
6
- Ssh.info.should be == "It installs a patched OpenSSH version used by Gritano that enables SSH lookup for public keys in a database"
7
- end
8
-
9
- it "should show the help" do
10
- Console.remote_console(false)
11
- Ssh.help.should be == File.open("features/data/ssh_help.txt").readlines.join.
12
- gsub('{{VERSION}}', File.open("VERSION").readlines.join)
13
- end
14
-
15
- end
16
- end