dcm 0.1.7 → 0.1.9
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/lib/cli.rb +14 -3
- data/lib/fuzzy_selector.rb +37 -0
- data/lib/version.rb +1 -1
- metadata +3 -4
- data/bin/fdcm +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6c0104f9036728263112fd4ffaa62b080eb20ee049244ea960a78fb6302e012
|
4
|
+
data.tar.gz: 359482581dd86df30c5b26f5a6d3a9446fae49cf1c49987ac3e8c09bdfe79688
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b13537c0dc21317d6825887c00bfdaed32c52b9140a2a8aac5458836c4b7b73c1fe55d2dc6936d32ffb70a5a62813ee0597d547537f7765a07ae46b17252cdf5
|
7
|
+
data.tar.gz: d4846aa9d68934cd283e3318874119be8a65feeeac71c20c015794f86769606721bc0af0d4a465d6e00e091d9e8a5cbe2b1c3ae2131402b5186be618ffec0059
|
data/lib/cli.rb
CHANGED
@@ -11,6 +11,7 @@ require_relative "codinginfo"
|
|
11
11
|
require_relative "tempfile_handler"
|
12
12
|
require_relative "diff_viewer"
|
13
13
|
require_relative "variant_filter"
|
14
|
+
require_relative "fuzzy_selector"
|
14
15
|
require_relative "list_colorizer"
|
15
16
|
require_relative "core_ext"
|
16
17
|
require_relative "version"
|
@@ -118,9 +119,9 @@ module Dcm
|
|
118
119
|
if options[:include] != ".*" || options[:reject] != "(?!x)x"
|
119
120
|
selector = Regexp.new(options[:include], true)
|
120
121
|
rejector = Regexp.new(options[:reject], true)
|
121
|
-
list = list
|
122
|
-
select { |l| l.match(selector) }
|
123
|
-
reject { |l| l.match(rejector) }
|
122
|
+
list = list
|
123
|
+
.select { |l| l.match(selector) }
|
124
|
+
.reject { |l| l.match(rejector) }
|
124
125
|
end
|
125
126
|
if options[:inlab].present?
|
126
127
|
labfile = Ecu::LabelList.from_lab(File.read(options[:inlab]))
|
@@ -139,6 +140,16 @@ module Dcm
|
|
139
140
|
end
|
140
141
|
end
|
141
142
|
|
143
|
+
desc "select FILE", "Fuzzy select labels in FILE (requires fzf, jq)"
|
144
|
+
option :indented, aliases: ["-i"], type: :boolean, default: false
|
145
|
+
def select(file=nil)
|
146
|
+
previewcmd = %Q{jq --color-output '.[] | select(.name == "{}")' {tmpfile}}
|
147
|
+
list = parse_file(file)
|
148
|
+
puts FuzzySelector.new(list, previewcmd)
|
149
|
+
.then { _1.select_by(&:name) }
|
150
|
+
.then { _1.to_dcm(options[:indented]) }
|
151
|
+
end
|
152
|
+
|
142
153
|
desc "rename MAPPING FILE", "Rename dcm content"
|
143
154
|
def rename(mapping=nil, file=nil)
|
144
155
|
list = parse_file(file)
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require_relative "tempfile_handler"
|
2
|
+
|
3
|
+
class FuzzySelector
|
4
|
+
attr_reader :items, :previewcmd
|
5
|
+
def initialize(items, previewcmd=nil)
|
6
|
+
@items = items
|
7
|
+
@previewcmd = previewcmd
|
8
|
+
end
|
9
|
+
|
10
|
+
def select(&blk)
|
11
|
+
IO.popen(selectorcmd, "r+") do |pipe|
|
12
|
+
items.each { pipe.puts blk.call(_1) }
|
13
|
+
pipe.close_write
|
14
|
+
pipe.readlines(chomp: true)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def select_by(&blk)
|
19
|
+
identifiers = select(&blk)
|
20
|
+
items.select { identifiers.include?(blk.call(_1)) }
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def tmpfile
|
26
|
+
TempfileHandler.create(items.to_json)
|
27
|
+
end
|
28
|
+
|
29
|
+
def selectorcmd
|
30
|
+
[ "fzf", "--multi" ].tap do |cmd|
|
31
|
+
if previewcmd
|
32
|
+
cmd << "--preview" << previewcmd.sub("{tmpfile}", tmpfile)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dcm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Mueller
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: automotive-ecu
|
@@ -169,17 +169,16 @@ email:
|
|
169
169
|
- jonas@tigger.cloud
|
170
170
|
executables:
|
171
171
|
- dcm
|
172
|
-
- fdcm
|
173
172
|
extensions: []
|
174
173
|
extra_rdoc_files: []
|
175
174
|
files:
|
176
175
|
- bin/dcm
|
177
|
-
- bin/fdcm
|
178
176
|
- lib/cli.rb
|
179
177
|
- lib/codinginfo.rb
|
180
178
|
- lib/core_ext.rb
|
181
179
|
- lib/diff_viewer.rb
|
182
180
|
- lib/file_reader.rb
|
181
|
+
- lib/fuzzy_selector.rb
|
183
182
|
- lib/list_colorizer.rb
|
184
183
|
- lib/tempfile_handler.rb
|
185
184
|
- lib/variant_filter.rb
|