hippo-cli 1.1.2 → 1.2.0
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/bin/hippo +1 -1
- data/cli/apply_config.rb +0 -4
- data/cli/apply_services.rb +0 -4
- data/cli/console.rb +0 -4
- data/cli/create.rb +9 -13
- data/cli/deploy.rb +0 -4
- data/cli/install.rb +0 -4
- data/cli/key.rb +1 -4
- data/cli/kubectl.rb +0 -4
- data/cli/logs.rb +0 -4
- data/cli/objects.rb +0 -4
- data/cli/package_install.rb +0 -4
- data/cli/package_list.rb +0 -4
- data/cli/package_notes.rb +0 -4
- data/cli/package_test.rb +0 -4
- data/cli/package_uninstall.rb +0 -4
- data/cli/package_upgrade.rb +0 -4
- data/cli/package_values.rb +0 -4
- data/cli/prepare.rb +0 -4
- data/cli/readme.rb +18 -0
- data/cli/run.rb +0 -4
- data/cli/secrets.rb +0 -4
- data/cli/setup.rb +71 -0
- data/cli/stages.rb +4 -7
- data/cli/status.rb +0 -4
- data/cli/tidy.rb +33 -0
- data/cli/update.rb +22 -0
- data/cli/vars.rb +0 -4
- data/lib/hippo/cli.rb +31 -27
- data/lib/hippo/image.rb +1 -0
- data/lib/hippo/manifest.rb +13 -17
- data/lib/hippo/repository_tag.rb +3 -2
- data/lib/hippo/secret_manager.rb +20 -19
- data/lib/hippo/stage.rb +75 -39
- data/lib/hippo/util.rb +61 -1
- data/lib/hippo/version.rb +1 -1
- data/lib/hippo/working_directory.rb +180 -0
- data/lib/hippo.rb +7 -0
- data/template/Hippofile +1 -2
- data.tar.gz.sig +0 -0
- metadata +7 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8b14eb5652ec29878ff1d7ccf48685ed7ea0d6c345587e16cd237ebcdf42609
|
4
|
+
data.tar.gz: f180aef6e85fc1cb857dfef0578e2a3a14c3c5e6cc89b3808b07c7e150d8f35d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26f0e6b8e35bcf6bdb751b00faff8be463d28c36dcff91640e67c90f2c99f9cafccd3c37ceb354170e8f654e1841d9915a06597abc48ad3477de83ada8453942
|
7
|
+
data.tar.gz: be4e0bc1f4180726bee41aece0f947882f9c37006a776107b073dcc6bab0be9525a86c5750e92d119b48622e7a55e91c7713422c4f0def824f9dd8424396025c
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/bin/hippo
CHANGED
@@ -8,7 +8,7 @@ require 'hippo/error'
|
|
8
8
|
require 'hippo/version'
|
9
9
|
require 'swamp/cli'
|
10
10
|
|
11
|
-
COMMANDS_WITHOUT_STAGE = %w[help init version stages].freeze
|
11
|
+
COMMANDS_WITHOUT_STAGE = %w[help init version stages update setup].freeze
|
12
12
|
|
13
13
|
begin
|
14
14
|
cli = Swamp::CLI.new(:hippo, version: Hippo::VERSION)
|
data/cli/apply_config.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :'apply-config' do
|
4
4
|
desc 'Apply configuration'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
action do |context|
|
11
7
|
require 'hippo/cli'
|
12
8
|
cli = Hippo::CLI.setup(context)
|
data/cli/apply_services.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :'apply-services' do
|
4
4
|
desc 'Apply service configuration'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
action do |context|
|
11
7
|
require 'hippo/cli'
|
12
8
|
cli = Hippo::CLI.setup(context)
|
data/cli/console.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :console do
|
4
4
|
desc 'Open a console based on the configuration'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '-d', '--deployment [NAME]', 'The name of the deployment to use' do |value, options|
|
11
7
|
options[:deployment] = value.to_s
|
12
8
|
end
|
data/cli/create.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :create do
|
4
4
|
desc 'Create a new stage'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '-n', '--namespace [NAMESPACE]', 'The namespace for the new stage' do |value, options|
|
11
7
|
options[:namespace] = value
|
12
8
|
end
|
@@ -21,10 +17,10 @@ command :create do
|
|
21
17
|
|
22
18
|
action do |context|
|
23
19
|
require 'hippo/manifest'
|
24
|
-
|
20
|
+
wd = Hippo::WorkingDirectory.new
|
25
21
|
|
26
22
|
stage_name = CURRENT_STAGE
|
27
|
-
stage_path = File.join(
|
23
|
+
stage_path = File.join(wd.root, stage_name, 'config.yaml')
|
28
24
|
|
29
25
|
if !context.options[:force] && File.file?(stage_path)
|
30
26
|
puts "\e[31mA stage named '#{stage_name}' already exists. Use --force to overwrite configuration.\e[0m"
|
@@ -35,7 +31,7 @@ command :create do
|
|
35
31
|
|
36
32
|
namespace = context.options[:namespace]
|
37
33
|
if namespace.nil?
|
38
|
-
namespace = Hippo::Util.ask('Enter a namespace for this stage', default: "#{manifest.name}-#{stage_name}")
|
34
|
+
namespace = Hippo::Util.ask('Enter a namespace for this stage', default: "#{wd.manifest.name}-#{stage_name}")
|
39
35
|
end
|
40
36
|
|
41
37
|
context_name = context.options[:context]
|
@@ -49,13 +45,13 @@ command :create do
|
|
49
45
|
yaml['context'] = context_name
|
50
46
|
|
51
47
|
require 'hippo/bootstrap_parser'
|
52
|
-
yaml['config'] = Hippo::BootstrapParser.parse(manifest.bootstrap['config'])
|
48
|
+
yaml['config'] = Hippo::BootstrapParser.parse(wd.manifest.bootstrap['config'])
|
53
49
|
|
54
50
|
require 'hippo/stage'
|
55
|
-
stage = Hippo::Stage.new(
|
51
|
+
stage = Hippo::Stage.new(wd, File.dirname(stage_path), yaml)
|
56
52
|
|
57
53
|
require 'hippo/cli'
|
58
|
-
cli = Hippo::CLI.new(
|
54
|
+
cli = Hippo::CLI.new(wd, stage)
|
59
55
|
cli.apply_namespace
|
60
56
|
|
61
57
|
if stage.secret_manager.key_available?
|
@@ -67,11 +63,11 @@ command :create do
|
|
67
63
|
|
68
64
|
FileUtils.mkdir_p(File.dirname(stage_path))
|
69
65
|
File.open(stage_path, 'w') { |f| f.write(yaml.to_yaml.sub(/\A---\n/m, '')) }
|
70
|
-
puts "Written new stage file to
|
66
|
+
puts "Written new stage file to #{stage.name}/config.yaml"
|
71
67
|
|
72
|
-
secrets = Hippo::BootstrapParser.parse(manifest.bootstrap['secrets'])
|
68
|
+
secrets = Hippo::BootstrapParser.parse(wd.manifest.bootstrap['secrets'])
|
73
69
|
stage.secret_manager.write_file(secrets.to_yaml)
|
74
|
-
puts "Written encrypted secrets into
|
70
|
+
puts "Written encrypted secrets into #{stage.name}/secrets.yaml"
|
75
71
|
|
76
72
|
puts
|
77
73
|
puts "\e[32mStage '#{stage.name}' has been created successfully.\e[0m"
|
data/cli/deploy.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :deploy do
|
4
4
|
desc 'Deploy the application to Kubernetes (including image build/push)'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '--no-jobs', 'Do not run the deploy jobs' do |_value, options|
|
11
7
|
options[:jobs] = false
|
12
8
|
end
|
data/cli/install.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :install do
|
4
4
|
desc 'Run installation jobs for the application'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '--no-deploy', 'Do not deploy after install' do |_value, options|
|
11
7
|
options[:deploy] = false
|
12
8
|
end
|
data/cli/key.rb
CHANGED
@@ -3,13 +3,10 @@
|
|
3
3
|
command :key do
|
4
4
|
desc 'Display/generate details about the secret encryption key'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '-g', '--generate', 'Generate a new key' do |_value, options|
|
11
7
|
options[:generate] = true
|
12
8
|
end
|
9
|
+
|
13
10
|
action do |context|
|
14
11
|
require 'hippo/cli'
|
15
12
|
cli = Hippo::CLI.setup(context)
|
data/cli/kubectl.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :kubectl do
|
4
4
|
desc 'Execute kubectl commands with the correct namespace for the stage'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
action do |context|
|
11
7
|
require 'hippo/cli'
|
12
8
|
cli = Hippo::CLI.setup(context)
|
data/cli/logs.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :logs do
|
4
4
|
desc 'Display logs for a particular pod'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '-p', '--pod [POD]', 'The name of the pod' do |value, options|
|
11
7
|
options[:pod] = value
|
12
8
|
end
|
data/cli/objects.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :objects do
|
4
4
|
desc 'Display all objects that will be exported'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '-t', '--type [TYPE]', 'Limit which type of object to return (one of config, deployments or services)' do |value, options|
|
11
7
|
options[:type] = value
|
12
8
|
end
|
data/cli/package_install.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :'package:install' do
|
4
4
|
desc 'Install a named helm package'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '-p', '--package [NAME]', 'The name of the package to install' do |value, options|
|
11
7
|
options[:package] = value
|
12
8
|
end
|
data/cli/package_list.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :'package:list' do
|
4
4
|
desc 'List all available packages with status'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
action do |context|
|
11
7
|
require 'hippo/cli'
|
12
8
|
cli = Hippo::CLI.setup(context)
|
data/cli/package_notes.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :'package:notes' do
|
4
4
|
desc 'Show notes about an installed Helm package'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '-p', '--package [NAME]', 'The name of the package to install' do |value, options|
|
11
7
|
options[:package] = value
|
12
8
|
end
|
data/cli/package_test.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :'package:test' do
|
4
4
|
desc 'Test a package installation'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '-p', '--package [NAME]', 'The name of the package' do |value, options|
|
11
7
|
options[:package] = value
|
12
8
|
end
|
data/cli/package_uninstall.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :'package:uninstall' do
|
4
4
|
desc 'Uninstall a package'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '-p', '--package [NAME]', 'The name of the package' do |value, options|
|
11
7
|
options[:package] = value
|
12
8
|
end
|
data/cli/package_upgrade.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :'package:upgrade' do
|
4
4
|
desc 'Upgrade a package'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '-p', '--package [NAME]', 'The name of the package' do |value, options|
|
11
7
|
options[:package] = value
|
12
8
|
end
|
data/cli/package_values.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :'package:values' do
|
4
4
|
desc 'Display the values file that will be used for all packages'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
action do |context|
|
11
7
|
require 'hippo/cli'
|
12
8
|
cli = Hippo::CLI.setup(context)
|
data/cli/prepare.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :prepare do
|
4
4
|
desc 'Prepare Kubernetes namespace (including installing all packages)'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
action do |context|
|
11
7
|
require 'hippo/cli'
|
12
8
|
cli = Hippo::CLI.setup(context)
|
data/cli/readme.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
command :readme do
|
4
|
+
desc 'Display the README'
|
5
|
+
|
6
|
+
action do |context|
|
7
|
+
require 'hippo/cli'
|
8
|
+
cli = Hippo::CLI.setup(context)
|
9
|
+
cli.preflight
|
10
|
+
|
11
|
+
readme = cli.stage.readme
|
12
|
+
raise Error, 'No README is configured for this application' if readme.nil?
|
13
|
+
|
14
|
+
puts '=' * 80
|
15
|
+
puts readme
|
16
|
+
puts '=' * 80
|
17
|
+
end
|
18
|
+
end
|
data/cli/run.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :run do
|
4
4
|
desc 'Create and run a pod using the given image'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '--command [COMMAND]', 'The command to run (defaults to /bin/bash)' do |value, options|
|
11
7
|
options[:command] = value.to_s
|
12
8
|
end
|
data/cli/secrets.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :secrets do
|
4
4
|
desc 'Create/edit an encrypted secrets file'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
action do |context|
|
11
7
|
require 'hippo/cli'
|
12
8
|
cli = Hippo::CLI.setup(context)
|
data/cli/setup.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
command :setup do
|
4
|
+
desc 'Create a new configuration directory'
|
5
|
+
|
6
|
+
option '--local [PATH]', 'Use a local manifest from the given path' do |value, options|
|
7
|
+
options[:local] = value
|
8
|
+
end
|
9
|
+
|
10
|
+
option '--remote [REPO]', 'Use a repo manifest from the given repository' do |value, options|
|
11
|
+
options[:remote] = value
|
12
|
+
end
|
13
|
+
|
14
|
+
option '-p [PATH]', '--path [PATH]', 'Path within the remote repository' do |value, options|
|
15
|
+
options[:path] = value
|
16
|
+
end
|
17
|
+
|
18
|
+
option '-b [BRANCH]', '--branch [BRANCH]', 'Branch on remote repository' do |value, options|
|
19
|
+
options[:branch] = value
|
20
|
+
end
|
21
|
+
|
22
|
+
action do |context|
|
23
|
+
path = context.args[0]
|
24
|
+
raise Error, 'Provide path as first argument' if path.nil?
|
25
|
+
|
26
|
+
path = File.expand_path(path)
|
27
|
+
|
28
|
+
raise Error, "Directory already exists at #{path}" if File.exist?(path)
|
29
|
+
|
30
|
+
if context.options[:local] && context.options[:remote]
|
31
|
+
raise Error, 'Only specify --local OR --remote'
|
32
|
+
end
|
33
|
+
|
34
|
+
require 'fileutils'
|
35
|
+
FileUtils.mkdir_p(path)
|
36
|
+
source = {}
|
37
|
+
if local_path = context.options[:local]
|
38
|
+
source['type'] = 'local'
|
39
|
+
source['localOptions'] = {
|
40
|
+
'path' => File.expand_path(local_path)
|
41
|
+
}
|
42
|
+
elsif repo = context.options[:remote]
|
43
|
+
source['type'] = 'remote'
|
44
|
+
source['remoteOptions'] = { 'repository' => repo }
|
45
|
+
if context.options[:path]
|
46
|
+
source['remoteOptions']['path'] = context.options[:path]
|
47
|
+
end
|
48
|
+
if context.options[:branch]
|
49
|
+
source['remoteOptions']['branch'] = context.options[:branch]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
require 'yaml'
|
54
|
+
config = { 'source' => source }
|
55
|
+
File.open(File.join(path, 'hippo.yaml'), 'w') { |f| f.write(config.to_yaml) }
|
56
|
+
puts "Created configuration directory at #{path}"
|
57
|
+
|
58
|
+
require 'hippo/working_directory'
|
59
|
+
wd = Hippo::WorkingDirectory.new(path)
|
60
|
+
if wd.can_update?
|
61
|
+
puts 'Updating local copy of remote repository...'
|
62
|
+
wd.update_from_remote
|
63
|
+
puts "\e[32mUpdate completed successfully.\e[0m"
|
64
|
+
puts
|
65
|
+
puts " Repository....: \e[33m#{wd.remote_repository}\e[0m"
|
66
|
+
puts " Branch........: \e[33m#{wd.remote_branch}\e[0m"
|
67
|
+
puts " Path..........: \e[33m#{wd.remote_path}\e[0m"
|
68
|
+
puts
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/cli/stages.rb
CHANGED
@@ -2,15 +2,12 @@
|
|
2
2
|
|
3
3
|
command :stages do
|
4
4
|
desc 'List all stages that are available'
|
5
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
6
|
-
options[:hippofile] = value.to_s
|
7
|
-
end
|
8
5
|
|
9
|
-
action do |
|
6
|
+
action do |_context|
|
10
7
|
require 'hippo/manifest'
|
11
|
-
|
8
|
+
wd = Hippo::WorkingDirectory.new
|
12
9
|
|
13
|
-
if
|
10
|
+
if wd.stages.empty?
|
14
11
|
puts 'There are no stages configured yet.'
|
15
12
|
puts 'Use the following command to create one:'
|
16
13
|
puts
|
@@ -19,7 +16,7 @@ command :stages do
|
|
19
16
|
exit 0
|
20
17
|
end
|
21
18
|
|
22
|
-
|
19
|
+
wd.stages.each do |_, stage|
|
23
20
|
puts "- #{stage.name}"
|
24
21
|
end
|
25
22
|
end
|
data/cli/status.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :status do
|
4
4
|
desc 'Show current status of the namespace'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
option '--full', 'Include all relevant objects in namespace' do |_value, options|
|
11
7
|
options[:full] = true
|
12
8
|
end
|
data/cli/tidy.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
command :tidy do
|
4
|
+
desc 'Remove live objects that are not referenced by the manifest'
|
5
|
+
action do |context|
|
6
|
+
require 'hippo/cli'
|
7
|
+
cli = Hippo::CLI.setup(context)
|
8
|
+
cli.preflight
|
9
|
+
|
10
|
+
objects_to_prune = cli.stage.live_objects(pruneable_only: true)
|
11
|
+
if objects_to_prune.empty?
|
12
|
+
puts 'There are no objects to tidy'
|
13
|
+
exit 0
|
14
|
+
end
|
15
|
+
|
16
|
+
puts "Found #{objects_to_prune.size} object(s) to tidy"
|
17
|
+
puts
|
18
|
+
objects_to_prune.each do |obj|
|
19
|
+
$stdout.print ' ' + obj[:live].kind.ljust(25)
|
20
|
+
$stdout.print obj[:live].name
|
21
|
+
puts
|
22
|
+
end
|
23
|
+
puts
|
24
|
+
|
25
|
+
require 'hippo/util'
|
26
|
+
unless Hippo::Util.confirm('Do you wish to continue?')
|
27
|
+
puts 'No problem, not removing anything right now'
|
28
|
+
exit 0
|
29
|
+
end
|
30
|
+
|
31
|
+
cli.stage.delete_pruneable_objects
|
32
|
+
end
|
33
|
+
end
|
data/cli/update.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
command :update do
|
4
|
+
desc 'Get the latest updates from the remote manifest'
|
5
|
+
action do
|
6
|
+
require 'hippo/working_directory'
|
7
|
+
wd = Hippo::WorkingDirectory.new
|
8
|
+
|
9
|
+
unless wd.can_update?
|
10
|
+
puts "No need to update #{wd.source_type} manifests"
|
11
|
+
exit 0
|
12
|
+
end
|
13
|
+
|
14
|
+
if wd.last_updated_at
|
15
|
+
puts "Last updated: #{wd.last_updated_at}"
|
16
|
+
else
|
17
|
+
puts 'Does not exist yet. Downloading for the first time.'
|
18
|
+
end
|
19
|
+
|
20
|
+
wd.update_from_remote(verbose: true)
|
21
|
+
end
|
22
|
+
end
|
data/cli/vars.rb
CHANGED
@@ -3,10 +3,6 @@
|
|
3
3
|
command :vars do
|
4
4
|
desc 'Show all variables available for use in this stage'
|
5
5
|
|
6
|
-
option '-h', '--hippofile [RECIPE]', 'The path to the Hippofile (defaults: ./Hippofile)' do |value, options|
|
7
|
-
options[:hippofile] = value.to_s
|
8
|
-
end
|
9
|
-
|
10
6
|
action do |context|
|
11
7
|
require 'hippo/cli'
|
12
8
|
cli = Hippo::CLI.setup(context)
|