dcm 0.1.6 → 0.1.8

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: '08657a06d9b268272d9612ac57be02f24d885507770897bb03ac3b4cc60d808c'
4
- data.tar.gz: e40e12fc73ebf44db690396983226e62218195fbbda0fa4b9879e5e714037305
3
+ metadata.gz: f9f1914d67e1be3cbf168c50a24a51070753fbf8972891d1a55349c684294ba7
4
+ data.tar.gz: 8a3414b26dd3f1f2339452deff3f30831dbd8496281074d9e1917f6ac18eabb7
5
5
  SHA512:
6
- metadata.gz: a7dc09f008c91acc39e4357ee77d4f2304efb586a4ec3d906f293104b359891e8cd9f75d316fd3882625f1e095cccd40cb5c8c42b68f2ff787ed1ff208f45443
7
- data.tar.gz: cca6aecae8bc75568acccbef03c422f1dd64036fcbe4fb60e20d988e731dd075fa80433e865bae5b1c2f13ebbbe03effb182070c7b08efae53c799c74e537b2b
6
+ metadata.gz: 3029519ea99350fd7febe1960a57c5bc406721bc4bd76c072c97c28a92d78747c935900b5e5d8b1d7679187160cb826ec727e2a290ee46e49bde17576846da5e
7
+ data.tar.gz: a579bc11adca871bedb2fa7c0da5b0b35e62c6a778bce696cef353fa14f6b6f5524ba3eef116b89ae782308c10eb7ef0d2e33c4b1ecd232f0ced258ab7acaa13
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 "live_selector"
14
15
  require_relative "list_colorizer"
15
16
  require_relative "core_ext"
16
17
  require_relative "version"
@@ -25,7 +26,8 @@ module Dcm
25
26
 
26
27
  def help(cmd)
27
28
  super
28
- puts <<~EOS
29
+ puts <<~EOS if cmd.match?("creta")
30
+
29
31
  Options:
30
32
  FILTER may be any of the following keys: #{VariantFilter::ALLOWED_FILTERKEYS.join(", ")}
31
33
  and should have the format key:value
@@ -117,9 +119,9 @@ module Dcm
117
119
  if options[:include] != ".*" || options[:reject] != "(?!x)x"
118
120
  selector = Regexp.new(options[:include], true)
119
121
  rejector = Regexp.new(options[:reject], true)
120
- list = list.
121
- select { |l| l.match(selector) }.
122
- reject { |l| l.match(rejector) }
122
+ list = list
123
+ .select { |l| l.match(selector) }
124
+ .reject { |l| l.match(rejector) }
123
125
  end
124
126
  if options[:inlab].present?
125
127
  labfile = Ecu::LabelList.from_lab(File.read(options[:inlab]))
@@ -138,6 +140,13 @@ module Dcm
138
140
  end
139
141
  end
140
142
 
143
+ desc "liveview FILE", "Live search and view labels in FILE (requires fzf, jq)"
144
+ def liveview(file=nil)
145
+ parse_file(file)
146
+ .then { LiveSelector.new(_1).call }
147
+ .then { puts ListColorizer.call(_1.to_s(detail: true)) }
148
+ end
149
+
141
150
  desc "rename MAPPING FILE", "Rename dcm content"
142
151
  def rename(mapping=nil, file=nil)
143
152
  list = parse_file(file)
@@ -0,0 +1,38 @@
1
+ class LiveSelector
2
+ attr_reader :list
3
+ def initialize(list)
4
+ @list = list
5
+ end
6
+
7
+ def select
8
+ IO.popen(selectorcmd, "r+") do |pipe|
9
+ list.each { pipe.puts _1.name }
10
+ pipe.close_write
11
+ pipe.read.chomp
12
+ end
13
+ end
14
+
15
+ def call
16
+ select
17
+ .then { find_by_name(_1) }
18
+ end
19
+
20
+ private
21
+
22
+ def tmpfile
23
+ TempfileHandler.create(list.to_json)
24
+ end
25
+
26
+ def selectorcmd
27
+ [
28
+ "fzf",
29
+ "--preview",
30
+ %Q{jq -C '.[] | select(.name == "{}")' #{tmpfile}},
31
+ ]
32
+ end
33
+
34
+ def find_by_name(name)
35
+ list.find { _1.name == name }
36
+ end
37
+
38
+ end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dcm
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.8"
3
3
  end
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.6
4
+ version: 0.1.8
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-04-30 00:00:00.000000000 Z
11
+ date: 2025-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: automotive-ecu
@@ -169,18 +169,17 @@ 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
183
181
  - lib/list_colorizer.rb
182
+ - lib/live_selector.rb
184
183
  - lib/tempfile_handler.rb
185
184
  - lib/variant_filter.rb
186
185
  - lib/version.rb
data/bin/fdcm DELETED
@@ -1,9 +0,0 @@
1
- #!/bin/sh
2
-
3
- TMPFILE=$(mktemp /tmp/dcm-tmp-XXXXXX.json)
4
-
5
- dcm json $1 > $TMPFILE
6
-
7
- name=$(cat $TMPFILE | jq -r .[].name | fzf --preview "jq -C '.[] | select(.name == \"{}\")' $TMPFILE")
8
-
9
- jq ".[] | select(.name == \"$name\")" $TMPFILE