ops_team 0.13.1 → 0.14.2
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
- data/Gemfile +1 -1
- data/lib/dependencies/apk.rb +1 -1
- data/lib/dependencies/apt.rb +14 -22
- data/lib/dependencies/gem.rb +19 -7
- data/lib/dependencies/versioned_dependency.rb +25 -0
- data/lib/ops.rb +6 -1
- data/lib/output.rb +1 -1
- data/ops_team.gemspec +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b9ea41a7031a3b0433fa1dce7a5d6e3acff2a0845df7e614d7348c42decfb17
|
4
|
+
data.tar.gz: b1914623e6e5990aa695112abdcf094b130fc10235fa4aaa1c03ac8d2ca70d14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfb2ac0c3c7da9ea5cfb8113b9557e015739eb7ef7972ecf19c59924171274f28babacd9bba222a852dd0e141ac8b8a8d0bb83bb685c82bb644753b2f7c5c2fa
|
7
|
+
data.tar.gz: c885476119307be822abbb6a2762ab610094a4373ba701cc07359d17f6209d964fc8a83828b4c5a7a066ca4a6115072d9f94f267a50f0a4e5020d648afcaeac2
|
data/Gemfile
CHANGED
data/lib/dependencies/apk.rb
CHANGED
data/lib/dependencies/apt.rb
CHANGED
@@ -1,20 +1,24 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'dependencies/versioned_dependency'
|
4
4
|
require 'dependencies/helpers/apt_cache_policy'
|
5
5
|
|
6
6
|
module Dependencies
|
7
|
-
class Apt <
|
8
|
-
PACKAGE_NAME_SEPARATOR = "/"
|
9
|
-
|
7
|
+
class Apt < VersionedDependency
|
10
8
|
def met?
|
11
|
-
|
12
|
-
|
13
|
-
|
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
|
-
|
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(
|
36
|
+
@apt_cache_policy ||= Dependencies::Helpers::AptCachePolicy.new(dep_name)
|
45
37
|
end
|
46
38
|
|
47
39
|
def sudo_string
|
data/lib/dependencies/gem.rb
CHANGED
@@ -4,18 +4,20 @@ require 'dependency'
|
|
4
4
|
require 'options'
|
5
5
|
|
6
6
|
module Dependencies
|
7
|
-
class Gem <
|
7
|
+
class Gem < VersionedDependency
|
8
8
|
def met?
|
9
|
-
|
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
|
14
|
-
execute("
|
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
|
data/lib/output.rb
CHANGED
data/ops_team.gemspec
CHANGED
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.
|
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
|