ki-repo 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/LICENSE.txt +1 -1
- data/README.md +21 -0
- data/VERSION +1 -1
- data/bin/ki +1 -1
- data/docs/backlog.md +10 -10
- data/docs/development.md +3 -1
- data/docs/ki_commands.md +35 -6
- data/docs/repository_basics.md +12 -1
- data/docs/writing_extensions.md +25 -7
- data/lib/cmd/cmd.rb +69 -54
- data/lib/cmd/user_pref_cmd.rb +47 -37
- data/lib/cmd/version_cmd.rb +116 -113
- data/lib/data_access/repository_finder.rb +1 -1
- data/lib/data_access/repository_info.rb +1 -1
- data/lib/data_access/version_helpers.rb +11 -11
- data/lib/data_access/version_iterators.rb +6 -6
- data/lib/data_access/version_operations.rb +1 -1
- data/lib/data_storage/dir_base.rb +20 -18
- data/lib/data_storage/ki_home.rb +1 -1
- data/lib/data_storage/ki_json.rb +4 -2
- data/lib/data_storage/repository.rb +1 -1
- data/lib/data_storage/version_metadata.rb +54 -39
- data/lib/ki_repo_all.rb +7 -1
- data/lib/util/attr_chain.rb +2 -2
- data/lib/util/exception_catcher.rb +1 -1
- data/lib/util/hash.rb +1 -1
- data/lib/util/hash_cache.rb +1 -1
- data/lib/util/hash_log.rb +93 -0
- data/lib/util/ruby_extensions.rb +58 -21
- data/lib/util/service_registry.rb +1 -1
- data/lib/util/shell.rb +96 -0
- data/lib/util/simple_optparse.rb +6 -4
- data/lib/util/test.rb +13 -1
- data/lib/web/default_rack_handler.rb +43 -0
- data/lib/web/rack_cmd.rb +161 -0
- data/lib/web/test_browser.rb +69 -0
- metadata +80 -24
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YmQ2ZWU2NzU1OGRiMzZjMjJmZWY4Zjg4YTAzY2NhM2ZmOTAwZTU5YQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ZDUxMjViYmY2ZTU3ZTg0NGQ2MzViNjUwZDVkMzU3MmY2N2FjNWZiYw==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YTRjZTJlN2YwNWY3NTA0NTVjYTU5N2IxZDFjZTAzZjVhNjJjMzE0MjI4MDcz
|
10
|
+
NjM1NjU1YzhhN2Q2ZTc4YjU3OGEyY2Q1Mzk0ODBmOTlkZTM5ZWY4NmZhZjlh
|
11
|
+
YjBmZWI1ZjRlYjgyMjE0NDFhZTM2YjEzNmU0MGQ4NDQ2MzYyNjc=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NWIwM2NmOTU4YmZlMjZiODg2NmYzZDFjYzgwMjE4MTRkZDkzMTk5YzIyY2Vj
|
14
|
+
MWFjYjcyMGJiMmNkZGMwNjRkYzE2ZDY3OTVmZjRmNWI2ZTQ5Mjk0M2Q3NmQw
|
15
|
+
OGNmYzdhMmZhOGYzNjc2M2Q3MzFmYTU3Y2EzYTQ2YTNiNWMxMjI=
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -8,6 +8,7 @@ note: Currently Ki is not ready for any kind of use.
|
|
8
8
|
|
9
9
|
* Rubygem: https://rubygems.org/gems/ki-repo
|
10
10
|
* Documentation for latest released version is available at http://rubydoc.info/gems/ki-repo
|
11
|
+
* See also ki-flow, the advanced CI system: http://ki-flow.org and https://github.com/mikko-apo/ki-flow
|
11
12
|
|
12
13
|
# Documentation
|
13
14
|
|
@@ -26,6 +27,26 @@ note: Currently Ki is not ready for any kind of use.
|
|
26
27
|
Once these features are implemented Ki is ready for use on local server. In the future, the goal is to provide tools
|
27
28
|
to manage distributed repositories: downloads and replication.
|
28
29
|
|
30
|
+
# Tech stack
|
31
|
+
|
32
|
+
* http://www.ruby-lang.org/en/
|
33
|
+
|
34
|
+
## Testing and documentation
|
35
|
+
|
36
|
+
* http://rspec.info/ - Test framework
|
37
|
+
* http://gofreerange.com/mocha - Ruby test mocking
|
38
|
+
* https://github.com/colszowka/simplecov - Test coverage
|
39
|
+
* http://yardoc.org/ - Yard documentation
|
40
|
+
* https://github.com/rtomayko/rdiscount - Markdown
|
41
|
+
|
42
|
+
## Web
|
43
|
+
|
44
|
+
* http://rack.github.com/ - Ruby web server support
|
45
|
+
* http://www.sinatrarb.com/ - Simple web application framework
|
46
|
+
* http://coffeescript.org/
|
47
|
+
* http://sass-lang.com/
|
48
|
+
* http://code.google.com/p/selenium/wiki/RubyBindings - Selenium WebDriver
|
49
|
+
|
29
50
|
# Copyright
|
30
51
|
|
31
52
|
Copyright (c) 2012 Mikko Apo. See {file:LICENSE.txt} for further details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/bin/ki
CHANGED
data/docs/backlog.md
CHANGED
@@ -1,29 +1,29 @@
|
|
1
|
-
# @title
|
1
|
+
# @title ki-repo: Backlog
|
2
2
|
|
3
|
-
#
|
3
|
+
# Next release
|
4
|
+
* if there is a file ki-version.json under ki-repo directory, many tests fail
|
5
|
+
* /web/ is not registered correctly
|
4
6
|
* fix defined? checks
|
5
|
-
* fix double repository entries in finder.all_repositories "should show imported version"
|
6
|
-
* cleanup gem
|
7
|
-
* create release notes
|
8
|
-
|
9
|
-
# 0.3
|
10
|
-
* cleanup and removal operations
|
11
7
|
* version() returns sometime nil, sometimes Version
|
12
8
|
* version!()
|
13
9
|
* fix Version.exists? - there should be a better way to check if version exists
|
14
10
|
* VersionTester should support test_version(metadata, source)
|
15
11
|
* Download & replication
|
16
|
-
* website command
|
17
12
|
* daemon: long running processes, web site monitoring
|
18
13
|
* multiple local repositories: command line tools and helpers
|
19
|
-
* support for separate binaries directory
|
20
14
|
* pref: define repository lookup order
|
15
|
+
* support for separate binaries directory
|
16
|
+
* cleanup and removal operations
|
17
|
+
* create release notes
|
18
|
+
* web cmd store handler to prefs
|
19
|
+
* version-build can use .ki.yml to build version
|
21
20
|
|
22
21
|
# Future releases
|
23
22
|
* Digital signing
|
24
23
|
* Encrypted/packed packages
|
25
24
|
* Support for using files from other repositories
|
26
25
|
* when building version create file operations based on user's changes
|
26
|
+
* version retention strategy visible from source
|
27
27
|
|
28
28
|
# Maybe at some point...
|
29
29
|
* replace popen4.spawn with Kernel.spawn
|
data/docs/development.md
CHANGED
@@ -16,12 +16,13 @@ Follow the instructions here: {file:docs/development_setup.md}
|
|
16
16
|
* {Ki::KiCommandHelp}, {Ki::KiInfoCommand} - help, ki-info
|
17
17
|
* {Ki::UserPrefCommand} - Stored preferences
|
18
18
|
* {Ki::BuildVersionMetadataFile}, {Ki::TestVersion}, {Ki::ImportVersion}, {Ki::ExportVersion}, {Ki::VersionStatus}, {Ki::ShowVersion}, {Ki::VersionSearch} - repository management
|
19
|
+
* {Ki::RackCommand} - Starts up web application
|
19
20
|
|
20
21
|
## Data storage - files and directories
|
21
22
|
|
22
23
|
* {Ki::KiHome}, {Ki::Repository::Repository}, {Ki::Repository::Component}, {Ki::Repository::Version} - Repository directory objects
|
23
24
|
* {Ki::VersionMetadataFile}, {Ki::Dependency}, {Ki::VersionStatusFile} - Version metadata and statuses
|
24
|
-
* {Ki::
|
25
|
+
* {Ki::DirectoryBase} - Base class for file and directory management
|
25
26
|
* {Ki::KiJSONFile}, {Ki::KiJSONListFile}, {Ki::KiJSONHashFile}, {Ki::KiJSONHashFile::CachedMapDataAccessor} - Base classes for JSON files
|
26
27
|
* {Ki::DirectoryWithChildrenInListFile} - Helper to generate list file class and related methods for a repository object
|
27
28
|
* {Ki::RepositoryMethods}, {Ki::RepositoryMethods::RepositoryListFile} - Repository helper methods
|
@@ -43,3 +44,4 @@ Follow the instructions here: {file:docs/development_setup.md}
|
|
43
44
|
* {ExceptionCatcher} - Execute multiple blocks and process exceptions in the end
|
44
45
|
* {Ki::ServiceRegistry} - Class for storing all Ki extensions
|
45
46
|
* {Ki::SimpleOptionParser} - Simplified OptionParser
|
47
|
+
* {Ki::HashLog} - Hash based logging
|
data/docs/ki_commands.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# @title Ki: Command line utilities
|
2
|
-
# Command line utilities for Ki Repository v0.1.
|
2
|
+
# Command line utilities for Ki Repository v0.1.1
|
3
3
|
"ki" is the main command line tool that starts all other Ki processes. Whenever ki command line tools
|
4
4
|
are executed, ki goes through the following startup process
|
5
5
|
|
@@ -14,12 +14,13 @@ Examples
|
|
14
14
|
ki -u my/tools compile
|
15
15
|
ki -u my/tools:scripts,tools compile
|
16
16
|
|
17
|
-
note: By default only files with tag "ki
|
17
|
+
note: By default only files with tag "ki" are used. Use the 'my/tools:scripts,tools' to define additional tags.
|
18
18
|
|
19
19
|
Common parameters:
|
20
20
|
|
21
21
|
-h, --home Path to Ki root directory
|
22
22
|
-u, --use Use defined scripts
|
23
|
+
--require Require Ruby files, comma separated list
|
23
24
|
|
24
25
|
## help: Displays help for given Ki command
|
25
26
|
|
@@ -30,7 +31,6 @@ Common parameters:
|
|
30
31
|
ki help
|
31
32
|
ki help version-build
|
32
33
|
|
33
|
-
|
34
34
|
## ki-info: Show information about Ki
|
35
35
|
|
36
36
|
"ki ki-info" shows information about Ki.
|
@@ -162,6 +162,14 @@ Status value order is used to determine which statuses match version queries:
|
|
162
162
|
ki version-show -r -d my/component/23 my/product/127
|
163
163
|
ki version-show -f ki-version.json -i binary-dir
|
164
164
|
|
165
|
+
### Parameters
|
166
|
+
|
167
|
+
-r, --recursive Shows version's dependencies.
|
168
|
+
-d, --dirs Shows version's directories.
|
169
|
+
-f, --file FILE Version source file. By default uses file's directory as source for binary files.
|
170
|
+
-i, --input-directory INPUT-DIR Binary file input directory
|
171
|
+
|
172
|
+
|
165
173
|
## version-search: Searches for versions and components
|
166
174
|
|
167
175
|
"ki version-search" searches for versions and components.
|
@@ -188,11 +196,11 @@ Syntax: ki pref prefix|use parameters...
|
|
188
196
|
ki pref prefix -c
|
189
197
|
- clears command prefix list
|
190
198
|
|
191
|
-
### Examples for
|
199
|
+
### Examples for default script loading:
|
192
200
|
ki pref use
|
193
|
-
- shows list of automatically loading scripts. when ki starts up, it looks for all defined versions and loads all files tagged with ki
|
201
|
+
- shows list of automatically loading scripts. when ki starts up, it looks for all defined versions and loads all files tagged with "ki"
|
194
202
|
ki pref use ki/http ki/ftp/123:ki-extra
|
195
|
-
- scripts are loaded from two different version. ki/http uses latest available version and files tagged with "ki
|
203
|
+
- scripts are loaded from two different version. ki/http uses latest available version and files tagged with "ki", ki/ftp uses specific version and files tagged with "ki-extra"
|
196
204
|
ki pref use + ki/scp
|
197
205
|
- adds one more script package version
|
198
206
|
ki pref use - ki/scp ki/ftp/123:ki-extra
|
@@ -200,3 +208,24 @@ Syntax: ki pref prefix|use parameters...
|
|
200
208
|
ki pref use -c
|
201
209
|
- clear use list
|
202
210
|
|
211
|
+
### Examples for default Ruby file requiring:
|
212
|
+
ki pref require
|
213
|
+
ki pref require hooves/default
|
214
|
+
ki pref require + hooves/default
|
215
|
+
ki pref require - hooves/default
|
216
|
+
ki pref require -c
|
217
|
+
|
218
|
+
## web: Starts Ki web server and uses code from Ki packages
|
219
|
+
|
220
|
+
ki-repo has a built in web server.
|
221
|
+
|
222
|
+
### Usage
|
223
|
+
|
224
|
+
ki web - Starts Ki web server
|
225
|
+
|
226
|
+
### Parameters
|
227
|
+
|
228
|
+
--handler HANDLER Use specified Rack Handler
|
229
|
+
--development Development mode, resource urls are reloaded
|
230
|
+
-p, --port PORT Use specified port
|
231
|
+
|
data/docs/repository_basics.md
CHANGED
@@ -41,7 +41,7 @@ Ki-Repo is a repository for storing file packages and metadata about those packa
|
|
41
41
|
An example repository has following structure:
|
42
42
|
|
43
43
|
* Repository has three components: `"my/componentA"`, `"my/componentB"`, `"my/product"`.
|
44
|
-
* Each component maintains a chronological list of versions. For example, `"my/component"` has versions `"
|
44
|
+
* Each component maintains a chronological list of versions. For example, `"my/component"` has versions `"23"`, `"22"` and `"21"`.
|
45
45
|
* Component's name should be a unique identifier and it can include any number of identifiers. Valid component names include `"ki/repo"`, `"ki-repo"` or `"my/test/builds/ki/repo/"`.
|
46
46
|
* Version contains a set of files. Version can also define dependencies and other metadata.
|
47
47
|
|
@@ -144,6 +144,15 @@ File operations are defined for "version-build" with -o and -O parameters
|
|
144
144
|
ki version-build -d my/tests/a/123,name=tests -o "rm *.txt"
|
145
145
|
ki version-build -O "cp scripts/start.sh start.sh"
|
146
146
|
|
147
|
+
### Status information
|
148
|
+
|
149
|
+
Each version can have status values. Status values can be used to tag certain kind of versions (released),
|
150
|
+
or find latest version that has a specific status value:
|
151
|
+
|
152
|
+
my/component:released
|
153
|
+
my/component:IntegrationTest=green
|
154
|
+
|
155
|
+
|
147
156
|
## Component
|
148
157
|
|
149
158
|
Component has only a two responsibilities:
|
@@ -155,6 +164,8 @@ Status value order is used to determine which statuses match version queries:
|
|
155
164
|
|
156
165
|
my/component:maturity>alpha
|
157
166
|
|
167
|
+
"maturity" order could be "alpha,beta,gamma" and latest version that has either beta or gamma would get chosen.
|
168
|
+
|
158
169
|
## Repository
|
159
170
|
|
160
171
|
Repository directory keeps a list of all components that have data in the repository.
|
data/docs/writing_extensions.md
CHANGED
@@ -20,31 +20,49 @@ Examples
|
|
20
20
|
ki -u my/tools compile
|
21
21
|
ki -u my/tools:scripts,tools compile
|
22
22
|
|
23
|
-
note: By default only files with tag "ki
|
23
|
+
note: By default only files with tag "ki" are used. Use the 'my/tools:scripts,tools' to define additional tags.
|
24
24
|
|
25
25
|
Ki's extension mechanism makes it easy to manage different scenarios:
|
26
26
|
* write and distribute command line utilities
|
27
27
|
* use different versions of those utilities at the same time on the same machine (backwards compatability)
|
28
28
|
* add new features to existing utilities: hashing algorithms, integrations to different tools like git, mercurial and svn
|
29
29
|
|
30
|
-
#
|
30
|
+
# Extension points
|
31
|
+
|
32
|
+
{Ki::KiCommand} stores all registered extensions to its class variable {Ki::KiCommand::KiExtensions} ({Ki::ServiceRegistry}).
|
33
|
+
|
34
|
+
Currently used extension points are:
|
35
|
+
|
36
|
+
* /commands/
|
37
|
+
* /hashing/
|
38
|
+
* /web/
|
39
|
+
|
40
|
+
## Command line utility - /commands/
|
31
41
|
|
32
42
|
Command classes are registered with KiCommand.register_cmd
|
33
43
|
|
34
44
|
KiCommand.register_cmd("version-build", BuildVersionMetadataFile)
|
35
45
|
|
36
46
|
They should implement following methods:
|
47
|
+
|
37
48
|
* execute(ctx, args)
|
38
49
|
* help, summary
|
39
50
|
* attr_chain :shell_command, :require is optional but help method can use it to generate more useful help texts
|
40
51
|
|
41
52
|
For more information, see {Ki::ImportVersion}
|
42
53
|
|
43
|
-
|
54
|
+
## Cryptographic hash functions - /hashing/
|
44
55
|
|
45
|
-
|
56
|
+
Classes used for hashing must implement class method digest which returns a class extending Digest::Class
|
46
57
|
|
47
|
-
|
58
|
+
For more information, see {Ki::SHA2} and {Digest::SHA2}
|
48
59
|
|
49
|
-
|
50
|
-
|
60
|
+
## Web classes - /web/
|
61
|
+
|
62
|
+
Ki-repo includes support for running web applications. Web applications are created by creating Rack application classes
|
63
|
+
and tagging each file containing classes with "ki". That way "ki" command loads files and {Ki::RackCommand} starts
|
64
|
+
web application from classes that were loaded. Each class is registered to the path remaining from registration key:
|
65
|
+
|
66
|
+
KiCommand.register("/web/test", MyApp2)
|
67
|
+
|
68
|
+
For more information, see {Ki::RackCommand}
|
data/lib/cmd/cmd.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
|
-
# Copyright 2012 Mikko Apo
|
3
|
+
# Copyright 2012-2013 Mikko Apo
|
4
4
|
#
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
6
|
# you may not use this file except in compliance with the License.
|
@@ -39,12 +39,52 @@ module Ki
|
|
39
39
|
KiExtensions.register(name, clazz)
|
40
40
|
end
|
41
41
|
|
42
|
+
# bin/ki command line tool calls this method, which finds the correct class to manage the execution
|
43
|
+
def execute(args)
|
44
|
+
@use = []
|
45
|
+
@require = []
|
46
|
+
@load = []
|
47
|
+
my_args = opts.parse(args.dup)
|
48
|
+
require_files
|
49
|
+
load_scripts
|
50
|
+
if my_args.empty?
|
51
|
+
KiCommandHelp.new.shell_command("#{0} help").execute(self, [])
|
52
|
+
else
|
53
|
+
find_cmd(my_args.delete_at(0)).execute(self, my_args)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def opts
|
58
|
+
SimpleOptionParser.new do |opts|
|
59
|
+
opts.on("-h", "--home HOME-PATH", "Path to Ki root directory") do |v|
|
60
|
+
ki_home(KiHome.new(v))
|
61
|
+
end
|
62
|
+
opts.on("-u", "--use VER", "Use defined scripts") do |v|
|
63
|
+
@use << v.split(",")
|
64
|
+
end
|
65
|
+
opts.on("--require RUBYFILE", "Require Ruby files, comma separated list") do |v|
|
66
|
+
@require << v.split(",")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def require_files
|
72
|
+
@require.flatten!
|
73
|
+
requires = @require.empty? ? user_pref.requires : @require
|
74
|
+
requires.each do |req|
|
75
|
+
Dir.glob(req).each do |path|
|
76
|
+
require path
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
42
81
|
def load_scripts
|
43
82
|
# load all script files defined in UserPrefFile uses
|
83
|
+
@use.flatten!
|
44
84
|
uses = @use.empty? ? user_pref.uses : @use
|
45
85
|
uses.each do |use_str|
|
46
86
|
ver, tags_str = use_str.split(":")
|
47
|
-
tags = tags_str ? tags_str.split(",") : "ki
|
87
|
+
tags = tags_str ? tags_str.split(",") : "ki"
|
48
88
|
version = ki_home.version(ver)
|
49
89
|
version.find_files.tags(tags).file_list.each do |full_path|
|
50
90
|
load full_path
|
@@ -79,30 +119,6 @@ module Ki
|
|
79
119
|
cmd
|
80
120
|
end
|
81
121
|
|
82
|
-
# bin/kaiju command line tool calls this method, which finds the correct class to manage the execution
|
83
|
-
def execute(args)
|
84
|
-
@use = []
|
85
|
-
my_args = opts.parse(args.dup)
|
86
|
-
load_scripts
|
87
|
-
if my_args.empty?
|
88
|
-
KiCommandHelp.new.shell_command("#{0} help").execute(self, [])
|
89
|
-
else
|
90
|
-
find_cmd(my_args.delete_at(0)).execute(self, my_args)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
def opts
|
95
|
-
o = SimpleOptionParser.new do |opts|
|
96
|
-
opts.on("-h", "--home HOME-PATH", "Path to Ki root directory") do |v|
|
97
|
-
ki_home(KiHome.new(v))
|
98
|
-
end
|
99
|
-
opts.on("-u", "--use VER", "Use defined scripts") do |v|
|
100
|
-
@use << v
|
101
|
-
end
|
102
|
-
end
|
103
|
-
o
|
104
|
-
end
|
105
|
-
|
106
122
|
def help
|
107
123
|
<<EOF
|
108
124
|
"ki" is the main command line tool that starts all other Ki processes. Whenever ki command line tools
|
@@ -119,7 +135,7 @@ Examples
|
|
119
135
|
ki -u my/tools compile
|
120
136
|
ki -u my/tools:scripts,tools compile
|
121
137
|
|
122
|
-
note: By default only files with tag "ki
|
138
|
+
note: By default only files with tag "ki" are used. Use the 'my/tools:scripts,tools' to define additional tags.
|
123
139
|
|
124
140
|
Common parameters:
|
125
141
|
|
@@ -134,17 +150,6 @@ EOF
|
|
134
150
|
attr_chain :summary, -> { "Displays help for given Ki command" }
|
135
151
|
attr_chain :shell_command, :require
|
136
152
|
|
137
|
-
def help
|
138
|
-
<<EOF
|
139
|
-
"#{shell_command}" shows information Ki and its commands.
|
140
|
-
|
141
|
-
### Examples
|
142
|
-
|
143
|
-
#{shell_command}
|
144
|
-
#{shell_command} version-build
|
145
|
-
EOF
|
146
|
-
end
|
147
|
-
|
148
153
|
# Finds matching command and displays its help
|
149
154
|
def execute(ctx, args)
|
150
155
|
if args.size == 1
|
@@ -169,6 +174,17 @@ EOF
|
|
169
174
|
puts "\nRun '#{$0} help COMMAND' for more information about that command."
|
170
175
|
end
|
171
176
|
end
|
177
|
+
|
178
|
+
def help
|
179
|
+
<<EOF
|
180
|
+
"#{shell_command}" shows information Ki and its commands.
|
181
|
+
|
182
|
+
### Examples
|
183
|
+
|
184
|
+
#{shell_command}
|
185
|
+
#{shell_command} version-build
|
186
|
+
EOF
|
187
|
+
end
|
172
188
|
end
|
173
189
|
|
174
190
|
# Lists available Ki commands
|
@@ -182,22 +198,8 @@ EOF
|
|
182
198
|
opts.parse(args.empty? ? ["-c"] : args)
|
183
199
|
end
|
184
200
|
|
185
|
-
def help
|
186
|
-
<<EOF
|
187
|
-
"#{shell_command}" shows information about Ki.
|
188
|
-
|
189
|
-
### Examples
|
190
|
-
|
191
|
-
#{shell_command} -c
|
192
|
-
#{shell_command} -r
|
193
|
-
|
194
|
-
### Parameters
|
195
|
-
#{opts}
|
196
|
-
EOF
|
197
|
-
end
|
198
|
-
|
199
201
|
def opts
|
200
|
-
|
202
|
+
SimpleOptionParser.new do |opts|
|
201
203
|
opts.on("-c", "--commands", "List commands") do |v|
|
202
204
|
commands = KiCommand::KiExtensions.find(KiCommand::CommandPrefix[0..-2])
|
203
205
|
commands.each do |id, service_class|
|
@@ -214,7 +216,20 @@ EOF
|
|
214
216
|
end
|
215
217
|
end
|
216
218
|
end
|
217
|
-
|
219
|
+
end
|
220
|
+
|
221
|
+
def help
|
222
|
+
<<EOF
|
223
|
+
"#{shell_command}" shows information about Ki.
|
224
|
+
|
225
|
+
### Examples
|
226
|
+
|
227
|
+
#{shell_command} -c
|
228
|
+
#{shell_command} -r
|
229
|
+
|
230
|
+
### Parameters
|
231
|
+
#{opts}
|
232
|
+
EOF
|
218
233
|
end
|
219
234
|
end
|
220
235
|
|