kojo 0.1.3 → 0.2.0
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/bin/kojo +1 -4
- data/lib/kojo/cli.rb +17 -0
- data/lib/kojo/commands/config.rb +52 -0
- data/lib/kojo/commands/dir.rb +61 -0
- data/lib/kojo/commands/file.rb +47 -0
- data/lib/kojo/commands.rb +3 -0
- data/lib/kojo/version.rb +1 -1
- data/lib/kojo.rb +2 -0
- metadata +8 -9
- data/bin/kojo-config.rb +0 -44
- data/bin/kojo-dir.rb +0 -54
- data/bin/kojo-file.rb +0 -38
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45f5390450577b2234342140411f0e0f2c0d35922dcea389217797ec2937c4f6
|
4
|
+
data.tar.gz: 6646baf64c8ca5df34c0d93b4937ed045efe35514b5f07e25abcf73b92392c6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce8e0883e9c75c615d88c2597554e0b0f927ddef024a36ab62873b4ee67e9193a128f25c70dab4adc70fda927ccdfa1aa0684308c9a82377fb16acf123db6ff9
|
7
|
+
data.tar.gz: d4e562cc197c81f125a43f81ab5c5a0d625cc607fea2556cb5f9baa4b698027291208ca224d719f87421e57812b305f97f8c5804375ba655eb3e81a76c0cd12f
|
data/bin/kojo
CHANGED
data/lib/kojo/cli.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'mister_bin'
|
2
|
+
require 'kojo/commands'
|
3
|
+
|
4
|
+
module Kojo
|
5
|
+
class CLI
|
6
|
+
def self.runner
|
7
|
+
runner = MisterBin::Runner.new version: Kojo::VERSION
|
8
|
+
|
9
|
+
runner.route 'file', to: Kojo::Commands::FileCmd
|
10
|
+
runner.route 'dir', to: Kojo::Commands::DirCmd
|
11
|
+
runner.route 'config', to: Kojo::Commands::ConfigCmd
|
12
|
+
|
13
|
+
runner
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
module Kojo
|
4
|
+
module Commands
|
5
|
+
class ConfigCmd < MisterBin::Command
|
6
|
+
include Colsole
|
7
|
+
|
8
|
+
help "Generate based on instructions from a config file"
|
9
|
+
|
10
|
+
usage "kojo config CONFIG [--save DIR --args FILE] [ARGS...]"
|
11
|
+
usage "kojo config (-h|--help)"
|
12
|
+
|
13
|
+
option "-s --save DIR", "Save output to directory instead of printing"
|
14
|
+
option "-a --args FILE", "Load arguments from YAML file"
|
15
|
+
|
16
|
+
param "ARGS", "Optional key=value pairs"
|
17
|
+
|
18
|
+
example "kojo config config.yml"
|
19
|
+
example "kojo config config.yml --save output"
|
20
|
+
example "kojo config config.yml -s output scale=3"
|
21
|
+
example "kojo config config.yml -s output --args args.yml"
|
22
|
+
|
23
|
+
def run(args)
|
24
|
+
gen = Kojo::Generator.new args['CONFIG']
|
25
|
+
outdir = args['--save']
|
26
|
+
opts = args['ARGS'].args_to_hash
|
27
|
+
argfile = args['--args']
|
28
|
+
|
29
|
+
if argfile
|
30
|
+
fileopts = YAML.load_file(argfile).symbolize_keys
|
31
|
+
opts = fileopts.merge opts
|
32
|
+
end
|
33
|
+
|
34
|
+
gen.generate opts do |file, output|
|
35
|
+
path = "#{outdir}/#{file}"
|
36
|
+
if outdir
|
37
|
+
dir = File.dirname path
|
38
|
+
FileUtils.mkdir_p dir unless Dir.exist? dir
|
39
|
+
|
40
|
+
File.write path, output
|
41
|
+
say "Saved #{path}"
|
42
|
+
else
|
43
|
+
say "\n!txtgrn!# #{file}"
|
44
|
+
say output
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Kojo
|
2
|
+
module Commands
|
3
|
+
class DirCmd < MisterBin::Command
|
4
|
+
include Colsole
|
5
|
+
|
6
|
+
help "Compile a folder of templates to a similar output folder"
|
7
|
+
|
8
|
+
usage "kojo dir INDIR [--save DIR --import DIR --args FILE] [ARGS...]"
|
9
|
+
usage "kojo dir (-h|--help)"
|
10
|
+
|
11
|
+
option "-s --save DIR", "Save output to directory instead of printing"
|
12
|
+
option "-i --import DIR", "Specify base directory for @import directives"
|
13
|
+
option "-a --args FILE", "Load arguments from YAML file"
|
14
|
+
|
15
|
+
param "ARGS", "Optional key=value pairs"
|
16
|
+
|
17
|
+
example "kojo dir indir"
|
18
|
+
example "kojo dir in --save out env=production"
|
19
|
+
example "kojo dir in --save out --import snippets env=production"
|
20
|
+
example "kojo dir in -s out -i snippets -a args.yml"
|
21
|
+
|
22
|
+
def run(args)
|
23
|
+
opts = args['ARGS'].args_to_hash
|
24
|
+
indir = args['INDIR']
|
25
|
+
outdir = args['--save']
|
26
|
+
import_base = args['--import']
|
27
|
+
argfile = args['--args']
|
28
|
+
|
29
|
+
if argfile
|
30
|
+
fileopts = YAML.load_file(argfile).symbolize_keys
|
31
|
+
opts = fileopts.merge opts
|
32
|
+
end
|
33
|
+
|
34
|
+
files = Dir["#{indir}/**/*"].reject { |file| File.directory? file }
|
35
|
+
|
36
|
+
files.each do |file|
|
37
|
+
|
38
|
+
template = Kojo::Template.new(file, opts)
|
39
|
+
template.import_base = import_base if import_base
|
40
|
+
output = template.render
|
41
|
+
|
42
|
+
if outdir
|
43
|
+
outpath = file.sub(/#{indir}/, outdir)
|
44
|
+
|
45
|
+
dir = File.dirname outpath
|
46
|
+
FileUtils.mkdir_p dir unless Dir.exist? dir
|
47
|
+
|
48
|
+
File.write outpath, output
|
49
|
+
say "Saved #{outpath}"
|
50
|
+
else
|
51
|
+
outpath = file.sub(/#{indir}/, '')
|
52
|
+
say "\n!txtgrn!# #{outpath}"
|
53
|
+
say output
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'kojo'
|
2
|
+
|
3
|
+
module Kojo
|
4
|
+
module Commands
|
5
|
+
class FileCmd < MisterBin::Command
|
6
|
+
include Colsole
|
7
|
+
|
8
|
+
help "Compile a file from a template"
|
9
|
+
|
10
|
+
usage "kojo file INFILE [--save FILE --args FILE] [ARGS...]"
|
11
|
+
usage "kojo file (-h|--help)"
|
12
|
+
|
13
|
+
option "-s --save FILE", "Save to file instead of printing"
|
14
|
+
option "-a --args FILE", "Load arguments from YAML file"
|
15
|
+
|
16
|
+
param "ARGS", "Optional key=value pairs"
|
17
|
+
|
18
|
+
example "kojo file main.yml"
|
19
|
+
example "kojo file main.yml --save out.yml"
|
20
|
+
example "kojo file main.yml -s out.yml app=lause"
|
21
|
+
example "kojo file main.yml -s out.yml --args args.yml"
|
22
|
+
|
23
|
+
def run(args)
|
24
|
+
opts = args['ARGS'].args_to_hash
|
25
|
+
outfile = args['--save']
|
26
|
+
infile = args['INFILE']
|
27
|
+
argfile = args['--args']
|
28
|
+
|
29
|
+
if argfile
|
30
|
+
fileopts = YAML.load_file(argfile).symbolize_keys
|
31
|
+
opts = fileopts.merge opts
|
32
|
+
end
|
33
|
+
|
34
|
+
output = Kojo::Template.new(infile, opts).render
|
35
|
+
|
36
|
+
if outfile
|
37
|
+
File.write outfile, output
|
38
|
+
say "Saved #{outfile}"
|
39
|
+
else
|
40
|
+
puts output
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
data/lib/kojo/version.rb
CHANGED
data/lib/kojo.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kojo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danny Ben Shitrit
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
19
|
+
version: '0.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0.
|
26
|
+
version: '0.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: byebug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,18 +113,17 @@ description: Generate configuration files from templates, using variables and de
|
|
113
113
|
email: db@dannyben.com
|
114
114
|
executables:
|
115
115
|
- kojo
|
116
|
-
- kojo-config.rb
|
117
|
-
- kojo-dir.rb
|
118
|
-
- kojo-file.rb
|
119
116
|
extensions: []
|
120
117
|
extra_rdoc_files: []
|
121
118
|
files:
|
122
119
|
- README.md
|
123
120
|
- bin/kojo
|
124
|
-
- bin/kojo-config.rb
|
125
|
-
- bin/kojo-dir.rb
|
126
|
-
- bin/kojo-file.rb
|
127
121
|
- lib/kojo.rb
|
122
|
+
- lib/kojo/cli.rb
|
123
|
+
- lib/kojo/commands.rb
|
124
|
+
- lib/kojo/commands/config.rb
|
125
|
+
- lib/kojo/commands/dir.rb
|
126
|
+
- lib/kojo/commands/file.rb
|
128
127
|
- lib/kojo/extensions/array.rb
|
129
128
|
- lib/kojo/extensions/hash.rb
|
130
129
|
- lib/kojo/generator.rb
|
data/bin/kojo-config.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
require 'kojo'
|
2
|
-
require 'fileutils'
|
3
|
-
|
4
|
-
help "Generate based on instructions from a config file"
|
5
|
-
|
6
|
-
usage "kojo config CONFIG [--save DIR --args FILE] [ARGS...]"
|
7
|
-
usage "kojo config (-h|--help)"
|
8
|
-
|
9
|
-
option "-s --save DIR", "Save output to directory instead of printing"
|
10
|
-
option "-a --args FILE", "Load arguments from YAML file"
|
11
|
-
|
12
|
-
param "ARGS", "Optional key=value pairs"
|
13
|
-
|
14
|
-
example "kojo config config.yml"
|
15
|
-
example "kojo config config.yml --save output"
|
16
|
-
example "kojo config config.yml -s output scale=3"
|
17
|
-
example "kojo config config.yml -s output --args args.yml"
|
18
|
-
|
19
|
-
action do |args|
|
20
|
-
gen = Kojo::Generator.new args['CONFIG']
|
21
|
-
outdir = args['--save']
|
22
|
-
opts = args['ARGS'].args_to_hash
|
23
|
-
argfile = args['--args']
|
24
|
-
|
25
|
-
if argfile
|
26
|
-
fileopts = YAML.load_file(argfile).symbolize_keys
|
27
|
-
opts = fileopts.merge opts
|
28
|
-
end
|
29
|
-
|
30
|
-
gen.generate opts do |file, output|
|
31
|
-
path = "#{outdir}/#{file}"
|
32
|
-
if outdir
|
33
|
-
dir = File.dirname path
|
34
|
-
FileUtils.mkdir_p dir unless Dir.exist? dir
|
35
|
-
|
36
|
-
File.write path, output
|
37
|
-
say "Saved #{path}"
|
38
|
-
else
|
39
|
-
say "\n!txtgrn!# #{file}"
|
40
|
-
say output
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
data/bin/kojo-dir.rb
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
require 'kojo'
|
2
|
-
|
3
|
-
help "Compile a folder of templates to a similar output folder"
|
4
|
-
|
5
|
-
usage "kojo dir INDIR [--save DIR --import DIR --args FILE] [ARGS...]"
|
6
|
-
usage "kojo dir (-h|--help)"
|
7
|
-
|
8
|
-
option "-s --save DIR", "Save output to directory instead of printing"
|
9
|
-
option "-i --import DIR", "Specify base directory for @import directives"
|
10
|
-
option "-a --args FILE", "Load arguments from YAML file"
|
11
|
-
|
12
|
-
param "ARGS", "Optional key=value pairs"
|
13
|
-
|
14
|
-
example "kojo dir indir"
|
15
|
-
example "kojo dir in --save out env=production"
|
16
|
-
example "kojo dir in --save out --import snippets env=production"
|
17
|
-
example "kojo dir in -s out -i snippets -a args.yml"
|
18
|
-
|
19
|
-
action do |args|
|
20
|
-
opts = args['ARGS'].args_to_hash
|
21
|
-
indir = args['INDIR']
|
22
|
-
outdir = args['--save']
|
23
|
-
import_base = args['--import']
|
24
|
-
argfile = args['--args']
|
25
|
-
|
26
|
-
if argfile
|
27
|
-
fileopts = YAML.load_file(argfile).symbolize_keys
|
28
|
-
opts = fileopts.merge opts
|
29
|
-
end
|
30
|
-
|
31
|
-
files = Dir["#{indir}/**/*"].reject { |file| File.directory? file }
|
32
|
-
|
33
|
-
files.each do |file|
|
34
|
-
|
35
|
-
template = Kojo::Template.new(file, opts)
|
36
|
-
template.import_base = import_base if import_base
|
37
|
-
output = template.render
|
38
|
-
|
39
|
-
if outdir
|
40
|
-
outpath = file.sub(/#{indir}/, outdir)
|
41
|
-
|
42
|
-
dir = File.dirname outpath
|
43
|
-
FileUtils.mkdir_p dir unless Dir.exist? dir
|
44
|
-
|
45
|
-
File.write outpath, output
|
46
|
-
say "Saved #{outpath}"
|
47
|
-
else
|
48
|
-
outpath = file.sub(/#{indir}/, '')
|
49
|
-
say "\n!txtgrn!# #{outpath}"
|
50
|
-
say output
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
data/bin/kojo-file.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'kojo'
|
2
|
-
|
3
|
-
help "Compile a file from a template"
|
4
|
-
|
5
|
-
usage "kojo file INFILE [--save FILE --args FILE] [ARGS...]"
|
6
|
-
usage "kojo file (-h|--help)"
|
7
|
-
|
8
|
-
option "-s --save FILE", "Save to file instead of printing"
|
9
|
-
option "-a --args FILE", "Load arguments from YAML file"
|
10
|
-
|
11
|
-
param "ARGS", "Optional key=value pairs"
|
12
|
-
|
13
|
-
example "kojo file main.yml"
|
14
|
-
example "kojo file main.yml --save out.yml"
|
15
|
-
example "kojo file main.yml -s out.yml app=lause"
|
16
|
-
example "kojo file main.yml -s out.yml --args args.yml"
|
17
|
-
|
18
|
-
action do |args|
|
19
|
-
opts = args['ARGS'].args_to_hash
|
20
|
-
outfile = args['--save']
|
21
|
-
infile = args['INFILE']
|
22
|
-
argfile = args['--args']
|
23
|
-
|
24
|
-
if argfile
|
25
|
-
fileopts = YAML.load_file(argfile).symbolize_keys
|
26
|
-
opts = fileopts.merge opts
|
27
|
-
end
|
28
|
-
|
29
|
-
output = Kojo::Template.new(infile, opts).render
|
30
|
-
|
31
|
-
if outfile
|
32
|
-
File.write outfile, output
|
33
|
-
say "Saved #{outfile}"
|
34
|
-
else
|
35
|
-
puts output
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|