ops_team 0.13.1 → 0.14.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2290c83f4f7765f62b2efe59ed8e662970039057b7d3d948b68e4f0f0eb46a7c
4
- data.tar.gz: 9b9948ff23bf8799ca294c9a637638980e9b679bb862657085712a97bde35fc1
3
+ metadata.gz: 9b9ea41a7031a3b0433fa1dce7a5d6e3acff2a0845df7e614d7348c42decfb17
4
+ data.tar.gz: b1914623e6e5990aa695112abdcf094b130fc10235fa4aaa1c03ac8d2ca70d14
5
5
  SHA512:
6
- metadata.gz: 7fa27cf9f164af9e91a2d27820e811779a0781cb6b2f8849ef37e6ddd6042d4188422560343559ee072701351dc60f51cc48ce74c82bc1aa9201d233e37ef09d
7
- data.tar.gz: 6af6633e1552b93fa07c3f6443bd292e0695fe9595dfda661e588fd9cc84df8176b2f5b1dbc7613d47bde7b5e1ed30a1b9551bbfd9963c7cc5b70bcb4b54c460
6
+ metadata.gz: bfb2ac0c3c7da9ea5cfb8113b9557e015739eb7ef7972ecf19c59924171274f28babacd9bba222a852dd0e141ac8b8a8d0bb83bb685c82bb644753b2f7c5c2fa
7
+ data.tar.gz: c885476119307be822abbb6a2762ab610094a4373ba701cc07359d17f6209d964fc8a83828b4c5a7a066ca4a6115072d9f94f267a50f0a4e5020d648afcaeac2
data/Gemfile CHANGED
@@ -11,7 +11,7 @@ gem "ed25519"
11
11
  gem "ejson"
12
12
  gem "etc"
13
13
  gem "io-console"
14
- gem "json"
14
+ gem "json", ">= 2.3.0"
15
15
  gem "net-ssh"
16
16
  gem "require_all"
17
17
 
@@ -20,7 +20,7 @@ module Dependencies
20
20
  end
21
21
 
22
22
  def should_meet?
23
- `uname`.chomp == "Linux" && system("which apk")
23
+ `uname`.chomp == "Linux" && system("which apk", out: File::NULL, err: File::NULL)
24
24
  end
25
25
  end
26
26
  end
@@ -1,20 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dependency'
3
+ require 'dependencies/versioned_dependency'
4
4
  require 'dependencies/helpers/apt_cache_policy'
5
5
 
6
6
  module Dependencies
7
- class Apt < Dependency
8
- PACKAGE_NAME_SEPARATOR = "/"
9
-
7
+ class Apt < VersionedDependency
10
8
  def met?
11
- return apt_cache_policy.installed_version == package_version if package_version
12
-
13
- apt_cache_policy.installed?
9
+ if versioned?
10
+ apt_cache_policy.installed_version == dep_version
11
+ else
12
+ apt_cache_policy.installed?
13
+ end
14
14
  end
15
15
 
16
16
  def meet
17
- execute("#{sudo_string}apt-get install -y #{name}")
17
+ if versioned?
18
+ execute("#{sudo_string}apt-get install -y #{dep_name}=#{dep_version}")
19
+ else
20
+ execute("#{sudo_string}apt-get install -y #{name}")
21
+ end
18
22
  end
19
23
 
20
24
  def unmeet
@@ -23,25 +27,13 @@ module Dependencies
23
27
  end
24
28
 
25
29
  def should_meet?
26
- `uname`.chomp == "Linux" && system("which apt-get")
30
+ `uname`.chomp == "Linux" && system("which apt-get", out: File::NULL, err: File::NULL)
27
31
  end
28
32
 
29
33
  private
30
34
 
31
- def package_name
32
- name_components[0]
33
- end
34
-
35
- def package_version
36
- name_components[1]
37
- end
38
-
39
- def name_components
40
- name.split(PACKAGE_NAME_SEPARATOR, 2)
41
- end
42
-
43
35
  def apt_cache_policy
44
- @apt_cache_policy ||= Dependencies::Helpers::AptCachePolicy.new(package_name)
36
+ @apt_cache_policy ||= Dependencies::Helpers::AptCachePolicy.new(dep_name)
45
37
  end
46
38
 
47
39
  def sudo_string
@@ -4,18 +4,20 @@ require 'dependency'
4
4
  require 'options'
5
5
 
6
6
  module Dependencies
7
- class Gem < Dependency
7
+ class Gem < VersionedDependency
8
8
  def met?
9
- execute("gem list -i '^#{name}$'")
9
+ if versioned?
10
+ execute("gem list -i '^#{dep_name}$' -v '#{dep_version}'") if versioned?
11
+ else
12
+ execute("gem list -i '^#{name}$'")
13
+ end
10
14
  end
11
15
 
12
16
  def meet
13
- if Options.get("gem.use_sudo")
14
- execute("sudo gem install #{name}")
15
- elsif Options.get("gem.user_install")
16
- execute("gem install --user-install #{name}")
17
+ if versioned?
18
+ execute("#{sudo_string}gem install #{user_install_string}'#{dep_name}' -v '#{dep_version}'")
17
19
  else
18
- execute("gem install #{name}")
20
+ execute("#{sudo_string}gem install #{user_install_string}'#{name}'")
19
21
  end
20
22
  end
21
23
 
@@ -23,5 +25,15 @@ module Dependencies
23
25
  # do nothing; we don't want to uninstall packages and reinstall them every time
24
26
  true
25
27
  end
28
+
29
+ private
30
+
31
+ def sudo_string
32
+ Options.get("gem.use_sudo") ? "sudo " : ""
33
+ end
34
+
35
+ def user_install_string
36
+ Options.get("gem.user_install") ? "--user-install " : ""
37
+ end
26
38
  end
27
39
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dependencies
4
+ class VersionedDependency < Dependency
5
+ VERSION_SEPARATOR = " "
6
+
7
+ def dep_name
8
+ name_components[0]
9
+ end
10
+
11
+ def dep_version
12
+ name_components[1]
13
+ end
14
+
15
+ def versioned?
16
+ !!dep_version
17
+ end
18
+
19
+ private
20
+
21
+ def name_components
22
+ name.split(VERSION_SEPARATOR, 2)
23
+ end
24
+ end
25
+ end
data/lib/ops.rb CHANGED
@@ -27,6 +27,8 @@ class Ops
27
27
  ERROR_LOADING_APP_CONFIG_EXIT_CODE = 66
28
28
  MIN_VERSION_NOT_MET_EXIT_CODE = 67
29
29
 
30
+ RECOMMEND_HELP_TEXT = "Run 'ops help' for a list of builtins and actions."
31
+
30
32
  class << self
31
33
  def project_name
32
34
  File.basename(::Dir.pwd)
@@ -48,7 +50,7 @@ class Ops
48
50
  run_action
49
51
  rescue UnknownActionError => e
50
52
  Output.error(e.to_s)
51
- print_did_you_mean
53
+ Output.out(RECOMMEND_HELP_TEXT) unless print_did_you_mean
52
54
  exit(UNKNOWN_ACTION_EXIT_CODE)
53
55
  end
54
56
 
@@ -57,6 +59,7 @@ class Ops
57
59
  def syntax_valid?
58
60
  if @action_name.nil?
59
61
  Output.error("Usage: ops <action>")
62
+ Output.out(RECOMMEND_HELP_TEXT)
60
63
  false
61
64
  else
62
65
  true
@@ -67,6 +70,8 @@ class Ops
67
70
  suggestions = did_you_mean.check(@action_name)
68
71
 
69
72
  Output.out("Did you mean '#{suggestions.join(", ")}'?") if suggestions.any?
73
+
74
+ suggestions.any?
70
75
  end
71
76
 
72
77
  def did_you_mean
@@ -40,7 +40,7 @@ class Output
40
40
  @err.puts(msg.yellow)
41
41
  end
42
42
 
43
- alias_method :notice, :warn
43
+ alias notice warn
44
44
 
45
45
  def error(msg)
46
46
  @err.puts(msg.red)
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'ops_team'
5
- s.version = '0.13.1'
5
+ s.version = '0.14.2'
6
6
  s.authors = [
7
7
  'nickthecook@gmail.com'
8
8
  ]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ops_team
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.14.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - nickthecook@gmail.com
@@ -170,6 +170,7 @@ files:
170
170
  - lib/dependencies/gem.rb
171
171
  - lib/dependencies/helpers/apt_cache_policy.rb
172
172
  - lib/dependencies/sshkey.rb
173
+ - lib/dependencies/versioned_dependency.rb
173
174
  - lib/dependency.rb
174
175
  - lib/environment.rb
175
176
  - lib/executor.rb