yadecli 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.gitignore +2 -3
  4. data/Gemfile +5 -0
  5. data/Gemfile.lock +44 -2
  6. data/lib/yadecli/cli/application.rb +19 -4
  7. data/lib/yadecli/cli/composer.rb +70 -14
  8. data/lib/yadecli/cli/host.rb +19 -5
  9. data/lib/yadecli/cli/module.rb +14 -3
  10. data/lib/yadecli/cli/project.rb +30 -8
  11. data/lib/yadecli/cli/response/project_start_response.rb +21 -0
  12. data/lib/yadecli/cli/task.rb +9 -5
  13. data/lib/yadecli/client/gitlab_client.rb +4 -6
  14. data/lib/yadecli/command/composer/composer_install_command.rb +166 -0
  15. data/lib/yadecli/command/composer/composer_list_command.rb +63 -0
  16. data/lib/yadecli/command/composer/composer_log_command.rb +53 -0
  17. data/lib/yadecli/command/composer/composer_setup_command.rb +28 -0
  18. data/lib/yadecli/command/composer/composer_start_command.rb +70 -0
  19. data/lib/yadecli/command/composer/composer_stop_command.rb +60 -0
  20. data/lib/yadecli/command/composer/composer_switch_command.rb +51 -0
  21. data/lib/yadecli/command/composer/composer_uninstall_command.rb +44 -0
  22. data/lib/yadecli/command/connect_command.rb +29 -0
  23. data/lib/yadecli/command/host/host_bootstrap_command.rb +132 -0
  24. data/lib/yadecli/command/host/host_list_command.rb +36 -0
  25. data/lib/yadecli/command/host/host_provision_command.rb +59 -0
  26. data/lib/yadecli/command/login_command.rb +26 -0
  27. data/lib/yadecli/command/module/module_install_command.rb +79 -0
  28. data/lib/yadecli/command/module/module_list_command.rb +47 -0
  29. data/lib/yadecli/command/project/project_install_command.rb +58 -0
  30. data/lib/yadecli/command/project/project_list_command.rb +50 -0
  31. data/lib/yadecli/command/project/project_setup_command.rb +66 -0
  32. data/lib/yadecli/command/project/project_start_command.rb +110 -0
  33. data/lib/yadecli/command/project/project_uninstall_command.rb +44 -0
  34. data/lib/yadecli/command/task/task_list_command.rb +56 -0
  35. data/lib/yadecli/io/user_input.rb +1 -1
  36. data/lib/yadecli/util/cli_util.rb +11 -1
  37. data/lib/yadecli/util/maven_util.rb +35 -0
  38. data/lib/yadecli/version.rb +1 -1
  39. data/lib/yadecli.rb +38 -41
  40. data/scripts/setup-terminal.sh +1 -1
  41. data/yadecli.gemspec +6 -2
  42. metadata +81 -46
  43. data/lib/.DS_Store +0 -0
  44. data/lib/yadecli/.DS_Store +0 -0
  45. data/lib/yadecli/client/authentication_client.rb +0 -24
  46. data/lib/yadecli/client/base_client.rb +0 -78
  47. data/lib/yadecli/client/composer_container_client.rb +0 -27
  48. data/lib/yadecli/client/composer_project_client.rb +0 -27
  49. data/lib/yadecli/client/composer_service_client.rb +0 -27
  50. data/lib/yadecli/client/domain_client.rb +0 -23
  51. data/lib/yadecli/client/host_client.rb +0 -45
  52. data/lib/yadecli/client/maven_build_step_client.rb +0 -23
  53. data/lib/yadecli/client/maven_build_task_client.rb +0 -23
  54. data/lib/yadecli/client/nvm_runtime_client.rb +0 -23
  55. data/lib/yadecli/client/project_client.rb +0 -28
  56. data/lib/yadecli/client/project_module_client.rb +0 -35
  57. data/lib/yadecli/client/pyenv_runtime_client.rb +0 -23
  58. data/lib/yadecli/client/role_client.rb +0 -23
  59. data/lib/yadecli/client/rvm_runtime_client.rb +0 -23
  60. data/lib/yadecli/client/sdk_package_client.rb +0 -28
  61. data/lib/yadecli/client/vcs_client.rb +0 -23
  62. data/lib/yadecli/config/app_config.rb +0 -70
  63. data/lib/yadecli/model/composer_container.rb +0 -19
  64. data/lib/yadecli/model/composer_project.rb +0 -37
  65. data/lib/yadecli/model/composer_service.rb +0 -19
  66. data/lib/yadecli/model/domain.rb +0 -24
  67. data/lib/yadecli/model/host.rb +0 -24
  68. data/lib/yadecli/model/ide_type.rb +0 -7
  69. data/lib/yadecli/model/maven_build_step.rb +0 -19
  70. data/lib/yadecli/model/maven_build_task.rb +0 -19
  71. data/lib/yadecli/model/nvm_runtime.rb +0 -18
  72. data/lib/yadecli/model/project.rb +0 -26
  73. data/lib/yadecli/model/project_module.rb +0 -29
  74. data/lib/yadecli/model/pyenv_runtime.rb +0 -18
  75. data/lib/yadecli/model/role.rb +0 -24
  76. data/lib/yadecli/model/rvm_runtime.rb +0 -18
  77. data/lib/yadecli/model/sdk_package.rb +0 -18
  78. data/lib/yadecli/model/vcs.rb +0 -19
  79. data/lib/yadecli/service/authentication_service.rb +0 -31
  80. data/lib/yadecli/service/build_step_service.rb +0 -24
  81. data/lib/yadecli/service/build_task_service.rb +0 -70
  82. data/lib/yadecli/service/composer_service.rb +0 -416
  83. data/lib/yadecli/service/connect_service.rb +0 -19
  84. data/lib/yadecli/service/host_service.rb +0 -191
  85. data/lib/yadecli/service/module_service.rb +0 -78
  86. data/lib/yadecli/service/project_service.rb +0 -205
@@ -1,78 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'tty-table'
4
-
5
- # yadecli cli
6
- module Yadecli
7
- module Service
8
-
9
- # module service
10
- class ModuleService
11
-
12
- def initialize
13
- @project_client = Yadecli::Client::ProjectClient.new
14
- @module_client = Yadecli::Client::ProjectModuleClient.new
15
- @vcs_client = Yadecli::Client::VcsClient.new
16
- end
17
-
18
- # list the available modules for the project
19
- def list(project_name)
20
- CliUtil.print_header'YadeCli List Modules', ["This are the available modules for the Yade project #{project_name}", '']
21
-
22
- project = @project_client.project_by_name(project_name)
23
-
24
- puts "Project: #{project.name}".colorize(:mode => :bold)
25
-
26
- project_modules = @module_client.modules_for_project(project.id)
27
-
28
- rows = []
29
- project_modules.each do |m|
30
- module_name = m.name
31
- is_installed = m.installed?
32
- git_status = '-'
33
- git_status = FileUtil.git_status(m.home) if is_installed
34
- rows << [module_name, is_installed, git_status]
35
- end
36
- table = TTY::Table.new header: ['Module name', 'Installed', 'Git Status'], rows: rows
37
- puts table.render(:ascii, padding: [0, 1])
38
- puts ''
39
-
40
- # puts "You can run 'yadecli module install <project_name> <module_name>' to install the module to the project src directory"
41
- # puts ''
42
- end
43
-
44
- # install the module of a project
45
- def install(project_name, module_name, options)
46
- CliUtil.print_header'YadeCli Install Module',
47
- ["Going to install module #{module_name} for Yade project #{project_name}", '']
48
-
49
- project = @project_client.project_by_name(project_name)
50
- project_module = @module_client.module_for_project(project.id, module_name)
51
- vcs = @vcs_client.get(project_module.vcsId)
52
-
53
- if project_module.installed?
54
- puts "The module with name #{module_name} is already installed"
55
-
56
- if options[:yes]
57
- do_update = true
58
- else
59
- puts ''
60
- prompt = TTY::Prompt.new
61
- do_update = prompt.yes?('Do you want to pull the changes for the project? ')
62
- end
63
- end
64
-
65
- cmd = TTY::Command.new(output: Yadecli.LOGGER)
66
-
67
- if do_update
68
- cmd_line = 'git pull'
69
- cmd.run(cmd_line, chdir: project_module.home)
70
- else
71
- cmd_line = "git clone #{vcs.url} #{project_module.home}"
72
- cmd.run(cmd_line)
73
- end
74
- end
75
-
76
- end
77
- end
78
- end
@@ -1,205 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'tty-table'
4
- require 'tty-prompt'
5
- require 'colorize'
6
-
7
- # yadecli cli
8
- module Yadecli
9
- module Service
10
-
11
- # project
12
- class ProjectService
13
-
14
- def initialize
15
- @project_client = Yadecli::Client::ProjectClient.new
16
- @vcs_client = Yadecli::Client::VcsClient.new
17
- @module_client = Yadecli::Client::ProjectModuleClient.new
18
- @sdk_package_client = Yadecli::Client::SdkPackageClient.new
19
- @rvm_runtime_client = Yadecli::Client::RvmRuntimeClient.new
20
- @nvm_runtime_client = Yadecli::Client::NvmRuntimeClient.new
21
- @pyenv_runtime_client = Yadecli::Client::PyenvRuntimeClient.new
22
- end
23
-
24
- def list
25
- CliUtil.print_header'YadeCli Projects', ['This are the available Yade projects', '']
26
-
27
- projects = @project_client.list
28
-
29
- projects.each do |p|
30
- puts "Project: #{p.name}".colorize(mode: :bold)
31
-
32
- project_modules = @module_client.modules_for_project(p.id)
33
-
34
- rows = []
35
- project_modules.each do |m|
36
- module_name = m.name
37
- is_installed = m.installed?
38
- git_status = '-'
39
- git_status = FileUtil.git_status(m.home) if is_installed
40
-
41
- if is_installed
42
- current_branch = FileUtil.git_current_branch(p.home)
43
- else
44
- current_branch = '-'
45
- end
46
-
47
- rows << [module_name, is_installed, git_status, current_branch]
48
- end
49
- table = TTY::Table.new header: ['Module name', 'Installed', 'Git Status', 'Branch'], rows: rows
50
- puts table.render(:ascii, padding: [0, 1])
51
- puts ''
52
- end
53
-
54
- puts 'You can run \'yadecli project install <project_name>\' to install a project'
55
- puts ''
56
- puts 'You can run \'yadecli module install <project_name> <module_name>\' to install a module to a project'
57
- puts ''
58
- end
59
-
60
- # install a project
61
- def install(project_name, options)
62
- CliUtil.print_header'YadeCli Install Project',
63
- ["Going to install Yade project #{project_name}", '']
64
-
65
- project = @project_client.project_by_name(project_name)
66
- vcs = @vcs_client.get(project.vcsId)
67
-
68
- if project.installed?
69
- puts "The project with name #{project_name} is already installed"
70
-
71
- if options[:yes]
72
- do_update = true
73
- else
74
- puts ''
75
- prompt = TTY::Prompt.new
76
- do_update = prompt.yes?('Do you want to pull the changes for the project? ')
77
- end
78
- end
79
-
80
- cmd = TTY::Command.new(output: Yadecli.LOGGER)
81
-
82
- if do_update
83
- cmd_line = 'git pull'
84
-
85
- cmd.run(cmd_line, chdir: project.home)
86
-
87
- puts ''
88
- puts "Yade project #{project.name} successfully pulled in #{project.home}"
89
- else
90
- cmd_line = "git clone #{vcs.url} #{project.home}"
91
-
92
- cmd.run(cmd_line)
93
-
94
- puts "Yade project #{project.name} successfully installed to #{project.home}"
95
- end
96
-
97
- puts ''
98
- end
99
-
100
- # uninstall a project
101
- def uninstall(project_name, options)
102
- CliUtil.print_header'YadeCli Uninstall Project',
103
- ["Going to uninstall Yade project #{project_name}", '']
104
-
105
- project = @project_client.project_by_name(project_name)
106
-
107
- unless project.installed?
108
- puts "The project with name #{project_name} is not installed"
109
- exit 1
110
- end
111
-
112
- if options[:yes]
113
- really_uninstall = true
114
- else
115
- prompt = TTY::Prompt.new
116
- really_uninstall = prompt.yes?("Do you really want to uninstall the project #{project.name} and all it's modules? ")
117
- end
118
-
119
- FileUtils.rm_rf(project.home) if really_uninstall
120
-
121
- puts ''
122
- puts "Yade project #{project.name} successfully uninstalled from #{project.home}"
123
- end
124
-
125
- # setup a project
126
- def setup(project_name, options)
127
- CliUtil.print_header'YadeCli Project Setup',
128
- ["Going to setup Yade Project #{project_name}"]
129
-
130
- project = @project_client.project_by_name(project_name)
131
-
132
- sdk_packages = @sdk_package_client.sdk_packages_for_project(project.id)
133
-
134
- # sdk
135
- puts ''
136
- puts 'Setup sdk packages:'.colorize(:mode => :bold)
137
- sdk_packages.each do |sdkp|
138
- SdkUtil.install_candidate(sdkp.name, sdkp.version)
139
- end
140
-
141
- # rvm
142
- rvm_runtime = @rvm_runtime_client.get(project.id)
143
- RvmUtil.setup_rvm(project, rvm_runtime)
144
-
145
- # nvm
146
- nvm_runtime = @nvm_runtime_client.get(project.id)
147
- NvmUtil.setup_nvm(project, nvm_runtime)
148
-
149
- # pyenv
150
- pyenv_runtime = @pyenv_runtime_client.get(project.id)
151
- PyenvUtil.setup_pyenv(project, pyenv_runtime)
152
-
153
- end
154
-
155
- # start a project
156
- def start(project_name, options)
157
- CliUtil.print_header'YadeCli Project Start',['Going to start Yade Project']
158
-
159
- project = @project_client.project_by_name(project_name)
160
-
161
- puts " ↳ Name: #{project.name}"
162
- puts " ↳ Home: #{project.home}"
163
-
164
- prompt = TTY::Prompt.new
165
-
166
- ide_name = if project.ideType == 'IDEA'
167
- 'Intellij Idea'
168
- elsif project.ideType == 'RUBYMINE'
169
- 'Intellij Rubymine'
170
- else
171
- 'Unknown'
172
- end
173
-
174
- puts ''
175
- answer = prompt.select('What do you want to do?'.colorize(mode: :bold)) do |menu|
176
- menu.choice '1) Multiplexer Terminal setup', 1
177
- if ide_name == 'Unknown'
178
- menu.choice "2) Start IDE #{ide_name}", 2, disabled: '(n.a.)'
179
- else
180
- menu.choice "2) Start IDE #{ide_name}", 2
181
- end
182
- menu.choice '3) Start Editor', 3
183
- menu.choice '4) Quit', 4
184
- end
185
-
186
- case answer
187
- when 1
188
- puts "111"
189
- when 2
190
- puts "Going to start IDE #{ide_name}"
191
- cmd = TTY::Command.new
192
-
193
- script_path = FileUtil.script_path('start-ide.sh')
194
-
195
- cmd.run("#{script_path} #{project.home}/src")
196
- when 3
197
- puts "333"
198
- else
199
- puts "Unknown"
200
- end
201
- end
202
-
203
- end
204
- end
205
- end