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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8705278823a3fe7c5edd0913befd194389f692ed9833396138a0a97d75b6f72b
4
- data.tar.gz: 0eccd36d324534284495454e5116890c4620a63657d8fa44dca2fec36f837b49
3
+ metadata.gz: 39183dc74cb3558b5ba20133a73e3202c68b0ac9442c6ba1896779ec67e1e245
4
+ data.tar.gz: a081c654611d7e2cd45cb040404f47c8580ab4c3e0e645a7a0623b5b45290288
5
5
  SHA512:
6
- metadata.gz: 8062c95b812bf5f3e5d7d491984bfdfd842a54a4e1446af536476832c720dd9f1d8807c9c4b70936163a8d14b282eb703f6cec072eabb33ba8e54fb836c62e91
7
- data.tar.gz: 3bc5590a2d359db0d1efbea7ccef0f447ecb8ecbe74e9e20bebfce3ec049b7a33ef8ab5b994febac6fbfc276185e7b438ee6d7d71cc9814aa97a6c21e721bf7d
6
+ metadata.gz: 7b48aa89b8c5568786c17dd9b65f0e9acdc298f13bf38367dea47604edbd4d609def88dbdab5fc0e59bdfd76f73fef8fe8b57c09035bd5e593c9240470c2807d
7
+ data.tar.gz: a4e4cc5c5a2df4fccd72e770d1fac588cfe844e9f83f135b038a38a103d4e2c05950acbea844f1363dd439c3c4fc6ffba12dfdd6c9e09fb1a9f7ea89ebe7c28a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- libexec (0.2.1)
4
+ libexec (0.2.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
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
- each_line("ls", "-1", argv, opts: opts) do |line|
38
- arr.push line.chomp
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
- each_line("ls", "-1", argv, opts: opts, &block)
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
- catch_error = opts[:catch_error]
56
- code = opts[:code]
65
+ opt_catch_error = opts[:catch_error]
66
+ opt_code = opts[:code]
57
67
 
58
- if argv.size < 2
59
- catch_error ||= false
60
- code ||= 1
68
+ *args, last_arg = argv
61
69
 
62
- cmd = _js_style_cmd(argv)
63
- else
64
- is_integer = argv.last.instance_of?(Integer)
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
- catch_error ||= is_integer
67
- code ||= (argv.last if is_integer) || 1
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
- result = $?.exitstatus.zero?
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
- $?.exitstatus
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
- unless args.empty?
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
- elsif arg.instance_of?(String)
136
+ else
144
137
  arr.push(arg)
145
138
  end
146
139
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Libexec
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.3"
5
5
  end
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.1
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: 2022-12-27 00:00:00.000000000 Z
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: