ruby_make_script 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/lib/ruby_make_script.rb +42 -1
- data/lib/ruby_make_script/doc.rb +42 -0
- data/lib/ruby_make_script/target.rb +10 -1
- data/lib/ruby_make_script/version.rb +1 -1
- data/make.md +1 -0
- data/test.rb +5 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39795ddc3d0820433555bb57ffd41639be77a702ee4e3ff72cac6dd243fa9bb8
|
4
|
+
data.tar.gz: 629a6e4804bd3112e66660e3b921965d16456d94478da616453824de2ccd53ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d6dec45593827ae2055b5cef614fcb2ca905d61bc3b85c02524cff4cdaeb2b8397e255d4550aa9079557af32d0baed3082ac858d81608c885a1226d99130e648
|
7
|
+
data.tar.gz: 784d568d21a7ac1a3120ca7b125079a9bc2fc42a030e19e668cd99e18332b66739550561be954ce4f61be025b7076526f091c66a866d66d0213c9e3b11d2b273
|
data/.gitignore
CHANGED
data/lib/ruby_make_script.rb
CHANGED
@@ -179,6 +179,47 @@ def make
|
|
179
179
|
else
|
180
180
|
puts Pastel.new.bright_cyan("make> ") + "completed"
|
181
181
|
end
|
182
|
-
|
182
|
+
if !File.exist?('./.make_script.yaml')
|
183
|
+
File.open('.gitignore', 'a') do |f|
|
184
|
+
f << "\n.make_script.yaml\n"
|
185
|
+
end
|
186
|
+
end
|
183
187
|
File.open('./.make_script.yaml', 'w') { |f| f.write(YAML.dump($cur_file_time_dict)) }
|
184
188
|
end
|
189
|
+
|
190
|
+
def dump_md(filename, thisfile="make.rb")
|
191
|
+
puts Pastel.new.bright_cyan("make> ") + "dumping markdown file #{filename}"
|
192
|
+
File.open(filename, 'w') do |f|
|
193
|
+
f.puts "# #{thisfile} Documentation"
|
194
|
+
f.puts ""
|
195
|
+
if block_given?
|
196
|
+
yield f
|
197
|
+
f.puts ""
|
198
|
+
end
|
199
|
+
f.puts "## Usage"
|
200
|
+
f.puts ""
|
201
|
+
f.puts "Please install ruby and some package first:"
|
202
|
+
f.puts ""
|
203
|
+
f.puts "```sh"
|
204
|
+
f.puts "$ apt instal ruby"
|
205
|
+
f.puts "$ gem instal pastel ruby_make_script"
|
206
|
+
f.puts "```"
|
207
|
+
f.puts ""
|
208
|
+
f.puts "then you can run these command below."
|
209
|
+
$targetlist.each { |t|
|
210
|
+
if t.class == PhonyTarget
|
211
|
+
args = t.doc.arglist.map{ |a| a[0] }.join(' ')
|
212
|
+
f.puts "### `./#{thisfile} #{t.target} #{args}`"
|
213
|
+
f.puts ""
|
214
|
+
f.puts "#{t.doc.descr}"
|
215
|
+
f.puts ""
|
216
|
+
t.doc.arglist.each { |a|
|
217
|
+
f.puts "* `#{a[0]}` : #{a[1]}"
|
218
|
+
}
|
219
|
+
if t.doc.arglist != []
|
220
|
+
f.puts ""
|
221
|
+
end
|
222
|
+
end
|
223
|
+
}
|
224
|
+
end
|
225
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
|
2
|
+
class TargetDoc
|
3
|
+
attr_accessor :arglist
|
4
|
+
attr_accessor :descr
|
5
|
+
attr_accessor :name
|
6
|
+
|
7
|
+
def initialize()
|
8
|
+
@arglist = []
|
9
|
+
@descr = ""
|
10
|
+
@name = ""
|
11
|
+
end
|
12
|
+
def set_name(name)
|
13
|
+
@name = name
|
14
|
+
end
|
15
|
+
|
16
|
+
def add_arg(name, doc)
|
17
|
+
@arglist += [[name, doc]]
|
18
|
+
end
|
19
|
+
|
20
|
+
def add_descr(str)
|
21
|
+
@descr += str + "\n"
|
22
|
+
end
|
23
|
+
|
24
|
+
def empty?()
|
25
|
+
@arglist == [] || @descr == ""
|
26
|
+
end
|
27
|
+
|
28
|
+
def form_str()
|
29
|
+
[@name, *@arglist].join(" ")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
$targetdoc = TargetDoc.new
|
34
|
+
|
35
|
+
def descr!(str)
|
36
|
+
$targetdoc.add_descr(str)
|
37
|
+
end
|
38
|
+
|
39
|
+
def arg!(name, doc)
|
40
|
+
$targetdoc.add_arg(name, doc)
|
41
|
+
end
|
42
|
+
|
@@ -1,8 +1,10 @@
|
|
1
1
|
$t = []
|
2
2
|
$d = []
|
3
3
|
|
4
|
-
|
4
|
+
require "ruby_make_script/doc"
|
5
5
|
|
6
|
+
module Target
|
7
|
+
|
6
8
|
def depend_each
|
7
9
|
depend.each { |f|
|
8
10
|
yield f
|
@@ -39,6 +41,7 @@ class FileTarget
|
|
39
41
|
resolve(f)
|
40
42
|
}
|
41
43
|
end
|
44
|
+
|
42
45
|
def run
|
43
46
|
if ! @completed
|
44
47
|
@update_proc.call
|
@@ -53,6 +56,7 @@ class FileTarget
|
|
53
56
|
@depend = []
|
54
57
|
@completed = false
|
55
58
|
end
|
59
|
+
|
56
60
|
def from(*dependlist)
|
57
61
|
@depend = dependlist
|
58
62
|
@update_proc = Proc.new {
|
@@ -72,7 +76,9 @@ end
|
|
72
76
|
|
73
77
|
class PhonyTarget
|
74
78
|
include Target
|
79
|
+
attr_accessor :target
|
75
80
|
attr_accessor :depend
|
81
|
+
attr_accessor :doc
|
76
82
|
def resolve_all
|
77
83
|
resolve(@target)
|
78
84
|
end
|
@@ -88,6 +94,9 @@ class PhonyTarget
|
|
88
94
|
@target = str
|
89
95
|
@depend = []
|
90
96
|
@completed = false
|
97
|
+
|
98
|
+
@doc = $targetdoc
|
99
|
+
$targetdoc = TargetDoc.new
|
91
100
|
end
|
92
101
|
|
93
102
|
def from(*dependlist)
|
data/make.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# `make.rb` Usage### `make.rb setup <args...>`
|
data/test.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_make_script
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dnailz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-06-
|
11
|
+
date: 2020-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -83,9 +83,11 @@ files:
|
|
83
83
|
- bin/console
|
84
84
|
- bin/setup
|
85
85
|
- lib/ruby_make_script.rb
|
86
|
+
- lib/ruby_make_script/doc.rb
|
86
87
|
- lib/ruby_make_script/target.rb
|
87
88
|
- lib/ruby_make_script/utils.rb
|
88
89
|
- lib/ruby_make_script/version.rb
|
90
|
+
- make.md
|
89
91
|
- ruby_make_script.gemspec
|
90
92
|
- test.rb
|
91
93
|
homepage: https://github.com/DnailZ/ruby_make_script
|