playit 0.0.1
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/Gemfile +7 -0
- data/Gemfile.lock +24 -0
- data/LICENSE +22 -0
- data/README.md +4 -0
- data/Rakefile +153 -0
- data/bin/playit +8 -0
- data/lib/playit/command.rb +96 -0
- data/lib/playit/config.rb +81 -0
- data/lib/playit/platform.rb +87 -0
- data/lib/playit/services/bootstrap.rb +31 -0
- data/lib/playit/services/governance.rb +32 -0
- data/lib/playit/services/metadata.rb +44 -0
- data/lib/playit.rb +34 -0
- data/playit.gemspec +54 -0
- metadata +143 -0
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
playit (0.0.1)
|
5
|
+
highline (~> 1.6.13)
|
6
|
+
multi_json (~> 1.0.3)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
highline (1.6.13)
|
12
|
+
metaclass (0.0.1)
|
13
|
+
mocha (0.11.4)
|
14
|
+
metaclass (~> 0.0.1)
|
15
|
+
multi_json (1.0.4)
|
16
|
+
rake (0.9.2.2)
|
17
|
+
|
18
|
+
PLATFORMS
|
19
|
+
ruby
|
20
|
+
|
21
|
+
DEPENDENCIES
|
22
|
+
mocha (~> 0.11.4)
|
23
|
+
playit!
|
24
|
+
rake (~> 0.9.2)
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2012 Christophe Hamerling
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
#
|
2
|
+
# Christophe Hamerling - Linagora
|
3
|
+
#
|
4
|
+
require 'rubygems'
|
5
|
+
require 'rake'
|
6
|
+
require 'date'
|
7
|
+
|
8
|
+
#############################################################################
|
9
|
+
#
|
10
|
+
# Helper functions
|
11
|
+
#
|
12
|
+
#############################################################################
|
13
|
+
|
14
|
+
def name
|
15
|
+
@name ||= Dir['*.gemspec'].first.split('.').first
|
16
|
+
end
|
17
|
+
|
18
|
+
def version
|
19
|
+
line = File.read("lib/#{name}.rb")[/^\s*VERSION\s*=\s*.*/]
|
20
|
+
line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
|
21
|
+
end
|
22
|
+
|
23
|
+
def date
|
24
|
+
Date.today.to_s
|
25
|
+
end
|
26
|
+
|
27
|
+
def rubyforge_project
|
28
|
+
name
|
29
|
+
end
|
30
|
+
|
31
|
+
def gemspec_file
|
32
|
+
"#{name}.gemspec"
|
33
|
+
end
|
34
|
+
|
35
|
+
def gem_file
|
36
|
+
"#{name}-#{version}.gem"
|
37
|
+
end
|
38
|
+
|
39
|
+
def replace_header(head, header_name)
|
40
|
+
head.sub!(/(\.#{header_name}\s*= ').*'/) { "#{$1}#{send(header_name)}'"}
|
41
|
+
end
|
42
|
+
|
43
|
+
#############################################################################
|
44
|
+
#
|
45
|
+
# Standard tasks
|
46
|
+
#
|
47
|
+
#############################################################################
|
48
|
+
|
49
|
+
task :default => :test
|
50
|
+
|
51
|
+
require 'rake/testtask'
|
52
|
+
Rake::TestTask.new(:test) do |test|
|
53
|
+
test.libs << 'lib' << 'test'
|
54
|
+
test.pattern = 'test/**/test_*.rb'
|
55
|
+
test.verbose = true
|
56
|
+
end
|
57
|
+
|
58
|
+
desc "Generate RCov test coverage and open in your browser"
|
59
|
+
task :coverage do
|
60
|
+
require 'rcov'
|
61
|
+
sh "rm -fr coverage"
|
62
|
+
sh "rcov test/test_*.rb"
|
63
|
+
sh "open coverage/index.html"
|
64
|
+
end
|
65
|
+
|
66
|
+
require 'rake/rdoctask'
|
67
|
+
Rake::RDocTask.new do |rdoc|
|
68
|
+
rdoc.rdoc_dir = 'rdoc'
|
69
|
+
rdoc.title = "#{name} #{version}"
|
70
|
+
rdoc.rdoc_files.include('README*')
|
71
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
72
|
+
end
|
73
|
+
|
74
|
+
desc "Open an irb session preloaded with this library"
|
75
|
+
task :console do
|
76
|
+
sh "irb -rubygems -r ./lib/#{name}.rb"
|
77
|
+
end
|
78
|
+
|
79
|
+
#############################################################################
|
80
|
+
#
|
81
|
+
# Custom tasks (add your own tasks here)
|
82
|
+
#
|
83
|
+
#############################################################################
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
#############################################################################
|
88
|
+
#
|
89
|
+
# Packaging tasks
|
90
|
+
#
|
91
|
+
#############################################################################
|
92
|
+
|
93
|
+
desc "Create tag v#{version} and build and push #{gem_file} to Rubygems"
|
94
|
+
task :release => :build do
|
95
|
+
unless `git branch` =~ /^\* master$/
|
96
|
+
puts "You must be on the master branch to release!"
|
97
|
+
exit!
|
98
|
+
end
|
99
|
+
sh "git commit --allow-empty -a -m 'Release #{version}'"
|
100
|
+
sh "git tag v#{version}"
|
101
|
+
sh "git push origin master"
|
102
|
+
sh "git push origin v#{version}"
|
103
|
+
sh "gem push pkg/#{name}-#{version}.gem"
|
104
|
+
end
|
105
|
+
|
106
|
+
desc "Build #{gem_file} into the pkg directory"
|
107
|
+
task :build => :gemspec do
|
108
|
+
sh "mkdir -p pkg"
|
109
|
+
sh "gem build #{gemspec_file}"
|
110
|
+
sh "mv #{gem_file} pkg"
|
111
|
+
end
|
112
|
+
|
113
|
+
desc "Generate #{gemspec_file}"
|
114
|
+
task :gemspec => :validate do
|
115
|
+
# read spec file and split out manifest section
|
116
|
+
spec = File.read(gemspec_file)
|
117
|
+
head, manifest, tail = spec.split(" # = MANIFEST =\n")
|
118
|
+
|
119
|
+
# replace name version and date
|
120
|
+
replace_header(head, :name)
|
121
|
+
replace_header(head, :version)
|
122
|
+
replace_header(head, :date)
|
123
|
+
#comment this out if your rubyforge_project has a different name
|
124
|
+
replace_header(head, :rubyforge_project)
|
125
|
+
|
126
|
+
# determine file list from git ls-files
|
127
|
+
files = `git ls-files`.
|
128
|
+
split("\n").
|
129
|
+
sort.
|
130
|
+
reject { |file| file =~ /^\./ }.
|
131
|
+
reject { |file| file =~ /^(rdoc|pkg)/ }.
|
132
|
+
map { |file| " #{file}" }.
|
133
|
+
join("\n")
|
134
|
+
|
135
|
+
# piece file back together and write
|
136
|
+
manifest = " s.files = %w[\n#{files}\n ]\n"
|
137
|
+
spec = [head, manifest, tail].join(" # = MANIFEST =\n")
|
138
|
+
File.open(gemspec_file, 'w') { |io| io.write(spec) }
|
139
|
+
puts "Updated #{gemspec_file}"
|
140
|
+
end
|
141
|
+
|
142
|
+
desc "Validate #{gemspec_file}"
|
143
|
+
task :validate do
|
144
|
+
libfiles = Dir['lib/*'] - ["lib/#{name}.rb", "lib/#{name}"]
|
145
|
+
unless libfiles.empty?
|
146
|
+
puts "Directory `lib` should only contain a `#{name}.rb` file and `#{name}` dir."
|
147
|
+
exit!
|
148
|
+
end
|
149
|
+
unless Dir['VERSION*'].empty?
|
150
|
+
puts "A `VERSION` file at root level violates Gem best practices."
|
151
|
+
exit!
|
152
|
+
end
|
153
|
+
end
|
data/bin/playit
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
#
|
2
|
+
# Christophe Hamerling - Linagora
|
3
|
+
#
|
4
|
+
##
|
5
|
+
## Playit! Play management tool
|
6
|
+
##
|
7
|
+
## Options:
|
8
|
+
##
|
9
|
+
## - configure
|
10
|
+
## Open the system editor to fill properties, check Play Wiki for details
|
11
|
+
##
|
12
|
+
## - boostrap init/stop/restart
|
13
|
+
## Create the links between the Play components (Service Bus, Event Cloud, DCEP, ...)
|
14
|
+
##
|
15
|
+
## - meta start/stop/restart
|
16
|
+
## Will reload metadata service from fresh data
|
17
|
+
##
|
18
|
+
## - topics
|
19
|
+
## Get the current available topics
|
20
|
+
##
|
21
|
+
## - status
|
22
|
+
## Displays current status/configuration
|
23
|
+
##
|
24
|
+
## - help
|
25
|
+
## Displays this message...
|
26
|
+
##
|
27
|
+
## PlayFP7 project - Christophe Hamerling - Linagora
|
28
|
+
##
|
29
|
+
module Playit
|
30
|
+
class Command
|
31
|
+
|
32
|
+
class << self
|
33
|
+
|
34
|
+
def execute(*args)
|
35
|
+
command = args.shift
|
36
|
+
major = args.shift
|
37
|
+
minor = args.empty? ? nil : args.join(' ')
|
38
|
+
|
39
|
+
return overview unless command
|
40
|
+
delegate(command, major, minor)
|
41
|
+
end
|
42
|
+
|
43
|
+
def delegate command, major, minor
|
44
|
+
|
45
|
+
return configure if command == 'configure'
|
46
|
+
return bootstrap(major) if command == 'bootstrap'
|
47
|
+
return metadata(major) if command == 'meta'
|
48
|
+
return topics if command == 'topics'
|
49
|
+
return status if command == 'status'
|
50
|
+
return overview if command == 'help'
|
51
|
+
|
52
|
+
return overview
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
#
|
57
|
+
# Edit the configuration in an editor
|
58
|
+
#
|
59
|
+
def configure
|
60
|
+
puts "Playit! #{Platform.edit(Playit.config.file)}"
|
61
|
+
end
|
62
|
+
|
63
|
+
def overview
|
64
|
+
puts usage
|
65
|
+
end
|
66
|
+
|
67
|
+
def usage
|
68
|
+
File.readlines(__FILE__).
|
69
|
+
grep(/^##.*/).
|
70
|
+
map { |line| line.chomp[3..-1] }.
|
71
|
+
join("\n")
|
72
|
+
end
|
73
|
+
|
74
|
+
def metadata(operation)
|
75
|
+
return Playit::Services::Metadata.start if operation == 'start'
|
76
|
+
return Playit::Services::Metadata.stop if operation == 'stop'
|
77
|
+
return Playit::Services::Metadata.restart if operation == 'restart'
|
78
|
+
|
79
|
+
"Invalid operation #{operation} for metadata service"
|
80
|
+
end
|
81
|
+
|
82
|
+
def bootstrap(operation)
|
83
|
+
return Playit::Services::Bootstrap.init if operation == 'init'
|
84
|
+
return Playit::Services::Bootstrap.stop if operation == 'stop'
|
85
|
+
|
86
|
+
"Invalid operation #{operation} for bootstrap service"
|
87
|
+
end
|
88
|
+
|
89
|
+
def topics
|
90
|
+
Playit::Services::Governance.topics
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
#
|
2
|
+
# Christophe Hamerling - Linagora
|
3
|
+
#
|
4
|
+
module Playit
|
5
|
+
class Config
|
6
|
+
|
7
|
+
# The main config file for boom
|
8
|
+
FILE = "#{ENV['HOME']}/.playfp7.conf"
|
9
|
+
|
10
|
+
# Public: The attributes Hash for configuration options. The attributes
|
11
|
+
# needed are dictated by each backend, but the `backend` option must be
|
12
|
+
# present.
|
13
|
+
attr_reader :attributes
|
14
|
+
|
15
|
+
# Public: creates a new instance of Config.
|
16
|
+
#
|
17
|
+
# This will load the attributes from boom's config file, or bootstrap it
|
18
|
+
# if this is a new install. Bootstrapping defaults to the JSON backend.
|
19
|
+
#
|
20
|
+
# Returns nothing.
|
21
|
+
def initialize
|
22
|
+
bootstrap unless File.exist?(file)
|
23
|
+
load_attributes
|
24
|
+
end
|
25
|
+
|
26
|
+
# Public: accessor for the configuration file.
|
27
|
+
#
|
28
|
+
# Returns the String file path.
|
29
|
+
def file
|
30
|
+
FILE
|
31
|
+
end
|
32
|
+
|
33
|
+
# Public: saves an empty, barebones hash to @attributes for the purpose of
|
34
|
+
# new user setup.
|
35
|
+
#
|
36
|
+
# Returns whether the attributes were saved.
|
37
|
+
def bootstrap
|
38
|
+
@attributes = {
|
39
|
+
:governance => 'DEFINE BASE URL',
|
40
|
+
:metadata => 'DEFINE BASE URL',
|
41
|
+
:bootstrap => 'DEFINE BASE URL',
|
42
|
+
:dsb => 'DEFINE DSB URL',
|
43
|
+
:seacloud => 'DEFINE SEACLOUD URL'
|
44
|
+
}
|
45
|
+
save
|
46
|
+
end
|
47
|
+
|
48
|
+
# Public: assigns a hash to the configuration attributes object. The
|
49
|
+
# contents of the attributes hash depends on what the backend needs. A
|
50
|
+
# `backend` key MUST be present, however.
|
51
|
+
#
|
52
|
+
# attrs - the Hash representation of attributes to persist to disk.
|
53
|
+
#
|
54
|
+
# Examples
|
55
|
+
#
|
56
|
+
# config.attributes = {"backend" => "json"}
|
57
|
+
#
|
58
|
+
# Returns whether the attributes were saved.
|
59
|
+
def attributes=(attrs)
|
60
|
+
@attributes = attrs
|
61
|
+
save
|
62
|
+
end
|
63
|
+
|
64
|
+
# Public: loads and parses the JSON tree from disk into memory and stores
|
65
|
+
# it in the attributes Hash.
|
66
|
+
#
|
67
|
+
# Returns nothing.
|
68
|
+
def load_attributes
|
69
|
+
@attributes = MultiJson.decode(File.new(file, 'r').read)
|
70
|
+
end
|
71
|
+
|
72
|
+
# Public: writes the in-memory JSON Hash to disk.
|
73
|
+
#
|
74
|
+
# Returns nothing.
|
75
|
+
def save
|
76
|
+
json = MultiJson.encode(attributes)
|
77
|
+
File.open(file, 'w') {|f| f.write(json) }
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
#
|
2
|
+
# Christophe Hamerling - Linagora
|
3
|
+
#
|
4
|
+
module Playit
|
5
|
+
class Platform
|
6
|
+
class << self
|
7
|
+
# Public: tests if currently running on darwin.
|
8
|
+
#
|
9
|
+
# Returns true if running on darwin (MacOS X), else false
|
10
|
+
def darwin?
|
11
|
+
!!(RUBY_PLATFORM =~ /darwin/)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Public: tests if currently running on windows.
|
15
|
+
#
|
16
|
+
# Apparently Windows RUBY_PLATFORM can be 'win32' or 'mingw32'
|
17
|
+
#
|
18
|
+
# Returns true if running on windows (win32/mingw32), else false
|
19
|
+
def windows?
|
20
|
+
!!(RUBY_PLATFORM =~ /mswin|mingw/)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Public: returns the command used to open a file or URL
|
24
|
+
# for the current platform.
|
25
|
+
#
|
26
|
+
# Currently only supports MacOS X and Linux with `xdg-open`.
|
27
|
+
#
|
28
|
+
# Returns a String with the bin
|
29
|
+
def open_command
|
30
|
+
if darwin?
|
31
|
+
'open'
|
32
|
+
elsif windows?
|
33
|
+
'start'
|
34
|
+
else
|
35
|
+
'xdg-open'
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Public: opens a given Item's value in the browser. This
|
40
|
+
# method is designed to handle multiple platforms.
|
41
|
+
#
|
42
|
+
# Returns a String of the Item value.
|
43
|
+
def open(url)
|
44
|
+
unless windows?
|
45
|
+
system("#{open_command} '#{url.gsub("\'","'\\\\''")}'")
|
46
|
+
else
|
47
|
+
system("#{open_command} #{url.gsub("\'","'\\\\''")}")
|
48
|
+
end
|
49
|
+
url
|
50
|
+
end
|
51
|
+
|
52
|
+
# Public: returns the command used to copy a given Item's value to the
|
53
|
+
# clipboard for the current platform.
|
54
|
+
#
|
55
|
+
# Returns a String with the bin
|
56
|
+
def copy_command
|
57
|
+
if darwin?
|
58
|
+
'pbcopy'
|
59
|
+
elsif windows?
|
60
|
+
'clip'
|
61
|
+
else
|
62
|
+
'xclip -selection clipboard'
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# Public: opens the JSON file in an editor for you to edit. Uses the
|
67
|
+
# $EDITOR environment variable, or %EDITOR% on Windows for editing.
|
68
|
+
# This method is designed to handle multiple platforms.
|
69
|
+
# If $EDITOR is nil, try to open using the open_command.
|
70
|
+
#
|
71
|
+
# Returns a String with a helpful message.
|
72
|
+
def edit(file)
|
73
|
+
unless $EDITOR.nil?
|
74
|
+
unless windows?
|
75
|
+
system("`echo $EDITOR` #{file} &")
|
76
|
+
else
|
77
|
+
system("start %EDITOR% #{file}")
|
78
|
+
end
|
79
|
+
else
|
80
|
+
system("#{open_command} #{file}")
|
81
|
+
end
|
82
|
+
|
83
|
+
"Make your edits, and do be sure to save."
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#
|
2
|
+
# Christophe Hamerling - Linagora
|
3
|
+
#
|
4
|
+
module Playit
|
5
|
+
module Services
|
6
|
+
class Bootstrap
|
7
|
+
class << self
|
8
|
+
|
9
|
+
def init
|
10
|
+
puts '[INFO] Init bootstrap service...'
|
11
|
+
url = "#{Playit.config.attributes["bootstrap"]}/rest/init"
|
12
|
+
open(url) { |f|
|
13
|
+
f.each_line {
|
14
|
+
|line| puts line
|
15
|
+
}
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
def stop
|
20
|
+
puts '[INFO] Stop bootstrap service...'
|
21
|
+
puts '[INFO] TODO!'
|
22
|
+
end
|
23
|
+
|
24
|
+
def restart
|
25
|
+
stop
|
26
|
+
start
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#
|
2
|
+
# Christophe Hamerling - Linagora
|
3
|
+
#
|
4
|
+
module Playit
|
5
|
+
module Services
|
6
|
+
class Governance
|
7
|
+
class << self
|
8
|
+
|
9
|
+
def start
|
10
|
+
puts '[INFO] Start governance...'
|
11
|
+
end
|
12
|
+
|
13
|
+
def stop
|
14
|
+
puts '[INFO] Stop governance...'
|
15
|
+
end
|
16
|
+
|
17
|
+
#
|
18
|
+
# Display the governance topics
|
19
|
+
#
|
20
|
+
def topics
|
21
|
+
puts '[INFO] Getting topics...'
|
22
|
+
url = "#{Playit.config.attributes["governance"]}/getTopics"
|
23
|
+
open(url) { |f|
|
24
|
+
f.each_line {
|
25
|
+
|line| puts line
|
26
|
+
}
|
27
|
+
}
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#
|
2
|
+
# Christophe Hamerling - Linagora
|
3
|
+
#
|
4
|
+
module Playit
|
5
|
+
module Services
|
6
|
+
class Metadata
|
7
|
+
class << self
|
8
|
+
|
9
|
+
def start
|
10
|
+
puts '[INFO] Start metadata service...'
|
11
|
+
url = "#{Playit.config.attributes["metadata"]}/start"
|
12
|
+
puts url
|
13
|
+
begin
|
14
|
+
open(url) { |f|
|
15
|
+
f.each_line {
|
16
|
+
|line| puts line
|
17
|
+
}
|
18
|
+
}
|
19
|
+
rescue OpenURI::HTTPError
|
20
|
+
puts "[ERROR] Already started! Call stop or restart methods"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
def stop
|
26
|
+
puts '[INFO] Stop metadata service...'
|
27
|
+
url = "#{Playit.config.attributes["metadata"]}/stop"
|
28
|
+
puts url
|
29
|
+
open(url) { |f|
|
30
|
+
f.each_line {
|
31
|
+
|line| puts line
|
32
|
+
}
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
def restart
|
37
|
+
puts '[INFO] Restart metadata service...'
|
38
|
+
stop
|
39
|
+
start
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/playit.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
#
|
2
|
+
# Christophe Hamerling - Linagora
|
3
|
+
#
|
4
|
+
begin
|
5
|
+
require 'rubygems'
|
6
|
+
rescue LoadError
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'open-uri'
|
10
|
+
require 'highline/import'
|
11
|
+
require 'multi_json'
|
12
|
+
require 'fileutils'
|
13
|
+
require 'pp'
|
14
|
+
|
15
|
+
$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
16
|
+
|
17
|
+
require 'playit/command'
|
18
|
+
require 'playit/config'
|
19
|
+
require 'playit/platform'
|
20
|
+
require 'playit/services/bootstrap'
|
21
|
+
require 'playit/services/governance'
|
22
|
+
require 'playit/services/metadata'
|
23
|
+
|
24
|
+
module Playit
|
25
|
+
|
26
|
+
VERSION = '0.0.1'
|
27
|
+
|
28
|
+
extend self
|
29
|
+
|
30
|
+
def config
|
31
|
+
@config ||= Playit::Config.new
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
data/playit.gemspec
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Christophe Hamerling - Linagora
|
4
|
+
#
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
|
7
|
+
s.specification_version = 2 if s.respond_to? :specification_version=
|
8
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
|
+
s.rubygems_version = '1.3.5'
|
10
|
+
|
11
|
+
s.authors = ["Christophe Hamerling"]
|
12
|
+
s.email = ["christophe.hamerling@linagora.com"]
|
13
|
+
s.description = %q{Manage Play services from the command line}
|
14
|
+
s.summary = %q{This gem provides a binary 'playit' used to manage Play FP7 services from the command line}
|
15
|
+
s.homepage = "http://chamerling.github.com/playit/"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split($\)
|
18
|
+
s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
19
|
+
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
20
|
+
s.name = "playit"
|
21
|
+
s.require_paths = ["lib"]
|
22
|
+
s.version = "0.0.1"
|
23
|
+
|
24
|
+
s.add_dependency('multi_json', "~> 1.0.3")
|
25
|
+
|
26
|
+
# Input stream management
|
27
|
+
s.add_dependency('highline', "~> 1.6.13")
|
28
|
+
|
29
|
+
s.add_development_dependency('mocha', "~> 0.11.4")
|
30
|
+
s.add_development_dependency('rake', "~> 0.9.2")
|
31
|
+
|
32
|
+
## Leave this section as-is. It will be automatically generated from the
|
33
|
+
## contents of your Git repository via the gemspec task. DO NOT REMOVE
|
34
|
+
## THE MANIFEST COMMENTS, they are used as delimiters by the task.
|
35
|
+
# = MANIFEST =
|
36
|
+
s.files = %w[
|
37
|
+
Gemfile
|
38
|
+
Gemfile.lock
|
39
|
+
LICENSE
|
40
|
+
README.md
|
41
|
+
Rakefile
|
42
|
+
bin/playit
|
43
|
+
lib/playit.rb
|
44
|
+
lib/playit/command.rb
|
45
|
+
lib/playit/config.rb
|
46
|
+
lib/playit/platform.rb
|
47
|
+
lib/playit/services/bootstrap.rb
|
48
|
+
lib/playit/services/governance.rb
|
49
|
+
lib/playit/services/metadata.rb
|
50
|
+
playit.gemspec
|
51
|
+
]
|
52
|
+
# = MANIFEST =
|
53
|
+
|
54
|
+
end
|
metadata
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: playit
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Christophe Hamerling
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2012-06-21 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: multi_json
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 17
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 0
|
32
|
+
- 3
|
33
|
+
version: 1.0.3
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: highline
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 21
|
45
|
+
segments:
|
46
|
+
- 1
|
47
|
+
- 6
|
48
|
+
- 13
|
49
|
+
version: 1.6.13
|
50
|
+
type: :runtime
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: mocha
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
58
|
+
- - ~>
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 59
|
61
|
+
segments:
|
62
|
+
- 0
|
63
|
+
- 11
|
64
|
+
- 4
|
65
|
+
version: 0.11.4
|
66
|
+
type: :development
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: rake
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 63
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
- 9
|
80
|
+
- 2
|
81
|
+
version: 0.9.2
|
82
|
+
type: :development
|
83
|
+
version_requirements: *id004
|
84
|
+
description: Manage Play services from the command line
|
85
|
+
email:
|
86
|
+
- christophe.hamerling@linagora.com
|
87
|
+
executables:
|
88
|
+
- playit
|
89
|
+
extensions: []
|
90
|
+
|
91
|
+
extra_rdoc_files: []
|
92
|
+
|
93
|
+
files:
|
94
|
+
- Gemfile
|
95
|
+
- Gemfile.lock
|
96
|
+
- LICENSE
|
97
|
+
- README.md
|
98
|
+
- Rakefile
|
99
|
+
- bin/playit
|
100
|
+
- lib/playit.rb
|
101
|
+
- lib/playit/command.rb
|
102
|
+
- lib/playit/config.rb
|
103
|
+
- lib/playit/platform.rb
|
104
|
+
- lib/playit/services/bootstrap.rb
|
105
|
+
- lib/playit/services/governance.rb
|
106
|
+
- lib/playit/services/metadata.rb
|
107
|
+
- playit.gemspec
|
108
|
+
homepage: http://chamerling.github.com/playit/
|
109
|
+
licenses: []
|
110
|
+
|
111
|
+
post_install_message:
|
112
|
+
rdoc_options: []
|
113
|
+
|
114
|
+
require_paths:
|
115
|
+
- lib
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
118
|
+
requirements:
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
hash: 3
|
122
|
+
segments:
|
123
|
+
- 0
|
124
|
+
version: "0"
|
125
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
|
+
none: false
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
hash: 3
|
131
|
+
segments:
|
132
|
+
- 0
|
133
|
+
version: "0"
|
134
|
+
requirements: []
|
135
|
+
|
136
|
+
rubyforge_project:
|
137
|
+
rubygems_version: 1.8.8
|
138
|
+
signing_key:
|
139
|
+
specification_version: 2
|
140
|
+
summary: This gem provides a binary 'playit' used to manage Play FP7 services from the command line
|
141
|
+
test_files: []
|
142
|
+
|
143
|
+
has_rdoc:
|