MrMurano 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.markdown +7 -7
- data/lib/MrMurano/Account.rb +2 -0
- data/lib/MrMurano/Solution-Endpoint.rb +3 -2
- data/lib/MrMurano/configFile.rb +33 -6
- data/lib/MrMurano/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3d8ab1106bc7c79174b671075339b574dd017de
|
4
|
+
data.tar.gz: 53c2be7de4579527f6174ffbc0957109d3a29d51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36c4e019e27f568af176f0544ac3137c720aab8f4a7e49f83d00faefdea09b23d9e3bc8855cf008ed4b6c3620dda5bf58b28296303166bd3567f1a86505d2611
|
7
|
+
data.tar.gz: cc2e8f89109bd70c3fb6aaaa8bdf28c12caeeb6aedb47e0294445124a628d5b4d3e034259df287d92241be45a1eabaa3326ee7f4b37aecd089126711346d0ca9
|
data/.gitignore
CHANGED
data/README.markdown
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# MrMurano
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/MrMurano.svg)](https://badge.fury.io/rb/MrMurano)
|
4
|
+
|
3
5
|
Do more from the command line with [Murano](https://exosite.com/platform/)
|
4
6
|
|
5
7
|
## Usage
|
@@ -8,20 +10,18 @@ To start from an existing project in Murano
|
|
8
10
|
```
|
9
11
|
mkdir myproject
|
10
12
|
cd myproject
|
11
|
-
mr syncdown
|
13
|
+
mr syncdown -same
|
12
14
|
```
|
13
15
|
|
14
|
-
Do stuff, see what changed: `mr status
|
15
|
-
Then deploy `mr syncup
|
16
|
+
Do stuff, see what changed: `mr status -same` or `mr diff -same`.
|
17
|
+
Then deploy `mr syncup -same`
|
16
18
|
|
17
19
|
|
18
20
|
|
19
21
|
## Install
|
20
22
|
|
21
|
-
Source install for now.
|
22
23
|
```
|
23
|
-
|
24
|
-
cd MrMurano
|
25
|
-
rake install
|
24
|
+
> gem install MrMurano
|
26
25
|
```
|
27
26
|
|
27
|
+
|
data/lib/MrMurano/Account.rb
CHANGED
@@ -86,6 +86,7 @@ module MrMurano
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def products
|
89
|
+
raise "Missing Bussiness ID" if $cfg['business.id'].nil?
|
89
90
|
r = endPoint('business/' + $cfg['business.id'] + '/product/')
|
90
91
|
Net::HTTP.start(r.host, r.port, :use_ssl=>true) do |http|
|
91
92
|
request = Net::HTTP::Get.new(r)
|
@@ -104,6 +105,7 @@ module MrMurano
|
|
104
105
|
end
|
105
106
|
|
106
107
|
def solutions
|
108
|
+
raise "Missing Bussiness ID" if $cfg['business.id'].nil?
|
107
109
|
r = endPoint('business/' + $cfg['business.id'] + '/solution/')
|
108
110
|
Net::HTTP.start(r.host, r.port, :use_ssl=>true) do |http|
|
109
111
|
request = Net::HTTP::Get.new(r)
|
@@ -21,12 +21,13 @@ module MrMurano
|
|
21
21
|
ret = get('/' + id.to_s)
|
22
22
|
aheader = ret['script'].lines.first.chomp
|
23
23
|
dheader = /^--#ENDPOINT (?i:#{ret['method']}) #{ret['path']}$/
|
24
|
+
rheader = %{--#ENDPOINT #{ret['method']} #{ret['path']}\n}
|
24
25
|
if block_given? then
|
25
|
-
yield
|
26
|
+
yield rheader unless dheader =~ aheader
|
26
27
|
yield ret['script']
|
27
28
|
else
|
28
29
|
res = ''
|
29
|
-
res <<
|
30
|
+
res << rheader unless dheader =~ aheader
|
30
31
|
res << ret['script']
|
31
32
|
res
|
32
33
|
end
|
data/lib/MrMurano/configFile.rb
CHANGED
@@ -4,6 +4,15 @@ require 'pp'
|
|
4
4
|
|
5
5
|
module MrMurano
|
6
6
|
class Config
|
7
|
+
#
|
8
|
+
# internal transient this-run-only things (also -c options)
|
9
|
+
# specified from --configfile
|
10
|
+
# private .mrmuranorc.private at project dir (for things you don't want to commit)
|
11
|
+
# project .mrmuranorc at project dir
|
12
|
+
# user .mrmuranorc at $HOME
|
13
|
+
# system .mrmuranorc at /etc
|
14
|
+
# defaults Internal hardcoded defaults
|
15
|
+
#
|
7
16
|
ConfigFile = Struct.new(:kind, :path, :data) do
|
8
17
|
def load()
|
9
18
|
return if kind == :internal
|
@@ -24,13 +33,16 @@ module MrMurano
|
|
24
33
|
|
25
34
|
attr :paths
|
26
35
|
|
36
|
+
CFG_SCOPES=%w{internal specified project private user system defaults}.map{|i| i.to_sym}.freeze
|
27
37
|
CFG_FILE_NAME = '.mrmuranorc'.freeze
|
38
|
+
CFG_PRVT_NAME = '.mrmuranorc.private'.freeze
|
28
39
|
|
29
40
|
def initialize
|
30
41
|
@paths = []
|
31
42
|
@paths << ConfigFile.new(:internal, nil, IniFile.new())
|
32
|
-
# :specified --
|
43
|
+
# :specified --configfile FILE goes here. (see load_specific)
|
33
44
|
prjfile = findProjectFile()
|
45
|
+
@paths << ConfigFile.new(:private, prjfile.dirname + CFG_PRVT_NAME)
|
34
46
|
@paths << ConfigFile.new(:project, prjfile)
|
35
47
|
@paths << ConfigFile.new(:user, Pathname.new(Dir.home) + CFG_FILE_NAME)
|
36
48
|
@paths << ConfigFile.new(:system, Pathname.new('/etc') + CFG_FILE_NAME.sub(/^\./,''))
|
@@ -87,7 +99,7 @@ module MrMurano
|
|
87
99
|
end
|
88
100
|
|
89
101
|
# key is <section>.<key>
|
90
|
-
def get(key, scope=
|
102
|
+
def get(key, scope=CFG_SCOPES)
|
91
103
|
scope = [scope] unless scope.kind_of? Array
|
92
104
|
paths = @paths.select{|p| scope.include? p.kind}
|
93
105
|
|
@@ -149,10 +161,21 @@ end
|
|
149
161
|
command :config do |c|
|
150
162
|
c.syntax = %{mr config [options] <key> [<new value>]}
|
151
163
|
c.summary = %{Get and set options}
|
164
|
+
c.description = %{
|
165
|
+
You can get, set, or query config options with this command. All config options
|
166
|
+
are in a 'section.key' format. There is also a layer of scopes that the keys can
|
167
|
+
be saved in.
|
168
|
+
|
169
|
+
}
|
170
|
+
|
171
|
+
c.example %{See what the current combined config is}, 'mr config --dump'
|
172
|
+
|
152
173
|
c.option '--system', 'Use only the system config file'
|
153
174
|
c.option '--user', 'Use only the config file in $HOME'
|
154
|
-
c.option '--project', 'Use only the config file in the project'
|
175
|
+
c.option '--project', 'Use only the config file in the project (.mrmuranorc)'
|
176
|
+
c.option '--private', 'Use only the private config file in the project (.mrmuranorc.private)'
|
155
177
|
c.option '--specified', 'Use only the config file from the --config option.'
|
178
|
+
|
156
179
|
c.option '--unset', 'Remove key from config file.'
|
157
180
|
c.option '--dump', 'Dump the current combined view of the config'
|
158
181
|
|
@@ -163,25 +186,29 @@ command :config do |c|
|
|
163
186
|
elsif args.count == 0 then
|
164
187
|
say_error "Need a config key"
|
165
188
|
elsif args.count == 1 and not options.unset then
|
166
|
-
options.defaults :system=>false, :user=>false, :project=>false,
|
189
|
+
options.defaults :system=>false, :user=>false, :project=>false,
|
190
|
+
:specified=>false, :private=>false
|
167
191
|
|
168
192
|
# For read, if no scopes, than all. Otherwise just those specified
|
169
193
|
scopes = []
|
170
194
|
scopes << :system if options.system
|
171
195
|
scopes << :user if options.user
|
172
196
|
scopes << :project if options.project
|
197
|
+
scopes << :private if options.private
|
173
198
|
scopes << :specified if options.specified
|
174
|
-
scopes =
|
199
|
+
scopes = MrMurano::Config.CFG_SCOPES if scopes.empty?
|
175
200
|
|
176
201
|
say $cfg.get(args[0], scopes)
|
177
202
|
else
|
178
203
|
|
179
|
-
options.defaults :system=>false, :user=>false, :project=>true,
|
204
|
+
options.defaults :system=>false, :user=>false, :project=>true,
|
205
|
+
:specified=>false, :private=>false
|
180
206
|
# For write, if scope is specified, only write to that scope.
|
181
207
|
scope = :project
|
182
208
|
scope = :system if options.system
|
183
209
|
scope = :user if options.user
|
184
210
|
scope = :project if options.project
|
211
|
+
scope = :private if options.private
|
185
212
|
scope = :specified if options.specified
|
186
213
|
|
187
214
|
args[1] = nil if options.unset
|
data/lib/MrMurano/version.rb
CHANGED