howzit 2.0.17 → 2.0.20
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/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
|