exctl 0.0.1 → 0.0.2
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.
- data/README.md +10 -0
- data/VERSION +1 -1
- data/bin/exctl +4 -0
- data/exctl.gemspec +65 -0
- data/lib/exctl/cli.rb +48 -0
- data/lib/exctl.rb +7 -0
- metadata +8 -4
data/README.md
CHANGED
@@ -11,6 +11,16 @@ runtime tasks (such as running the application).
|
|
11
11
|
|
12
12
|
Why? Because I've reimplemented this so many times for specific projects that I'm finally abstracting it.
|
13
13
|
|
14
|
+
|
15
|
+
command-line usage
|
16
|
+
------------------
|
17
|
+
|
18
|
+
`exctl init my-project`
|
19
|
+
|
20
|
+
Inits (in this case) the current directory. Installs or updates local copies of exctl-dispatch and its auxiliary files.
|
21
|
+
|
22
|
+
|
23
|
+
|
14
24
|
Copyright
|
15
25
|
---------
|
16
26
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/bin/exctl
ADDED
data/exctl.gemspec
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "exctl"
|
8
|
+
s.version = "0.0.2"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Joseph Wecker"]
|
12
|
+
s.date = "2013-11-12"
|
13
|
+
s.description = "Allows you to create a command-line dispatcher for a project to consolidate dev, release, and runtime workflows."
|
14
|
+
s.email = "joseph.wecker@gmail.com"
|
15
|
+
s.executables = ["exctl"]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"LICENSE",
|
18
|
+
"README.md"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
".attic/c_src/get-version.c",
|
22
|
+
".document",
|
23
|
+
"Gemfile",
|
24
|
+
"Gemfile.lock",
|
25
|
+
"LICENSE",
|
26
|
+
"OPERUM.md",
|
27
|
+
"README.md",
|
28
|
+
"Rakefile",
|
29
|
+
"VERSION",
|
30
|
+
"bin/exctl",
|
31
|
+
"exctl.gemspec",
|
32
|
+
"lib/exctl.rb",
|
33
|
+
"lib/exctl/cli.rb",
|
34
|
+
"notes.md",
|
35
|
+
"test/helper.rb",
|
36
|
+
"test/test_exctl.rb"
|
37
|
+
]
|
38
|
+
s.homepage = "http://github.com/josephwecker/exctl"
|
39
|
+
s.licenses = ["MIT"]
|
40
|
+
s.require_paths = ["lib"]
|
41
|
+
s.rubygems_version = "1.8.25"
|
42
|
+
s.summary = "Project-specific command-line task dispatcher generator."
|
43
|
+
|
44
|
+
if s.respond_to? :specification_version then
|
45
|
+
s.specification_version = 3
|
46
|
+
|
47
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
48
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
49
|
+
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
50
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
51
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.8.7"])
|
52
|
+
else
|
53
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
54
|
+
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
55
|
+
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
56
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.7"])
|
57
|
+
end
|
58
|
+
else
|
59
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
60
|
+
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
61
|
+
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
62
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.7"])
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
data/lib/exctl/cli.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# TODO: Yes, at some point this will be bootstrapped by exctl itself.
|
2
|
+
|
3
|
+
module Exctl
|
4
|
+
def self.cli(argv) Exctl::CLI.new(argv).run! end
|
5
|
+
|
6
|
+
class CLI
|
7
|
+
def initialize(argv)
|
8
|
+
@args = argv.clone
|
9
|
+
@cmd = (@args.shift || 'help').strip.downcase
|
10
|
+
@cmd = 'help' if [nil,'-h','--help','h'].include?(@cmd)
|
11
|
+
@cmd = 'version' if [nil,'-v','--version','v'].include?(@cmd)
|
12
|
+
@cmd = ('cmd_' + @cmd.gsub(/^-+/,'').gsub('-','_')).to_sym
|
13
|
+
@opts = {}
|
14
|
+
end
|
15
|
+
|
16
|
+
def run!()
|
17
|
+
if self.respond_to?(@cmd) then self.send @cmd
|
18
|
+
else
|
19
|
+
$stderr.puts "ERROR: Command '#{@cmd}' not implemented."
|
20
|
+
$stderr.puts "USAGE: exctl (#{avail_cmds.join('|')}) [OPTIONS]"
|
21
|
+
exit 1
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def avail_cmds()
|
26
|
+
@avail_cmds ||= (self.methods-Object.methods).map(&:to_s).select{|m|m[0..3]=='cmd_'}.map{|m|m[4..-1]}
|
27
|
+
end
|
28
|
+
|
29
|
+
def doc_help; 'Output this help.' end
|
30
|
+
def cmd_help
|
31
|
+
puts "exctl - Execution control; project command-line generator."
|
32
|
+
puts " v#{Exctl.version}\n\n"
|
33
|
+
puts "USAGE: exctl (#{avail_cmds.join('|')}) [OPTIONS]\n\n"
|
34
|
+
puts avail_cmds.map{|c| hc='doc_'+c; respond_to?(hc) ? ' ' + c.ljust(10) + ': ' + send(hc) : nil}.compact.join("\n") + "\n\n"
|
35
|
+
end
|
36
|
+
|
37
|
+
def cmd_version
|
38
|
+
puts Exctl.version
|
39
|
+
end
|
40
|
+
|
41
|
+
def doc_init; 'BIN-NAME [DIR=.] - Creates/updates main ctl script and support files in the given DIR.' end
|
42
|
+
def cmd_init
|
43
|
+
|
44
|
+
$stderr.puts "just kidding, not implemented yet."
|
45
|
+
exit 1
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/lib/exctl.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exctl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-11-
|
12
|
+
date: 2013-11-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: shoulda
|
@@ -78,7 +78,8 @@ dependencies:
|
|
78
78
|
description: Allows you to create a command-line dispatcher for a project to consolidate
|
79
79
|
dev, release, and runtime workflows.
|
80
80
|
email: joseph.wecker@gmail.com
|
81
|
-
executables:
|
81
|
+
executables:
|
82
|
+
- exctl
|
82
83
|
extensions: []
|
83
84
|
extra_rdoc_files:
|
84
85
|
- LICENSE
|
@@ -93,7 +94,10 @@ files:
|
|
93
94
|
- README.md
|
94
95
|
- Rakefile
|
95
96
|
- VERSION
|
97
|
+
- bin/exctl
|
98
|
+
- exctl.gemspec
|
96
99
|
- lib/exctl.rb
|
100
|
+
- lib/exctl/cli.rb
|
97
101
|
- notes.md
|
98
102
|
- test/helper.rb
|
99
103
|
- test/test_exctl.rb
|
@@ -112,7 +116,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
112
116
|
version: '0'
|
113
117
|
segments:
|
114
118
|
- 0
|
115
|
-
hash: -
|
119
|
+
hash: -3768507583342469896
|
116
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
121
|
none: false
|
118
122
|
requirements:
|