k_builder-watch 0.0.13 → 0.0.15
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/.builders/basic.rb +6 -11
- data/Gemfile +13 -0
- data/bin/run +2 -4
- data/exe/k_builder-watch +2 -4
- data/k_builder-watch.gemspec +3 -0
- data/lib/k_builder/watch.rb +3 -0
- data/lib/k_builder/watch/cli.rb +69 -26
- data/lib/k_builder/watch/version.rb +1 -1
- data/lib/k_builder/watch/watcher.rb +18 -4
- metadata +44 -3
- data/.builders/x.rb +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a379652e102ecbfa747989d7c7e62a2d490c1d45f45c9c32974118e295432246
|
4
|
+
data.tar.gz: a1235bf9a4c8ed27bee303a5c4cdd08ac24f1a7fb6e54ebca8a5a73131b000d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6266476ab5cf6320a4e0390931f46882bd612adb80bf192c3696e19444845c6c60f232e1b6c34456a52b8e99932f354ca3ce4a1791d51e03485391905bb4ab02
|
7
|
+
data.tar.gz: 36ac20f9633c28f8e5f5e697a41c0ad958289e43ead3657e4bbf9657823049a09bd5d4b447eb15fb48d3618fbf83f9bff4b2807bdf16672e28ea2f45313957b7
|
data/.builders/basic.rb
CHANGED
@@ -1,14 +1,7 @@
|
|
1
|
-
|
1
|
+
require '_initialize.rb'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
puts 'fucit'
|
6
|
-
# load 'x.rb'
|
7
|
-
# puts JSON.pretty_generate(KBuilder.configuration.to_h)
|
8
|
-
|
9
|
-
# builder = KBuilder::BaseBuilder.init
|
10
|
-
|
11
|
-
# builder
|
3
|
+
builder = KBuilder::BaseBuilder
|
4
|
+
.init
|
12
5
|
# .add_file('main.rb', template_file: 'class.rb', name: 'main')
|
13
6
|
# .add_file('person.rb',
|
14
7
|
# template_file: 'model.rb',
|
@@ -31,4 +24,6 @@ puts 'fucit'
|
|
31
24
|
# puts file
|
32
25
|
# puts File.exist?(file)
|
33
26
|
# system("code #{file}")
|
34
|
-
# puts 'basic'
|
27
|
+
# puts 'basic'
|
28
|
+
|
29
|
+
puts 'DONE!'
|
data/Gemfile
CHANGED
@@ -23,3 +23,16 @@ group :development, :test do
|
|
23
23
|
gem 'rubocop-rake', require: false
|
24
24
|
gem 'rubocop-rspec', require: false
|
25
25
|
end
|
26
|
+
|
27
|
+
# # If local dependency
|
28
|
+
# if true
|
29
|
+
# group :development, :test do
|
30
|
+
# # /Users/davidcruwys/dev/kgems/k_builder/lib/k_builder
|
31
|
+
# gem 'k_builder', path: '../k_builder'
|
32
|
+
# gem 'k_builder-package_json', path: '../k_builder-package_json'
|
33
|
+
# gem 'k_builder-webpack5', path: '../k_builder-webpack5'
|
34
|
+
# gem 'k_doc', path: '../k_doc'
|
35
|
+
# gem 'k_log', path: '../k_log'
|
36
|
+
# gem 'k_util', path: '../k_util'
|
37
|
+
# end
|
38
|
+
# end
|
data/bin/run
CHANGED
data/exe/k_builder-watch
CHANGED
data/k_builder-watch.gemspec
CHANGED
@@ -42,4 +42,7 @@ Gem::Specification.new do |spec|
|
|
42
42
|
spec.add_dependency 'k_builder', '~> 0.0'
|
43
43
|
spec.add_dependency 'k_builder-package_json', '~> 0.0'
|
44
44
|
spec.add_dependency 'k_builder-webpack5', '~> 0.0'
|
45
|
+
spec.add_dependency 'k_doc', '~> 0.0'
|
46
|
+
spec.add_dependency 'k_log', '~> 0.0'
|
47
|
+
spec.add_dependency 'k_util', '~> 0.0'
|
45
48
|
end
|
data/lib/k_builder/watch.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'k_doc'
|
3
4
|
require 'k_builder/watch/version'
|
4
5
|
require 'k_builder/watch/cli'
|
5
6
|
require 'k_builder/watch/watcher'
|
@@ -10,3 +11,5 @@ module KBuilder
|
|
10
11
|
class Error < StandardError; end
|
11
12
|
end
|
12
13
|
end
|
14
|
+
|
15
|
+
puts "KBuilder::Watch::Version: #{KBuilder::Watch::VERSION}" if ENV['KLUE_DEBUG']&.to_s&.downcase == 'true'
|
data/lib/k_builder/watch/cli.rb
CHANGED
@@ -14,16 +14,27 @@ module KBuilder
|
|
14
14
|
attr_accessor :debug
|
15
15
|
attr_accessor :base_path
|
16
16
|
attr_accessor :path
|
17
|
+
attr_accessor :path_relative
|
18
|
+
attr_accessor :new_path
|
19
|
+
attr_accessor :new_path_relative
|
20
|
+
attr_accessor :new
|
21
|
+
attr_accessor :app_path
|
17
22
|
attr_accessor :watch_path
|
18
23
|
attr_accessor :help
|
19
24
|
|
20
25
|
def initialize
|
26
|
+
# puts "Watch: #{KBuilder::Watch::VERSION}"
|
21
27
|
# @repetitions = 1
|
22
28
|
# @name = nil
|
23
29
|
@debug = false
|
24
30
|
@watch_path = nil
|
25
31
|
@base_path = Dir.pwd
|
32
|
+
@path_relative = nil # '.'
|
26
33
|
@path = nil
|
34
|
+
@app_path = nil
|
35
|
+
@new_path = nil
|
36
|
+
@new_path_relative = nil
|
37
|
+
@new = nil
|
27
38
|
|
28
39
|
parse_arguments
|
29
40
|
post_process_arguments
|
@@ -31,10 +42,10 @@ module KBuilder
|
|
31
42
|
|
32
43
|
def options
|
33
44
|
# ['--repeat' , '-r', GetoptLong::REQUIRED_ARGUMENT],
|
34
|
-
# ['--name' , '-n', GetoptLong::OPTIONAL_ARGUMENT]
|
35
45
|
GetoptLong.new(
|
36
|
-
['--help'
|
37
|
-
['--debug'
|
46
|
+
['--help' , '-h', GetoptLong::NO_ARGUMENT],
|
47
|
+
['--debug' , GetoptLong::NO_ARGUMENT],
|
48
|
+
['--new' , '-n', GetoptLong::OPTIONAL_ARGUMENT]
|
38
49
|
)
|
39
50
|
end
|
40
51
|
|
@@ -52,15 +63,23 @@ module KBuilder
|
|
52
63
|
end
|
53
64
|
|
54
65
|
def parse_final_argument
|
55
|
-
if ARGV.length != 1
|
56
|
-
|
57
|
-
|
58
|
-
end
|
66
|
+
# if ARGV.length != 1
|
67
|
+
# puts 'Missing dir argument (try --help)'
|
68
|
+
# exit 0
|
69
|
+
# end
|
70
|
+
|
71
|
+
@path_relative = if ARGV.length == 1
|
72
|
+
ARGV.shift
|
73
|
+
else
|
74
|
+
'.'
|
75
|
+
end
|
59
76
|
|
60
|
-
@path
|
77
|
+
return unless @path.nil?
|
78
|
+
|
79
|
+
@path = File.join(base_path, path_relative)
|
61
80
|
end
|
62
81
|
|
63
|
-
def parse_option(opt,
|
82
|
+
def parse_option(opt, arg)
|
64
83
|
case opt
|
65
84
|
when '--help'
|
66
85
|
@help = true
|
@@ -68,14 +87,20 @@ module KBuilder
|
|
68
87
|
@debug = true
|
69
88
|
# when '--repeat'
|
70
89
|
# @repetitions = arg.to_i
|
71
|
-
|
72
|
-
#
|
90
|
+
when '--new'
|
91
|
+
# Maybe better to call @new, @app_name
|
92
|
+
@new = arg
|
93
|
+
@app_path = File.join(base_path, arg)
|
94
|
+
@new_path_relative = arg == '' ? '.builders' : File.join(arg.to_s, '.builders')
|
95
|
+
@new_path = File.join(base_path, @new_path_relative)
|
96
|
+
@path = @new_path_relative
|
73
97
|
end
|
74
98
|
end
|
75
99
|
|
76
100
|
def execute
|
77
101
|
display_help if help
|
78
102
|
display_debug if debug
|
103
|
+
new_builder unless @new.nil?
|
79
104
|
|
80
105
|
# Dir.chdir(dir)
|
81
106
|
# for i in (1..repetitions)
|
@@ -87,29 +112,41 @@ module KBuilder
|
|
87
112
|
# end
|
88
113
|
end
|
89
114
|
|
90
|
-
def
|
91
|
-
|
92
|
-
|
93
|
-
puts ' --debug debug options'
|
94
|
-
|
95
|
-
# hello [OPTION] ... DIR
|
96
|
-
|
97
|
-
# -h, --help:
|
98
|
-
# show help
|
115
|
+
def new_builder
|
116
|
+
setup_file = File.join(new_path, 'setup.rb')
|
117
|
+
config_file = File.join(new_path, 'config', '_.rb')
|
99
118
|
|
100
|
-
|
101
|
-
|
119
|
+
FileUtils.mkdir_p(File.dirname(config_file))
|
120
|
+
File.write(setup_file, "require 'config/_'") unless File.exist?(setup_file)
|
121
|
+
File.write(config_file, "puts '_'\n\n#require 'config/_initialize'") unless File.exist?(config_file)
|
102
122
|
|
103
|
-
#
|
104
|
-
|
123
|
+
system("code #{File.join(app_path, '.')}")
|
124
|
+
end
|
105
125
|
|
106
|
-
|
126
|
+
def display_help
|
127
|
+
puts 'HELP: k_watcher [OPTION] ... DIR'
|
128
|
+
puts ''
|
129
|
+
puts ' -h, --help: - show help'
|
130
|
+
puts ' --debug - display debug options'
|
131
|
+
puts ' -n, --new [folder_name] - create a new .builders folder with setup file, optionally create it under the [FolderName]'
|
132
|
+
puts ''
|
133
|
+
puts ' DIR: - The directory to watch, will default to current directory "."'
|
134
|
+
puts ''
|
135
|
+
puts 'examples'
|
136
|
+
puts ''
|
137
|
+
puts 'Get Help - k_watcher -h'
|
138
|
+
puts 'Debug - k_watcher --debug'
|
139
|
+
puts 'New builder project (./.builders) - k_watcher -n'
|
140
|
+
puts 'New builder project (./HelloWorld/.builders) - k_watcher -n HelloWorld'
|
141
|
+
puts 'Watch current folder (.) - k_watcher'
|
142
|
+
puts 'Watch the subfolder (.builders) - k_watcher .builders'
|
107
143
|
|
108
144
|
exit
|
109
145
|
end
|
110
146
|
|
111
147
|
def display_debug
|
112
148
|
puts JSON.pretty_generate(to_h)
|
149
|
+
exit
|
113
150
|
end
|
114
151
|
|
115
152
|
def to_h
|
@@ -117,14 +154,20 @@ module KBuilder
|
|
117
154
|
# name: name,
|
118
155
|
{
|
119
156
|
debug: debug,
|
157
|
+
app_path: app_path,
|
120
158
|
base_path: base_path,
|
159
|
+
path_relative: path_relative,
|
121
160
|
watch_path: watch_path,
|
122
|
-
|
161
|
+
new_path: new_path,
|
162
|
+
new_path_relative: new_path_relative,
|
163
|
+
new: new
|
123
164
|
}
|
124
165
|
end
|
125
166
|
|
126
167
|
private
|
127
168
|
|
169
|
+
# Refactor to use KUtil.file.expand_path(path, base_path)
|
170
|
+
# Need tests
|
128
171
|
def set_watch_path
|
129
172
|
@watch_path = if path.start_with?('~')
|
130
173
|
File.expand_path(path)
|
@@ -38,19 +38,33 @@ module KBuilder
|
|
38
38
|
|
39
39
|
# rubocop:disable Lint/RescueException
|
40
40
|
def process_updated_file(filename)
|
41
|
-
|
42
|
-
|
41
|
+
clear_screen
|
42
|
+
update_load_path(filename)
|
43
43
|
|
44
44
|
puts "File updated: #{filename}"
|
45
45
|
|
46
46
|
content = File.read(filename)
|
47
|
-
Object.class_eval(content,
|
47
|
+
Object.class_eval(content, filename)
|
48
48
|
rescue Exception => e
|
49
49
|
puts e.message
|
50
|
-
puts e.backtrace
|
50
|
+
puts e.backtrace
|
51
|
+
.select { |ex| ex.start_with?(filename) }
|
52
|
+
.map { |m| m.delete_suffix(":in `process_updated_file'") }
|
53
|
+
.join("\n")
|
54
|
+
# puts '-' * 70
|
55
|
+
# puts e.backtrace.join("\n")
|
51
56
|
end
|
52
57
|
# rubocop:enable Lint/RescueException
|
53
58
|
|
59
|
+
private
|
60
|
+
|
61
|
+
def update_load_path(filename)
|
62
|
+
dirname = File.dirname(filename)
|
63
|
+
|
64
|
+
# This needs to be in detailed logging
|
65
|
+
$LOAD_PATH.unshift(dirname) unless $LOAD_PATH.find { |path| path.start_with?(dirname) }
|
66
|
+
end
|
67
|
+
|
54
68
|
def clear_screen
|
55
69
|
puts "\n" * 70
|
56
70
|
$stdout.clear_screen
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k_builder-watch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: filewatcher
|
@@ -66,6 +66,48 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: k_doc
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: k_log
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: k_util
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.0'
|
69
111
|
description: " K-Builder-Watch will watch k_builder files and when they change,
|
70
112
|
execute them\n"
|
71
113
|
email:
|
@@ -77,7 +119,6 @@ extra_rdoc_files: []
|
|
77
119
|
files:
|
78
120
|
- ".builders/_initialize.rb"
|
79
121
|
- ".builders/basic.rb"
|
80
|
-
- ".builders/x.rb"
|
81
122
|
- ".github/workflows/main.yml"
|
82
123
|
- ".gitignore"
|
83
124
|
- ".rspec"
|
data/.builders/x.rb
DELETED
File without changes
|