macaddr-steakknife 1.8.1 → 1.8.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
- checksums.yaml.gz.sig +0 -0
- data/lib/macaddr/version.rb +1 -1
- data/lib/which.rb +93 -0
- data/macaddr.gemspec +1 -0
- data.tar.gz.sig +0 -0
- metadata +2 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 89fda8a6bf84dab6f3ac7cfd58f9705caea4db4a
|
|
4
|
+
data.tar.gz: b3c43c3f7a542a55becb6808940f834b3c1e4339
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f013c36deef2e22a5c0f50ae0aa173e1db94b965785ac9ebc8f2de2526b1e6b9b4073453ef6f6c1ff9eecc6ff9d199e3df6f855e1e8c5e330426db107f5dcf12
|
|
7
|
+
data.tar.gz: 09a83eabcf713c9a1e2102129a65821a8b448c83165cea308033d8dad14614b7bef79b1661325cdb67672c48f7d641c1868c3b05a18f1ab1d73db5f033bb5187
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/lib/macaddr/version.rb
CHANGED
data/lib/which.rb
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# https://gist.github.com/steakknife/88b6c3837a5e90a08296
|
|
2
|
+
# Copyright (c) 2014 Barry Allard <barry.allard@gmail.com>
|
|
3
|
+
# License: MIT
|
|
4
|
+
#
|
|
5
|
+
# inspiration: https://stackoverflow.com/questions/2889720/one-liner-in-ruby-for-displaying-a-prompt-getting-input-and-assigning-to-a-var
|
|
6
|
+
#
|
|
7
|
+
# Which Bourne shell?
|
|
8
|
+
#
|
|
9
|
+
# require 'which'
|
|
10
|
+
#
|
|
11
|
+
# Which 'sh'
|
|
12
|
+
#
|
|
13
|
+
#
|
|
14
|
+
# Or all zsh(es)
|
|
15
|
+
#
|
|
16
|
+
# require 'which'
|
|
17
|
+
#
|
|
18
|
+
# WhichAll 'zsh'
|
|
19
|
+
#
|
|
20
|
+
module Which
|
|
21
|
+
# similar to `which {{cmd}}`, except relative paths *are* always expanded
|
|
22
|
+
# returns: first match absolute path (String) to cmd (no symlinks followed),
|
|
23
|
+
# or nil if no executable found
|
|
24
|
+
def which(cmd)
|
|
25
|
+
which0(cmd) do |abs_exe|
|
|
26
|
+
return abs_exe
|
|
27
|
+
end
|
|
28
|
+
nil
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# similar to `which -a {{cmd}}`, except relative paths *are* always expanded
|
|
32
|
+
# returns: always an array, or [] if none found
|
|
33
|
+
def which_all(cmd)
|
|
34
|
+
results = []
|
|
35
|
+
which0(cmd) do |abs_exe|
|
|
36
|
+
results << abs_exe
|
|
37
|
+
end
|
|
38
|
+
results
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def real_executable?(f)
|
|
42
|
+
File.executable?(f) && !File.directory?(f)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def executable_file_extensions
|
|
46
|
+
ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def search_paths
|
|
50
|
+
ENV['PATH'].split(File::PATH_SEPARATOR)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def find_executable(path, cmd, &_block)
|
|
54
|
+
executable_file_extensions.each do |ext|
|
|
55
|
+
# rubocop:disable Lint/AssignmentInCondition
|
|
56
|
+
if real_executable?(abs_exe = File.expand_path(cmd + ext, path))
|
|
57
|
+
yield(abs_exe)
|
|
58
|
+
end
|
|
59
|
+
# rubocop:enable Lint/AssignmentInCondition
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# internal use only
|
|
64
|
+
# +_found_exe+ is yielded to on *all* successful match(es),
|
|
65
|
+
# with path to absolute file (String)
|
|
66
|
+
def which0(cmd, &found_exe)
|
|
67
|
+
# call expand_path(f, nil) == expand_path(f) for relative/abs path cmd
|
|
68
|
+
find_executable(nil, cmd, &found_exe) if File.basename(cmd) != cmd
|
|
69
|
+
|
|
70
|
+
search_paths.each do |path|
|
|
71
|
+
find_executable(path, cmd, &found_exe)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
module_function(*public_instance_methods) # `extend self`, sorta
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# make Which() and WhichAll() work
|
|
79
|
+
module Kernel
|
|
80
|
+
# rubocop:disable Style/MethodName
|
|
81
|
+
# return abs-path to +cmd+
|
|
82
|
+
def Which(cmd)
|
|
83
|
+
Which.which cmd
|
|
84
|
+
end
|
|
85
|
+
module_function :Which
|
|
86
|
+
|
|
87
|
+
# return all abs-path(s) to +cmd+ or [] if none
|
|
88
|
+
def WhichAll(cmd)
|
|
89
|
+
Which.which_all cmd
|
|
90
|
+
end
|
|
91
|
+
module_function :WhichAll
|
|
92
|
+
# rubocop:enable Style/MethodName
|
|
93
|
+
end
|
data/macaddr.gemspec
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: macaddr-steakknife
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.8.
|
|
4
|
+
version: 1.8.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ara T. Howard
|
|
@@ -54,6 +54,7 @@ files:
|
|
|
54
54
|
- README
|
|
55
55
|
- lib/macaddr.rb
|
|
56
56
|
- lib/macaddr/version.rb
|
|
57
|
+
- lib/which.rb
|
|
57
58
|
- macaddr.gemspec
|
|
58
59
|
homepage: https://github.com/steakknife/macaddr
|
|
59
60
|
licenses:
|
metadata.gz.sig
CHANGED
|
Binary file
|