21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
# File 'lib/yadecli/command/project/project_start_command.rb', line 21
def execute
project_client = Yade::Project::Rest::Client::ProjectClient.new
project = project_client.project_by_name(project_name)
puts " ↳ Name: #{project.name}"
puts " ↳ Home: #{project.home}"
prompt = TTY::Prompt.new
ide_name = if project.ideType == 'IDEA'
'Intellij Idea'
elsif project.ideType == 'RUBYMINE'
'Intellij Rubymine'
else
'Unknown'
end
puts ''
if selection.nil?
answer = prompt.select('What do you want to do?'.colorize(mode: :bold)) do ||
.choice '1) Terminal setup', 1
.choice '2) Multiplexer Terminal setup', 2
if ide_name == 'Unknown'
.choice "3) Start IDE #{ide_name}", 3, disabled: '(n.a.)'
else
.choice "3) Start IDE #{ide_name}", 3
end
.choice '4) Start Editor', 4
.choice '5) Quit', 5
end
else
answer = Integer(selection)
end
result_json = "#{Yade::Common::Config::AppConfig[:yade_home]}/result.json"
case answer
when 1
ProjectStartResponse.new(project: project, project_home: project.home, selection: answer)
.write(result_json)
"Yade project #{project.name} terminal setup successfully"
when 2
tmux_config = prompt.select('Select the tmux profile?'.colorize(mode: :bold)) do ||
Dir.glob("#{project.home}/tmuxinator-*.yml").each do |tmux_config|
.choice File.basename(tmux_config, '.yml')[11..-1], tmux_config
end
end
dir = File.dirname(tmux_config)
FileUtils.ln tmux_config, "#{dir}/.tmuxinator.yml", force: true
ProjectStartResponse.new(project: project, project_home: project.home, selection: answer)
.write(result_json)
"Yade project #{project.name} multiplexer terminal setup successfully"
when 3
puts "Start IDE #{ide_name}"
ProjectStartResponse.new(project: project, project_home: project.home, selection: answer)
.write(result_json)
"Yade project #{project.name} ide started successfully"
when 4
puts 'Start Editor'
ProjectStartResponse.new(project: project, project_home: project.home, selection: answer)
.write(result_json)
"Yade project #{project.name} editor started successfully"
when 5
ProjectStartResponse.new(project: project, project_home: project.home, selection: answer)
.write(result_json)
'Bye'
else
'Unknown'
end
end
|