libexec 0.2.1 → 0.2.3
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.lock +1 -1
- data/lib/libexec/exec.rb +29 -36
- data/lib/libexec/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39183dc74cb3558b5ba20133a73e3202c68b0ac9442c6ba1896779ec67e1e245
|
4
|
+
data.tar.gz: a081c654611d7e2cd45cb040404f47c8580ab4c3e0e645a7a0623b5b45290288
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b48aa89b8c5568786c17dd9b65f0e9acdc298f13bf38367dea47604edbd4d609def88dbdab5fc0e59bdfd76f73fef8fe8b57c09035bd5e593c9240470c2807d
|
7
|
+
data.tar.gz: a4e4cc5c5a2df4fccd72e770d1fac588cfe844e9f83f135b038a38a103d4e2c05950acbea844f1363dd439c3c4fc6ffba12dfdd6c9e09fb1a9f7ea89ebe7c28a
|
data/Gemfile.lock
CHANGED
data/lib/libexec/exec.rb
CHANGED
@@ -32,10 +32,15 @@ module Libexec
|
|
32
32
|
#
|
33
33
|
# @param [Array] argv
|
34
34
|
# @return [Array] line.chomp
|
35
|
-
def by_ls_1(*argv, **opts)
|
35
|
+
def by_ls_1(*argv, env: {}, mode: "r", **opts)
|
36
36
|
arr = []
|
37
|
-
|
38
|
-
|
37
|
+
argv.unshift("ls", "-1")
|
38
|
+
cmd = _js_style_cmd(argv)
|
39
|
+
|
40
|
+
IO.popen(env, cmd, mode, opts) do |pipe|
|
41
|
+
pipe.each_line do |line|
|
42
|
+
arr.push(line.chomp)
|
43
|
+
end
|
39
44
|
end
|
40
45
|
arr
|
41
46
|
end
|
@@ -43,8 +48,13 @@ module Libexec
|
|
43
48
|
# Operate each line result by yourself in `ls -1`
|
44
49
|
#
|
45
50
|
# @param [Array] argv
|
46
|
-
def each_ls_1(*argv, **opts, &block)
|
47
|
-
|
51
|
+
def each_ls_1(*argv, env: {}, mode: "r", **opts, &block)
|
52
|
+
argv.unshift("ls", "-1")
|
53
|
+
cmd = _js_style_cmd(argv)
|
54
|
+
|
55
|
+
IO.popen(env, cmd, mode, opts) do |pipe|
|
56
|
+
pipe.each_line(&block)
|
57
|
+
end
|
48
58
|
end
|
49
59
|
|
50
60
|
# wrapper for Process.spawn
|
@@ -52,34 +62,29 @@ module Libexec
|
|
52
62
|
#
|
53
63
|
# @return [Integer]
|
54
64
|
def code(*argv, **opts)
|
55
|
-
|
56
|
-
|
65
|
+
opt_catch_error = opts[:catch_error]
|
66
|
+
opt_code = opts[:code]
|
57
67
|
|
58
|
-
|
59
|
-
catch_error ||= false
|
60
|
-
code ||= 1
|
68
|
+
*args, last_arg = argv
|
61
69
|
|
62
|
-
|
63
|
-
|
64
|
-
|
70
|
+
is_integer = last_arg.instance_of?(Integer)
|
71
|
+
arg_catch_error = is_integer
|
72
|
+
arg_code = is_integer ? last_arg : false
|
65
73
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
args = argv.clone
|
70
|
-
args.pop
|
71
|
-
cmd = is_integer ? _js_style_cmd(args) : _js_style_cmd(argv)
|
72
|
-
end
|
74
|
+
catch_error = arg_catch_error || opt_catch_error || false
|
75
|
+
code = arg_code || opt_code || 1
|
73
76
|
|
77
|
+
cmd = is_integer ? _js_style_cmd(args) : _js_style_cmd(argv)
|
74
78
|
Process.spawn(cmd)
|
75
79
|
Process.wait
|
76
80
|
|
77
|
-
|
81
|
+
original_code = $?.exitstatus
|
82
|
+
result = original_code.zero?
|
78
83
|
|
79
84
|
if catch_error && !result
|
80
85
|
exit code
|
81
86
|
else
|
82
|
-
|
87
|
+
original_code
|
83
88
|
end
|
84
89
|
rescue Errno::ENOENT => _e
|
85
90
|
127
|
@@ -110,19 +115,7 @@ module Libexec
|
|
110
115
|
def _ruby_style_cmd(argv)
|
111
116
|
cmd, *args = argv
|
112
117
|
|
113
|
-
|
114
|
-
arr = [cmd]
|
115
|
-
args.each do |arg|
|
116
|
-
# https://docs.ruby-lang.org/en/master/Kernel.html#method-i-class
|
117
|
-
if arg.instance_of?(Array)
|
118
|
-
arr.concat(arg)
|
119
|
-
elsif arg.instance_of?(String)
|
120
|
-
arr.push(arg)
|
121
|
-
end
|
122
|
-
end
|
123
|
-
cmd = arr
|
124
|
-
end
|
125
|
-
cmd
|
118
|
+
args.empty? ? cmd : argv.flatten
|
126
119
|
end
|
127
120
|
|
128
121
|
# in JS style, all arg connect with " " <br>
|
@@ -140,7 +133,7 @@ module Libexec
|
|
140
133
|
args.each do |arg|
|
141
134
|
if arg.instance_of?(Array)
|
142
135
|
arr.push(%('#{arg.join(" ")}'))
|
143
|
-
|
136
|
+
else
|
144
137
|
arr.push(arg)
|
145
138
|
end
|
146
139
|
end
|
data/lib/libexec/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libexec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- initdc
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Wrapper for ruby exec shell command.
|
14
14
|
email:
|