ops_team 0.13.0 → 0.14.1

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: 9656333af7b4f103645f9f27af758b4cc11e749c0e9770474ec249af8db85983
4
- data.tar.gz: d1a69bbc44b1626bbcd754fa8484547f2bfa3beede615d8ebcd951e00432008a
3
+ metadata.gz: 41782bcb93146b1b1fabc4f762bc0c9c1c2b4ae447aeb7e74a4f9b31f6a69629
4
+ data.tar.gz: 8e249d5e45fd10517215864bb5a71c2d906116750205b484e8644e9b4bdd1d52
5
5
  SHA512:
6
- metadata.gz: 73e177e194c2f3e7415612bd23aea779502182929fbb5264c00a1516a52869056bb045e75ff5aaca4c546b92f03481f5346eb24958f4a6ccdd247d0d3cdc06dc
7
- data.tar.gz: 53c224dd9162d269c0154c842ec36d4e748dd59b401efb1a959199332e3ee99489a1de4cf88d3e2d2bff7c04a37906c687d542ac2bc4852d7fa38a0f4e0ad9c6
6
+ metadata.gz: 979ff357afd440bfc2b52866e5f74c5a55932155b9666f5f7d88547a1d7837b1c4d75eb2559a696aac95cd42071167c68dc37dbf3f129ff944cab41b6ab591e0
7
+ data.tar.gz: '07809f3717a5cff0dfa118b492fc1fef5d3280e15e4a48b7cb510052ab1724ff4289ac4f86c4d3de86254409c6794d46d06b96edb354756e8dd29fe01af1dbba'
data/Gemfile CHANGED
@@ -6,8 +6,12 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
6
 
7
7
  gem "bcrypt_pbkdf"
8
8
  gem "colorize"
9
+ gem "e2mmap"
9
10
  gem "ed25519"
10
11
  gem "ejson"
12
+ gem "etc"
13
+ gem "io-console"
14
+ gem "json", ">= 2.3.0"
11
15
  gem "net-ssh"
12
16
  gem "require_all"
13
17
 
@@ -17,6 +21,7 @@ group :test do
17
21
  end
18
22
 
19
23
  group :development do
24
+ gem "irb"
20
25
  gem "pry"
21
26
  gem "pry-byebug"
22
27
  gem "rerun"
data/bin/ops CHANGED
@@ -5,6 +5,4 @@ require_relative "../loader"
5
5
 
6
6
  require 'ops'
7
7
 
8
- require 'pry-byebug' if ENV['environment'] == 'dev' || ENV['environment'].nil?
9
-
10
8
  Ops.new(ARGV).run
@@ -9,6 +9,8 @@ class ActionSuggester
9
9
  spellchecker.correct(word)
10
10
  end
11
11
 
12
+ private
13
+
12
14
  def spellchecker
13
15
  @spellchecker ||= DidYouMean::SpellChecker.new(dictionary: @dictionary)
14
16
  end
@@ -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,14 +1,12 @@
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
9
+ return apt_cache_policy.installed_version == dep_version if dep_version
12
10
 
13
11
  apt_cache_policy.installed?
14
12
  end
@@ -23,25 +21,13 @@ module Dependencies
23
21
  end
24
22
 
25
23
  def should_meet?
26
- `uname`.chomp == "Linux" && system("which apt-get")
24
+ `uname`.chomp == "Linux" && system("which apt-get", out: File::NULL, err: File::NULL)
27
25
  end
28
26
 
29
27
  private
30
28
 
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
29
  def apt_cache_policy
44
- @apt_cache_policy ||= Dependencies::Helpers::AptCachePolicy.new(package_name)
30
+ @apt_cache_policy ||= Dependencies::Helpers::AptCachePolicy.new(dep_name)
45
31
  end
46
32
 
47
33
  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.0'
5
+ s.version = '0.14.1'
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.0
4
+ version: 0.14.1
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