doing 1.0.88 → 1.0.89
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/bin/doing +7 -2
- data/lib/doing/version.rb +1 -1
- data/lib/doing/wwid.rb +10 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a776b386e41f7af1402c85780ab0082f7bf8a9984f02b175cd0c5e9e5dcaa5c
|
4
|
+
data.tar.gz: 7737382bca829f2c5b64ca81fb257a4166832b34c0361b82d5a71009a71927e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea87d615dc5e8d92e307bab0f6adb938d9b2eaaa3732a8a148de81daad1b7dff7258a45aec1e306e06912383077ca0b5d01eef7ed06bd13b3c55ef11f6d8bbba
|
7
|
+
data.tar.gz: '0980e9622d44d2e894a99316a2254a55d76dcbe64b3ec9b5302539cc71ada223fd258af9a42c0b190e3a515e36e309fa56c20d5b8c7a21bb9f390a47ca16f1db'
|
data/README.md
CHANGED
@@ -27,7 +27,7 @@ If there's something I want to look at later but doesn't need to be added to a t
|
|
27
27
|
|
28
28
|
## Installation
|
29
29
|
|
30
|
-
The current version of `doing` is <!--VER-->1.0.
|
30
|
+
The current version of `doing` is <!--VER-->1.0.88<!--END VER-->.
|
31
31
|
|
32
32
|
$ [sudo] gem install doing
|
33
33
|
|
data/bin/doing
CHANGED
@@ -292,10 +292,13 @@ command :select do |c|
|
|
292
292
|
c.arg_name 'SECTION'
|
293
293
|
c.flag %i[m move]
|
294
294
|
|
295
|
-
c.desc 'Initial search query for filtering'
|
295
|
+
c.desc 'Initial search query for filtering. Matching is fuzzy. For exact matching, start query with a single quote, e.g. `--query "\'search"'
|
296
296
|
c.arg_name 'QUERY'
|
297
297
|
c.flag %i[q query]
|
298
298
|
|
299
|
+
c.desc 'Use --no-menu to skip the interactive menu. Use with --query to filter items and act on results automatically. Test with `--output doing` to preview matches.'
|
300
|
+
c.switch %i[menu], negatable: true, default_value: true
|
301
|
+
|
299
302
|
c.desc 'Cancel selected items (add @done without timestamp)'
|
300
303
|
c.switch %i[c cancel], negatable: false, default_value: false
|
301
304
|
|
@@ -311,7 +314,7 @@ command :select do |c|
|
|
311
314
|
c.desc 'Add flag to selected item(s)'
|
312
315
|
c.switch %i[flag], negatable: false, default_value: false
|
313
316
|
|
314
|
-
c.desc 'Perform action without confirmation'
|
317
|
+
c.desc 'Perform action without confirmation.'
|
315
318
|
c.switch %i[force], negatable: false, default_value: false
|
316
319
|
|
317
320
|
c.desc 'Save selected entries to file using --output format'
|
@@ -323,6 +326,8 @@ command :select do |c|
|
|
323
326
|
c.flag %i[o output], must_match: /^(?:doing|taskpaper|html|csv|json|template|timeline)$/i
|
324
327
|
|
325
328
|
c.action do |_global_options, options, args|
|
329
|
+
exit_now! "--no-menu requires --query" if !options[:menu] && !options[:query]
|
330
|
+
|
326
331
|
wwid.interactive(options)
|
327
332
|
end
|
328
333
|
end
|
data/lib/doing/version.rb
CHANGED
data/lib/doing/wwid.rb
CHANGED
@@ -817,7 +817,7 @@ class WWID
|
|
817
817
|
' | ',
|
818
818
|
item['title']
|
819
819
|
]
|
820
|
-
if
|
820
|
+
if section =~ /^all/i
|
821
821
|
out.concat([
|
822
822
|
' (',
|
823
823
|
item['section'],
|
@@ -834,7 +834,14 @@ class WWID
|
|
834
834
|
'--bind ctrl-a:select-all',
|
835
835
|
%(-q "#{opt[:query]}")
|
836
836
|
]
|
837
|
+
if !opt[:menu]
|
838
|
+
exit_now! "Can't skip menu when no query is provided" unless opt[:query]
|
839
|
+
|
840
|
+
fzf_args.concat([%(--filter="#{opt[:query]}"), '--no-sort'])
|
841
|
+
end
|
842
|
+
|
837
843
|
res = `echo #{Shellwords.escape(options.join("\n"))}|#{fzf} #{fzf_args.join(' ')}`
|
844
|
+
`echo '#{Shellwords.escape(options.join("\n"))}|#{fzf} #{fzf_args.join(' ')}' >> test.txt`
|
838
845
|
selected = []
|
839
846
|
res.split(/\n/).each do |item|
|
840
847
|
idx = item.match(/^(\d+)\)/)[1].to_i
|
@@ -1856,11 +1863,11 @@ class WWID
|
|
1856
1863
|
end
|
1857
1864
|
end
|
1858
1865
|
if opt[:output] == 'json'
|
1859
|
-
|
1866
|
+
puts JSON.pretty_generate({
|
1860
1867
|
'section' => section,
|
1861
1868
|
'items' => items_out,
|
1862
1869
|
'timers' => tag_times(format: 'json', sort_by_name: opt[:sort_tags], sort_order: opt[:tag_order])
|
1863
|
-
}
|
1870
|
+
})
|
1864
1871
|
elsif opt[:output] == 'timeline'
|
1865
1872
|
template = <<~EOTEMPLATE
|
1866
1873
|
<!doctype html>
|