Class: Strata::CLI::Generators::Tutorial
- Inherits:
-
Group
- Object
- Thor::Group
- Group
- Strata::CLI::Generators::Tutorial
show all
- Defined in:
- lib/strata/cli/generators/tutorial.rb
Constant Summary
collapse
- TUTORIAL_REPO =
"https://github.com/stratasite/strata-tutorial-project"
- DEFAULT_SERVER =
"http://localhost:8080"
- TUTORIAL_PROJECT =
"strata-tutorial-project"
Constants included
from Output
Output::THEME
Instance Method Summary
collapse
Methods inherited from Group
exit_on_failure?, source_root
Methods included from Output
format, pastel, print_error, #print_error, print_hint, #print_hint, print_info, #print_info, print_status, #print_status, print_success, #print_success, print_warning, #print_warning, shell_for, thor_color
Instance Method Details
#clone_tutorial_repo ⇒ Object
27
28
29
30
31
32
33
34
35
|
# File 'lib/strata/cli/generators/tutorial.rb', line 27
def clone_tutorial_repo
if File.directory?(@uid)
Output.print_status(:skip, "Directory '#{@uid}' already exists ā re-using it", type: :info, context: self)
return
end
Output.print_status(:clone, "Cloning tutorial from #{TUTORIAL_REPO}", type: :success, context: self)
run "git clone #{TUTORIAL_REPO} #{@uid}", verbose: false, capture: true
raise Strata::CommandError, "Failed to clone tutorial repo." unless File.directory?(@uid)
end
|
#completion_message ⇒ Object
65
66
67
68
|
# File 'lib/strata/cli/generators/tutorial.rb', line 65
def completion_message
Output.print_success("\nā Tutorial project '#{@uid}' is ready!\n", context: self)
Output.print_info(" Next: cd #{@uid} && strata deploy --skip-audit\n", context: self)
end
|
#initial_commit ⇒ Object
58
59
60
61
62
63
|
# File 'lib/strata/cli/generators/tutorial.rb', line 58
def initial_commit
inside @uid do
run "git add -A", verbose: false, capture: true
run 'git commit -m "Initial tutorial project setup"', verbose: false, capture: true
end
end
|
#reinitialize_git ⇒ Object
37
38
39
40
41
42
43
|
# File 'lib/strata/cli/generators/tutorial.rb', line 37
def reinitialize_git
inside @uid do
FileUtils.rm_rf(".git")
run "git init -b main", verbose: false, capture: true
create_file ".gitignore", ".strata\n.strata_cli/\n", force: true
end
end
|
#update_project_yml ⇒ Object
51
52
53
54
55
56
|
# File 'lib/strata/cli/generators/tutorial.rb', line 51
def update_project_yml
project_yml = File.join(@uid, "project.yml")
return unless File.exist?(project_yml)
Helpers::ProjectHelper.persist_project_id_to_yml(@project_id, project_yml_path: project_yml)
end
|
#validate_options ⇒ Object
21
22
23
24
25
|
# File 'lib/strata/cli/generators/tutorial.rb', line 21
def validate_options
raise Strata::CommandError, "--api-key (-a) is required." unless options[:api_key]
@uid = TUTORIAL_PROJECT
@project_id = 1
end
|
#write_strata_config ⇒ Object
45
46
47
48
49
|
# File 'lib/strata/cli/generators/tutorial.rb', line 45
def write_strata_config
strata_path = File.join(@uid, ".strata")
File.write(strata_path, "api_key: #{options[:api_key]}\nserver: #{DEFAULT_SERVER}\n")
File.chmod(0o600, strata_path)
end
|