yadecli 0.1.3 → 0.1.4

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 (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