howzit 2.0.17 → 2.0.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/bin/howzit +23 -10
- data/lib/howzit/buildnote.rb +11 -0
- data/lib/howzit/config.rb +2 -1
- data/lib/howzit/prompt.rb +1 -1
- data/lib/howzit/task.rb +10 -10
- data/lib/howzit/topic.rb +1 -1
- data/lib/howzit/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: 22f532430daee5c4c7a1d662d959aa5141848be745940e497b0f5d5d920e0739
|
4
|
+
data.tar.gz: 4db5982c0f1409754cf41206b747ccc39b02ceacdaf100dc12e32185d8c13602
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d57db8ee804c204c42b1b30fac02bede10a2ec1b46c31aaf33a688a3441c6338e033e568d61eecedf3ec5a0c05087106532504a4c7cfcbff6daf1ccd9efea20
|
7
|
+
data.tar.gz: 99d46ccfe0612d10c832e093a6b1f95fd4c48a72750e2375bc67b5bc8c1a017d15580f5806fa90fb47e8aae6db1f31c3fc931fd51d588ce1aa249bddfe875538
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,32 @@
|
|
1
|
+
### 2.0.20
|
2
|
+
|
3
|
+
2022-08-08 11:38
|
4
|
+
|
5
|
+
#### NEW
|
6
|
+
|
7
|
+
- --hook command for macOS to copy a link to the build note to clipboard
|
8
|
+
|
9
|
+
#### FIXED
|
10
|
+
|
11
|
+
- Error on --edit-config
|
12
|
+
- Fzf preview empty
|
13
|
+
|
14
|
+
### 2.0.19
|
15
|
+
|
16
|
+
2022-08-08 06:18
|
17
|
+
|
18
|
+
#### IMPROVED
|
19
|
+
|
20
|
+
- Sort options in help output
|
21
|
+
|
22
|
+
### 2.0.18
|
23
|
+
|
24
|
+
2022-08-08 03:48
|
25
|
+
|
26
|
+
#### NEW
|
27
|
+
|
28
|
+
- Use --ask to require confirmation of all tasks when running a topic
|
29
|
+
|
1
30
|
### 2.0.17
|
2
31
|
|
3
32
|
2022-08-07 06:09
|
data/bin/howzit
CHANGED
@@ -20,6 +20,10 @@ OptionParser.new do |opts|
|
|
20
20
|
|
21
21
|
opts.separator " Behavior:\n\n" #=================================================================== BEHAVIOR
|
22
22
|
|
23
|
+
opts.on('--ask', 'Request confirmation for all tasks when running a topic') do
|
24
|
+
Howzit.options[:ask] = true
|
25
|
+
end
|
26
|
+
|
23
27
|
opts.on('--default', 'Answer all prompts with default response') do
|
24
28
|
Howzit.options[:default] = true
|
25
29
|
end
|
@@ -40,7 +44,7 @@ OptionParser.new do |opts|
|
|
40
44
|
|
41
45
|
opts.separator "\n Listing:\n\n" #=================================================================== LISTING
|
42
46
|
|
43
|
-
opts.on('-L', '--list-completions', 'List topics
|
47
|
+
opts.on('-L', '--list-completions', 'List topics (completion-compatible)') do
|
44
48
|
Howzit.options[:list_topics] = true
|
45
49
|
Howzit.options[:list_topic_titles] = true
|
46
50
|
end
|
@@ -94,11 +98,6 @@ OptionParser.new do |opts|
|
|
94
98
|
Process.exit 0
|
95
99
|
end
|
96
100
|
|
97
|
-
opts.on('--edit-template NAME', 'Create or edit a template') do |template|
|
98
|
-
Howzit.buildnote.edit_template(template)
|
99
|
-
Process.exit 0
|
100
|
-
end
|
101
|
-
|
102
101
|
opts.on('--config-get [KEY]', 'Display the configuration settings or setting for a specific key') do |k|
|
103
102
|
if k.nil?
|
104
103
|
Howzit::Config::DEFAULTS.sort_by { |key, _| key }.each do |key, _|
|
@@ -132,14 +131,21 @@ OptionParser.new do |opts|
|
|
132
131
|
Process.exit 0
|
133
132
|
end
|
134
133
|
|
135
|
-
|
134
|
+
editor = File.basename(Howzit.options[:editor])
|
135
|
+
desc = %(Edit buildnotes file in current working directory using editor (#{editor}))
|
136
|
+
opts.on('-e', '--edit', desc) do
|
137
|
+
Howzit.buildnote.edit
|
138
|
+
Process.exit 0
|
139
|
+
end
|
140
|
+
|
141
|
+
config_editor = File.basename(Howzit.options[:config_editor])
|
142
|
+
opts.on('--edit-config', "Edit configuration file using editor (#{config_editor})") do
|
136
143
|
Howzit.config.editor
|
137
144
|
Process.exit 0
|
138
145
|
end
|
139
146
|
|
140
|
-
|
141
|
-
|
142
|
-
Howzit.buildnote.edit
|
147
|
+
opts.on('--edit-template NAME', 'Create or edit a template') do |template|
|
148
|
+
Howzit.buildnote.edit_template(template)
|
143
149
|
Process.exit 0
|
144
150
|
end
|
145
151
|
|
@@ -147,6 +153,13 @@ OptionParser.new do |opts|
|
|
147
153
|
Howzit.options[:grep] = pat
|
148
154
|
end
|
149
155
|
|
156
|
+
if RbConfig::CONFIG['target_os'] =~ /darwin.*/i
|
157
|
+
opts.on('--hook', 'Copy a link to the build note file, ready for pasting into Hook.app or other notes') do
|
158
|
+
Howzit.buildnote.hook
|
159
|
+
Process.exit 0
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
150
163
|
opts.on('-r', '--run', 'Execute @run, @open, and/or @copy commands for given topic') do
|
151
164
|
Howzit.options[:run] = true
|
152
165
|
end
|
data/lib/howzit/buildnote.rb
CHANGED
@@ -72,6 +72,17 @@ module Howzit
|
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
|
+
##
|
76
|
+
## Copy a link to the main build note file to clipboard (macOS only)
|
77
|
+
##
|
78
|
+
def hook
|
79
|
+
title = Util.read_file(note_file).note_title(note_file, 20)
|
80
|
+
title = "#{title} build notes"
|
81
|
+
url = "[#{title}](file://#{note_file})"
|
82
|
+
`echo #{Shellwords.escape(url)}'\\c'|pbcopy`
|
83
|
+
Howzit.console.info('Link copied to clipboard.')
|
84
|
+
end
|
85
|
+
|
75
86
|
##
|
76
87
|
## Call grep on all topics, filtering out those that don't match
|
77
88
|
##
|
data/lib/howzit/config.rb
CHANGED
@@ -74,7 +74,7 @@ module Howzit
|
|
74
74
|
## Initiate the editor for the config
|
75
75
|
##
|
76
76
|
def editor
|
77
|
-
edit_config
|
77
|
+
edit_config
|
78
78
|
end
|
79
79
|
|
80
80
|
private
|
@@ -87,6 +87,7 @@ module Howzit
|
|
87
87
|
def load_options
|
88
88
|
Color.coloring = $stdout.isatty
|
89
89
|
flags = {
|
90
|
+
ask: false,
|
90
91
|
choose: false,
|
91
92
|
default: false,
|
92
93
|
for_topic: nil,
|
data/lib/howzit/prompt.rb
CHANGED
@@ -100,7 +100,7 @@ module Howzit
|
|
100
100
|
"--height=#{height}",
|
101
101
|
'--header="Use tab to mark multiple selections, enter to display/run"',
|
102
102
|
'--prompt="Select a section > "',
|
103
|
-
|
103
|
+
%(--preview="howzit --no-pager --header-format block --no-color --default --multiple first {}")
|
104
104
|
]
|
105
105
|
res = `echo #{Shellwords.escape(matches.join("\n"))} | fzf #{settings.join(' ')}`.strip
|
106
106
|
if res.nil? || res.empty?
|
data/lib/howzit/task.rb
CHANGED
@@ -73,9 +73,9 @@ module Howzit
|
|
73
73
|
matches = Howzit.buildnote.find_topic(@action)
|
74
74
|
raise "Topic not found: #{@action}" if matches.empty?
|
75
75
|
|
76
|
-
|
76
|
+
Howzit.console.info("{by}Running tasks from {bw}#{matches[0].title}{x}".c)
|
77
77
|
output.concat(matches[0].run(nested: true))
|
78
|
-
|
78
|
+
Howzit.console.info("{by}End include: #{matches[0].tasks.count} tasks{x}".c)
|
79
79
|
[output, matches[0].tasks.count]
|
80
80
|
end
|
81
81
|
|
@@ -84,7 +84,7 @@ module Howzit
|
|
84
84
|
##
|
85
85
|
def run_run
|
86
86
|
title = Howzit.options[:show_all_code] ? @action : @title
|
87
|
-
|
87
|
+
Howzit.console.info("{bg}Running {bw}#{title}{x}".c)
|
88
88
|
system(@action)
|
89
89
|
end
|
90
90
|
|
@@ -93,7 +93,7 @@ module Howzit
|
|
93
93
|
##
|
94
94
|
def run_copy
|
95
95
|
title = Howzit.options[:show_all_code] ? @action : @title
|
96
|
-
|
96
|
+
Howzit.console.info("{bg}Copied {bw}#{title}{bg} to clipboard{x}".c)
|
97
97
|
os_copy(@action)
|
98
98
|
end
|
99
99
|
|
@@ -107,21 +107,21 @@ module Howzit
|
|
107
107
|
out = "{bg}Copying {bw}#{string}".c
|
108
108
|
case os
|
109
109
|
when /darwin.*/i
|
110
|
-
|
110
|
+
Howzit.console.debug("#{out} (macOS){x}".c)
|
111
111
|
`echo #{Shellwords.escape(string)}'\\c'|pbcopy`
|
112
112
|
when /mingw|mswin/i
|
113
|
-
|
113
|
+
Howzit.console.debug("#{out} (Windows){x}".c)
|
114
114
|
`echo #{Shellwords.escape(string)} | clip`
|
115
115
|
else
|
116
116
|
if 'xsel'.available?
|
117
|
-
|
117
|
+
Howzit.console.debug("#{out} (Linux, xsel){x}".c)
|
118
118
|
`echo #{Shellwords.escape(string)}'\\c'|xsel -i`
|
119
119
|
elsif 'xclip'.available?
|
120
|
-
|
120
|
+
Howzit.console.debug("#{out} (Linux, xclip){x}".c)
|
121
121
|
`echo #{Shellwords.escape(string)}'\\c'|xclip -i`
|
122
122
|
else
|
123
|
-
|
124
|
-
|
123
|
+
Howzit.console.debug(out)
|
124
|
+
Howzit.console.warn('Unable to determine executable for clipboard.')
|
125
125
|
end
|
126
126
|
end
|
127
127
|
end
|
data/lib/howzit/topic.rb
CHANGED
data/lib/howzit/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: howzit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brett Terpstra
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|