atk_toolbox 0.0.93 → 0.0.94

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: 7d1a6a7ee343c0fba737bc6b80d56d9d0c7214dc6b0b8945d4cb7b9a90ea92ab
4
- data.tar.gz: 93658102c13fd3580368df670d0be7b4c436f779fd6f99b6a35d9cf537a6e7c3
3
+ metadata.gz: 0ce2d5d70547d1bffd0041e5d7b9c504cf8b44fad6e77019ff69ed05c6d00ff2
4
+ data.tar.gz: 9804fc2f8af7ff355304ece47284da19bce9182a29e55ccbb8ab6ea73a6d8b1e
5
5
  SHA512:
6
- metadata.gz: 321bf5075cd3f70911122608c0a024e58a3aa31a13de93c9de41345e368a0c3cba788327ca91272139937e08f41e651a5d3d953b2d723b91468674cbaf25f9c1
7
- data.tar.gz: 4f6e0a27e8eef8920432d21e179ced5a38e9f5ed106d359c918e252869f576276698d943c2859e7d59cd36ce41651d1649916fdd38359265dac7f9e08b023e79
6
+ metadata.gz: 348f483690a7e3ac5b15bdb404fb7709ac4812278f66bb1a5c4432e95afbf9c72d352312b23491779068554b03e44c6d654916ecdd5becf40c83e15f0152bba2
7
+ data.tar.gz: 9ba6af93b93fe6ff713a6cfd6965d0dd7c482d0c6175695fc2122643d55249eefcb6f7300a507ca3c933ef458ecde069d935f4126c8d4d0aad04d0d882b51552
data/lib/atk/console.rb CHANGED
@@ -51,15 +51,11 @@ class TTY::Prompt
51
51
  end
52
52
 
53
53
  def path_for(name_of_executable)
54
- if OS.is?(:windows)
55
- return `where '#{name_of_executable}'`.strip
56
- else
57
- return `which '#{name_of_executable}'`.strip
58
- end
54
+ return OS.path_for_executable(name_of_executable)
59
55
  end
60
56
 
61
57
  def has_command(name_of_executable)
62
- return Console.path_for(name_of_executable) != ''
58
+ return OS.has_command(name_of_executable)
63
59
  end
64
60
 
65
61
  def single_quote_escape(string)
data/lib/atk/os.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require_relative './version.rb'
1
2
  # every OS version is a perfect heirarchy of versions and sub verisons that may or may not be chronological
2
3
  # every OS gets it's own custom heirarchy since there are issues like x86 support and "student edition" etc
3
4
  # the plan is to release this heirarchy on its own repo, and to get pull requests for anyone who wants to add their own OS
@@ -59,7 +60,7 @@ module OS
59
60
  # this is a function created for convenience, so it doesn't have to be perfect
60
61
  # you can use it to ask about random qualities of the current OS and get a boolean response
61
62
  # convert to string (if its a symbol)
62
- adjective = adjective.to_s
63
+ adjective = adjective.to_s.downcase
63
64
  case adjective
64
65
  when 'windows'
65
66
  return (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
@@ -71,6 +72,49 @@ module OS
71
72
  return not( OS.is?(:windows))
72
73
  when 'debian'
73
74
  return File.file?('/etc/debian_version')
75
+ when 'ubuntu'
76
+ return OS.has_command('lsb_release') && `lsb_release -a`.match(/Distributor ID: Ubuntu/)
74
77
  end
75
78
  end
79
+
80
+ def self.version
81
+ # these statements need to be done in order from least to greatest
82
+ if OS.is?("ubuntu")
83
+ if OS.has_command('lsb_release')
84
+ version_info = `lsb_release -a`
85
+ version = Version.extract_from(version_info)
86
+ name_area = version_info.match(/Codename: *(.+)/)
87
+ if name_area
88
+ version.codename = name_area[1].strip
89
+ end
90
+ return version
91
+ end
92
+ elsif OS.is?("debian")
93
+ # TODO: support debian version
94
+ return nil
95
+ elsif OS.is?('mac')
96
+ version = Version.extract_from(`system_profiler SPSoftwareDataType`)
97
+ agreement_file = `cat '/System/Library/CoreServices/Setup Assistant.app/Contents/Resources/en.lproj/OSXSoftwareLicense.rtf'`
98
+ codename_match = agreement_file.match(/SOFTWARE LICENSE AGREEMENT FOR *(?:macOS)? *(.+)\\\n/)
99
+ if codename_match
100
+ version.codename = codename_match[1].strip
101
+ end
102
+ return version
103
+ elsif OS.is?('windows')
104
+ # TODO: support windows version
105
+ return nil
106
+ end
107
+ end
108
+
109
+ def self.path_for_executable(name_of_executable)
110
+ if OS.is?(:windows)
111
+ return `where '#{name_of_executable}'`.strip
112
+ else
113
+ return `which '#{name_of_executable}'`.strip
114
+ end
115
+ end
116
+
117
+ def self.has_command(name_of_executable)
118
+ return OS.path_for_executable(name_of_executable) != ''
119
+ end
76
120
  end
data/lib/atk/version.rb CHANGED
@@ -1,7 +1,14 @@
1
1
  # create a variable for the current ruby version
2
2
 
3
3
  class Version
4
- attr_accessor :levels
4
+ attr_accessor :levels, :codename
5
+
6
+ def self.extract_from(string)
7
+ match = string.match(/\d+\.\d+(\.\d+)*/)
8
+ if match != nil
9
+ return Version.new(match[0])
10
+ end
11
+ end
5
12
 
6
13
  def initialize(version_as_string)
7
14
  @levels = version_as_string.split('.')
@@ -1,3 +1,3 @@
1
1
  module AtkToolbox
2
- VERSION = '0.0.93'
2
+ VERSION = '0.0.94'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atk_toolbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.93
4
+ version: 0.0.94
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Hykin