yadecli 0.1.1
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.
- checksums.yaml +7 -0
- data/.DS_Store +0 -0
- data/.gitignore +13 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +172 -0
- data/LICENSE.txt +21 -0
- data/README.md +43 -0
- data/Rakefile +13 -0
- data/bin/yadecli +10 -0
- data/config-example.yml +14 -0
- data/lib/.DS_Store +0 -0
- data/lib/yadecli/.DS_Store +0 -0
- data/lib/yadecli/cli/application.rb +40 -0
- data/lib/yadecli/cli/composer.rb +68 -0
- data/lib/yadecli/cli/host.rb +28 -0
- data/lib/yadecli/cli/module.rb +24 -0
- data/lib/yadecli/cli/project.rb +42 -0
- data/lib/yadecli/cli/task.rb +21 -0
- data/lib/yadecli/client/authentication_client.rb +24 -0
- data/lib/yadecli/client/base_client.rb +78 -0
- data/lib/yadecli/client/composer_container_client.rb +27 -0
- data/lib/yadecli/client/composer_project_client.rb +27 -0
- data/lib/yadecli/client/composer_service_client.rb +27 -0
- data/lib/yadecli/client/domain_client.rb +23 -0
- data/lib/yadecli/client/host_client.rb +45 -0
- data/lib/yadecli/client/maven_build_step_client.rb +23 -0
- data/lib/yadecli/client/maven_build_task_client.rb +23 -0
- data/lib/yadecli/client/nvm_runtime_client.rb +23 -0
- data/lib/yadecli/client/project_client.rb +28 -0
- data/lib/yadecli/client/project_module_client.rb +35 -0
- data/lib/yadecli/client/pyenv_runtime_client.rb +23 -0
- data/lib/yadecli/client/role_client.rb +23 -0
- data/lib/yadecli/client/rvm_runtime_client.rb +23 -0
- data/lib/yadecli/client/sdk_package_client.rb +28 -0
- data/lib/yadecli/client/vcs_client.rb +23 -0
- data/lib/yadecli/config/app_config.rb +69 -0
- data/lib/yadecli/io/user_input.rb +21 -0
- data/lib/yadecli/model/composer_container.rb +19 -0
- data/lib/yadecli/model/composer_project.rb +30 -0
- data/lib/yadecli/model/composer_service.rb +19 -0
- data/lib/yadecli/model/domain.rb +24 -0
- data/lib/yadecli/model/git_status.rb +8 -0
- data/lib/yadecli/model/host.rb +24 -0
- data/lib/yadecli/model/ide_type.rb +7 -0
- data/lib/yadecli/model/installation_status.rb +7 -0
- data/lib/yadecli/model/maven_build_step.rb +19 -0
- data/lib/yadecli/model/maven_build_task.rb +19 -0
- data/lib/yadecli/model/nvm_runtime.rb +18 -0
- data/lib/yadecli/model/project.rb +26 -0
- data/lib/yadecli/model/project_module.rb +29 -0
- data/lib/yadecli/model/pyenv_runtime.rb +18 -0
- data/lib/yadecli/model/role.rb +24 -0
- data/lib/yadecli/model/rvm_runtime.rb +18 -0
- data/lib/yadecli/model/sdk_package.rb +18 -0
- data/lib/yadecli/model/vcs.rb +19 -0
- data/lib/yadecli/service/authentication_service.rb +31 -0
- data/lib/yadecli/service/build_step_service.rb +24 -0
- data/lib/yadecli/service/build_task_service.rb +70 -0
- data/lib/yadecli/service/composer_service.rb +395 -0
- data/lib/yadecli/service/connect_service.rb +19 -0
- data/lib/yadecli/service/host_service.rb +191 -0
- data/lib/yadecli/service/module_service.rb +78 -0
- data/lib/yadecli/service/project_service.rb +198 -0
- data/lib/yadecli/util/cli_util.rb +22 -0
- data/lib/yadecli/util/file_util.rb +46 -0
- data/lib/yadecli/util/nvm_util.rb +14 -0
- data/lib/yadecli/util/pyenv_util.rb +14 -0
- data/lib/yadecli/util/rvm_util.rb +38 -0
- data/lib/yadecli/util/sdk_util.rb +23 -0
- data/lib/yadecli/util/system_util.rb +22 -0
- data/lib/yadecli/version.rb +3 -0
- data/lib/yadecli.rb +69 -0
- data/scripts/nvm-install-node.sh +6 -0
- data/scripts/rvm-gemset-import.sh +8 -0
- data/scripts/rvm-install-ruby.sh +6 -0
- data/scripts/sdk-install-candidate.sh +6 -0
- data/scripts/setup-terminal.sh +3 -0
- data/scripts/start-ide.sh +3 -0
- data/yadecli.gemspec +55 -0
- metadata +379 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# Host
|
6
|
+
class Host
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :name, :hostName, :ip, :datacenter, :zone, :environmentType, :osType, :isMaster, :domainId, :roleId
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'name', 'hostName', 'ip', 'datacenter', 'zone', 'environmentType', 'osType', 'domainId', 'roleId'
|
14
|
+
|
15
|
+
def attributes=(hash)
|
16
|
+
hash.each do |key, value|
|
17
|
+
send("#{key}=", value)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def attributes
|
22
|
+
instance_values
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# MavenBuildStep
|
6
|
+
class MavenBuildStep
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :command, :profiles, :parameters, :mavenBuildTaskId
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'command', 'mavenBuildTaskId'
|
14
|
+
|
15
|
+
def attributes
|
16
|
+
instance_values
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# MavenBuildTask
|
6
|
+
class MavenBuildTask
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :name, :desc, :profiles, :parameters, :projectModuleId
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'name', 'projectModuleId'
|
14
|
+
|
15
|
+
def attributes
|
16
|
+
instance_values
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# NvmRuntime
|
6
|
+
class NvmRuntime
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :version, :packages
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'version',
|
14
|
+
|
15
|
+
def attributes
|
16
|
+
instance_values
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# Project
|
6
|
+
class Project
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :name, :ideType, :vcsId, :nvmRuntimeId, :rvmRuntimeId, :pyenvRuntimeId
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'name', 'ideType', 'vcsId'
|
14
|
+
|
15
|
+
def attributes
|
16
|
+
instance_values
|
17
|
+
end
|
18
|
+
|
19
|
+
def home
|
20
|
+
"#{File.expand_path('~')}/yade/projects/#{name}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def installed?
|
24
|
+
File.directory?(home)
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# Module
|
6
|
+
class ProjectModule
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :name, :enabled, :languageType, :buildToolType, :vcsId, :projectId
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'name', 'languageType', 'buildToolType', 'vcsId', 'projectId'
|
14
|
+
|
15
|
+
def attributes
|
16
|
+
instance_values
|
17
|
+
end
|
18
|
+
|
19
|
+
def home
|
20
|
+
project_client = Yadecli::Client::ProjectClient.new('yadeproject', 'project')
|
21
|
+
project = project_client.get(projectId)
|
22
|
+
|
23
|
+
"#{project.home}/src/#{name}"
|
24
|
+
end
|
25
|
+
|
26
|
+
def installed?
|
27
|
+
File.directory?(home)
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# PyenvRuntime
|
6
|
+
class PyenvRuntime
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :version, :packages
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'version',
|
14
|
+
|
15
|
+
def attributes
|
16
|
+
instance_values
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# Role
|
6
|
+
class Role
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :name
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'name'
|
14
|
+
|
15
|
+
def attributes=(hash)
|
16
|
+
hash.each do |key, value|
|
17
|
+
send("#{key}=", value)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def attributes
|
22
|
+
instance_values
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# RvmRuntime
|
6
|
+
class RvmRuntime
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :version, :packages
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'version',
|
14
|
+
|
15
|
+
def attributes
|
16
|
+
instance_values
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# SdkPackage
|
6
|
+
class SdkPackage
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :name, :projectId, :version
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'name', 'projectId', 'version'
|
14
|
+
|
15
|
+
def attributes
|
16
|
+
instance_values
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
# Vcs
|
6
|
+
class Vcs
|
7
|
+
include ActiveModel::Model
|
8
|
+
include ActiveModel::Validations
|
9
|
+
include ActiveModel::Serializers::JSON
|
10
|
+
|
11
|
+
attr_accessor :id, :vcsType, :url
|
12
|
+
|
13
|
+
validates_presence_of 'id', 'vcsType', 'url'
|
14
|
+
|
15
|
+
def attributes
|
16
|
+
instance_values
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# yadecli cli
|
4
|
+
module Yadecli
|
5
|
+
module Service
|
6
|
+
|
7
|
+
# connect
|
8
|
+
class AuthenticationService
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@authentication_client = Yadecli::Client::AuthenticationClient.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def login(auth_url, username, password)
|
15
|
+
CliUtil.print_header('Yade Login',
|
16
|
+
["Going to log in user #{username}, password: *** against uaa at #{auth_url}", ''])
|
17
|
+
|
18
|
+
response = @authentication_client.request_token(auth_url, username, password)
|
19
|
+
|
20
|
+
AppConfig[:auth_url] = auth_url
|
21
|
+
AppConfig[:username] = username
|
22
|
+
AppConfig[:password] = password
|
23
|
+
AppConfig[:access_token] = response['access_token']
|
24
|
+
AppConfig[:refresh_token] = response['refresh_token']
|
25
|
+
AppConfig[:expiration_time] = Time.now + response['expires_in']
|
26
|
+
|
27
|
+
AppConfig.write!
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# yadecli cli
|
4
|
+
module Yadecli
|
5
|
+
module Service
|
6
|
+
|
7
|
+
# list
|
8
|
+
class BuildStepService
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@maven_build_step_client = Yadecli::Client::MavenBuildStepClient.new
|
12
|
+
end
|
13
|
+
|
14
|
+
# build
|
15
|
+
def maven_build_steps
|
16
|
+
@maven_build_step_client.list
|
17
|
+
end
|
18
|
+
|
19
|
+
def maven_build_steps_for_task(maven_build_task_id)
|
20
|
+
maven_build_steps.select {|mbs| mbs.mavenBuildTaskId == maven_build_task_id}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# yadecli cli
|
4
|
+
module Yadecli
|
5
|
+
module Service
|
6
|
+
|
7
|
+
# list
|
8
|
+
class BuildTaskService
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@module_client = Yadecli::Client::ProjectModuleClient.new
|
12
|
+
@maven_build_task_client = Yadecli::Client::MavenBuildTaskClient.new
|
13
|
+
@maven_build_step_service = Yadecli::Service::BuildStepService.new
|
14
|
+
end
|
15
|
+
|
16
|
+
# build
|
17
|
+
def maven_build_tasks
|
18
|
+
@maven_build_task_client.list
|
19
|
+
end
|
20
|
+
|
21
|
+
def list(module_name = nil)
|
22
|
+
CliUtil.print_header'YadeCli Tasks List',
|
23
|
+
['Going to list Yade tasks', '']
|
24
|
+
|
25
|
+
puts 'You can run any of these tasks with `yade task run <name>`'
|
26
|
+
puts ''
|
27
|
+
|
28
|
+
if module_name
|
29
|
+
tasks_to_list = maven_build_tasks.select do |mbt|
|
30
|
+
tmodule = @module_client.get(mbt.moduleId)
|
31
|
+
tmodule.name == module_name
|
32
|
+
end
|
33
|
+
else
|
34
|
+
tasks_to_list = maven_build_tasks
|
35
|
+
end
|
36
|
+
|
37
|
+
tasks_to_list.each do |maven_build_task|
|
38
|
+
|
39
|
+
tmodule = @module_client.get(maven_build_task.moduleId)
|
40
|
+
|
41
|
+
print "Task: #{maven_build_task.name}".colorize(:mode => :bold)
|
42
|
+
puts " - #{maven_build_task.desc}"
|
43
|
+
puts " ▶ Module : #{tmodule.name}"
|
44
|
+
puts " ▶ Profiles : #{maven_build_task.profiles}"
|
45
|
+
puts " ▶ Parameters: #{maven_build_task.parameters}"
|
46
|
+
|
47
|
+
puts ''
|
48
|
+
puts 'Build Steps:'
|
49
|
+
|
50
|
+
maven_build_steps = @maven_build_step_service.maven_build_steps_for_task(maven_build_task.id)
|
51
|
+
|
52
|
+
rows = []
|
53
|
+
maven_build_steps.each do |mbs|
|
54
|
+
profiles = mbs.profiles || '-'
|
55
|
+
command = mbs.command
|
56
|
+
parameters = mbs.parameters || '-'
|
57
|
+
|
58
|
+
rows << [profiles, command, parameters]
|
59
|
+
end
|
60
|
+
|
61
|
+
table = TTY::Table.new header: ['Profiles', 'Command', 'Parameters'], rows: rows
|
62
|
+
|
63
|
+
puts table.render(:ascii, width: 80, resize: true, padding: [0, 1])
|
64
|
+
puts ''
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|