lake 0.1.3 → 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/bin/lake +1 -0
- data/bin/lake-gen +76 -0
- data/lib/lake/gen/erb.rb +13 -0
- data/lib/lake/gen.rb +10 -0
- data/lib/lake/utils.rb +7 -0
- data/lib/lake.rb +27 -12
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02079022e1dfb242f0b79d8561ce277469a77173
|
4
|
+
data.tar.gz: 520e8cd20ccd5927866032e3765871955567b238
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17e7a806e952f0c951d3ab0d0914601c60a76dec1dee4d22f8a2e9db5e621709fef5c1d061b1335769caef37cb200bba222acac6f6fdf876ee4b75f7a7dee993
|
7
|
+
data.tar.gz: 4b8027c4137e485b69af0bd1552c93667c61038795a3f3d631ca1d98671cc6200724af5facf980017fc1bf3ab4d264a690e3fc303ce434dfaac0b4fe13f4052f
|
data/bin/lake
CHANGED
data/bin/lake-gen
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require 'lake/utils'
|
4
|
+
require 'lake/gen'
|
5
|
+
require 'optparse'
|
6
|
+
require 'open-uri'
|
7
|
+
|
8
|
+
class Opts
|
9
|
+
class << self
|
10
|
+
attr_accessor :out,:install
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
OptionParser.new do |o|
|
15
|
+
o.banner = "LakeGen"
|
16
|
+
o.on("-nNAME","--name=NAME","Set file name"){
|
17
|
+
|name|
|
18
|
+
Opts.out = name
|
19
|
+
}
|
20
|
+
o.on("-l","--list","List available templates and exit"){
|
21
|
+
puts "[INFO] Available templates:"
|
22
|
+
Dir.chdir(Dir.home) do
|
23
|
+
Dir.mkdir(".lake-gen") unless File.exists? ".lake-gen"
|
24
|
+
Dir.chdir(".lake-gen") do
|
25
|
+
puts Dir.glob("**/*.erb").map{|e| File.basename(e,".erb")}.join("\n\t")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
exit
|
29
|
+
}
|
30
|
+
o.on("-iURL","--install=URL","Install template and exit"){
|
31
|
+
|url|
|
32
|
+
puts "[INFO] Install mode enabled"
|
33
|
+
Opts.install = url
|
34
|
+
}
|
35
|
+
o.on("-h","--help","Print this help"){puts o; exit}
|
36
|
+
end.parse!
|
37
|
+
|
38
|
+
def p_usage
|
39
|
+
puts "Usage:\n\tlake-gen (-h|--help) # Print this help"
|
40
|
+
puts "\tlake-gen (-i|--install) <url> [(-n|--name) <name>] # Download template <url> [and install as <name>]"
|
41
|
+
puts "\tlake-gen (-l|--list) # List templates"
|
42
|
+
puts "\tlake-gen [(-n|--name) <name>] <template> <arg1> ... <argN> # Generate file [and save as <name>"
|
43
|
+
end
|
44
|
+
|
45
|
+
def try_render(inp,out,argv)
|
46
|
+
content = ""
|
47
|
+
Dir.chdir(Dir.home) do
|
48
|
+
Dir.mkdir(".lake-gen") unless File.exists? ".lake-gen"
|
49
|
+
Dir.chdir(".lake-gen") do
|
50
|
+
if File.exists? inp then
|
51
|
+
content = File.read inp
|
52
|
+
else
|
53
|
+
puts "[FATAL] Cannot find #{inp}"
|
54
|
+
exit 1
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
Lake::Gen::render_template(content,argv,out)
|
59
|
+
end
|
60
|
+
|
61
|
+
if Opts.install then
|
62
|
+
puts "[INFO] Installing #{Opts.install}"
|
63
|
+
file = Opts.install
|
64
|
+
Opts.out ||= File.basename(file)
|
65
|
+
File.open(File.join(Dir.home,".lake-gen",Opts.out),"w"){
|
66
|
+
|f|
|
67
|
+
f.write File.read(file)
|
68
|
+
}
|
69
|
+
puts "[INFO] Successfully installed #{Opts.out}"
|
70
|
+
elsif ARGV.size > 0
|
71
|
+
file = ARGV.shift
|
72
|
+
Opts.out ||= File.basename(file,".erb")
|
73
|
+
try_render file, Opts.out, ARGV
|
74
|
+
else
|
75
|
+
p_usage
|
76
|
+
end
|
data/lib/lake/gen/erb.rb
ADDED
data/lib/lake/gen.rb
ADDED
data/lib/lake/utils.rb
ADDED
data/lib/lake.rb
CHANGED
@@ -1,26 +1,37 @@
|
|
1
1
|
$targets = {}
|
2
2
|
|
3
3
|
module Lake
|
4
|
-
VERSION='0.1.
|
4
|
+
VERSION='0.1.6'
|
5
5
|
Target = Struct.new(:name,:proc,:deps,:flags) do
|
6
6
|
def build
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
if need_build? then
|
8
|
+
puts "[INFO] Building #{name}"
|
9
|
+
deps.each{
|
10
|
+
|e|
|
11
|
+
$targets[e.to_s].build
|
12
|
+
}
|
13
|
+
proc.call if proc
|
14
|
+
else
|
15
|
+
puts "[INFO] #{name} is already built"
|
13
16
|
end
|
14
|
-
puts "[INFO] Building #{name}"
|
15
|
-
proc.call if proc
|
16
17
|
end
|
17
18
|
|
18
19
|
def need_build?
|
19
20
|
for dep in deps do
|
20
|
-
return true if not $targets[dep.to_s] and File.exists? dep.to_s
|
21
|
-
return true if $targets[dep.to_s] and $targets[dep.to_s].need_build?
|
21
|
+
#return true if not $targets[dep.to_s] and not File.exists? dep.to_s
|
22
|
+
#return true if $targets[dep.to_s] and $targets[dep.to_s].need_build?
|
23
|
+
if $targets[dep.to_s] then
|
24
|
+
return true if $targets[dep.to_s].need_build?
|
25
|
+
else
|
26
|
+
return true unless File.exists? dep.to_s
|
27
|
+
end
|
28
|
+
end
|
29
|
+
return true if flags[:unchecked]
|
30
|
+
if flags[:virtual] then
|
31
|
+
return false
|
32
|
+
else
|
33
|
+
return ! File.exists?(name.to_s)
|
22
34
|
end
|
23
|
-
(!dep)||(!File.exists? dep)||(flags[:unchecked])
|
24
35
|
end
|
25
36
|
end
|
26
37
|
|
@@ -57,6 +68,10 @@ module Lake
|
|
57
68
|
return name
|
58
69
|
end
|
59
70
|
|
71
|
+
def virtual(name)
|
72
|
+
$targets[name].flags[:virtual] = true
|
73
|
+
end
|
74
|
+
|
60
75
|
def use(*plugin)
|
61
76
|
plugin.each{|p|require "lake/plugins/#{p.to_s}"}
|
62
77
|
end
|
metadata
CHANGED
@@ -1,24 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lake
|
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
|
- Stepan unn4m3d Melnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Lake - a Make-style build system with Ruby syntax
|
14
14
|
email: smelnikov871@gmail.com
|
15
15
|
executables:
|
16
16
|
- lake
|
17
|
+
- lake-gen
|
17
18
|
extensions: []
|
18
19
|
extra_rdoc_files: []
|
19
20
|
files:
|
20
21
|
- bin/lake
|
22
|
+
- bin/lake-gen
|
21
23
|
- lib/lake.rb
|
24
|
+
- lib/lake/gen.rb
|
25
|
+
- lib/lake/gen/erb.rb
|
26
|
+
- lib/lake/utils.rb
|
22
27
|
homepage: https://github.com/unn4m3d/lake
|
23
28
|
licenses:
|
24
29
|
- MIT
|