xnlogic 1.0.28 → 1.0.29
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +35 -13
- data/lib/xnlogic/cli/application.rb +42 -13
- data/lib/xnlogic/cli/core.rb +1 -0
- data/lib/xnlogic/cli.rb +6 -0
- data/lib/xnlogic/deploy.rb +9 -2
- data/lib/xnlogic/man/xnlogic +4 -0
- data/lib/xnlogic/man/xnlogic.txt +6 -2
- data/lib/xnlogic/server_profile.rb +56 -40
- data/lib/xnlogic/templates/application/config.ru.tt +0 -1
- data/lib/xnlogic/templates/application/dev/console.rb.tt +2 -1
- data/lib/xnlogic/templates/deploy/nginx.conf.tt +0 -0
- data/lib/xnlogic/templates/vagrant/Gemfile.tt +5 -1
- data/lib/xnlogic/templates/vagrant/config/start.sh +86 -0
- data/lib/xnlogic/templates/vagrant/config/vagrant.provision.tt +13 -6
- data/lib/xnlogic/version.rb +1 -1
- data/man/xnlogic.ronn +3 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6289c5acc2d9d23ec6c3113e13c8c684e310e6e
|
4
|
+
data.tar.gz: 890996e3dacd9c0ef21ca8c9b394370741dcbb7a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0c66d6fe416ea7ac2c4839f8d6ff47d86de921d302b2fc1268191478631939204d5e75e4ede10e33667b07fce6581982cd8315c6d32bd40bd87a5fcb44d560d
|
7
|
+
data.tar.gz: a8bef2d0b60b3a1ba0f8b9af75a733d3f2385c69026bc56f91d0664d270f095e03fd99c0fa3080775e755e68a0bf916be3683b6838448baeb7e02a344dae2f4d
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# xnlogic
|
2
2
|
|
3
|
-
Bootstrap your xnlogic.com application with this easy to use executable gem.
|
3
|
+
Bootstrap your [xnlogic.com](http://xnlogic.com) application with this easy to use executable gem.
|
4
4
|
|
5
5
|
![gem install xnlogic](https://raw.githubusercontent.com/wiki/xnlogic/xn-gem-template/gif/readme_header.gif)
|
6
6
|
|
@@ -11,32 +11,54 @@ Bootstrap your xnlogic.com application with this easy to use executable gem.
|
|
11
11
|
|
12
12
|
## Usage
|
13
13
|
|
14
|
-
$ xnlogic application my_app --key xnuser:xnpassword
|
14
|
+
$ xnlogic application my_app --key xnuser:xnpassword --up
|
15
15
|
$ cd my_app
|
16
|
-
$
|
17
|
-
$ vagrant ssh
|
16
|
+
$ xnlogic ssh
|
18
17
|
|
19
18
|
From the Vagrant VM, you can then:
|
20
19
|
|
21
20
|
$ xn-server
|
22
21
|
$ xn-console
|
23
22
|
|
24
|
-
## Development
|
25
23
|
|
26
|
-
|
24
|
+
## Reference
|
25
|
+
|
26
|
+
The general syntax of the command-line tool is
|
27
|
+
|
28
|
+
$ xnlogic COMMAND [ARGS] [OPTIONS]
|
29
|
+
|
30
|
+
And the following commands are available:
|
31
|
+
|
32
|
+
| Command | Description |
|
33
|
+
| ------- | ----------- |
|
34
|
+
| `application` | Create/update an application. |
|
35
|
+
| `up` | Start a development VM |
|
36
|
+
| `ssh` | Log in to a running development VM |
|
37
|
+
| `vm_config` | Update the configuration and settings of an application. |
|
38
|
+
| `provision` | Apply configuration updates to a running VM |
|
39
|
+
| `server_profiles` | Generates a server profile that can be used to configure a production deployment. |
|
40
|
+
| `gem_sources` | List gem sources required by this application |
|
41
|
+
| `version` | Print the version of the command-line tool |
|
42
|
+
| `help` | Display a help page |
|
43
|
+
|
44
|
+
You can get more information on each command using
|
45
|
+
|
46
|
+
$ xnlogic help COMMAND
|
47
|
+
|
27
48
|
|
28
|
-
ruby -I ~/dev/xnlogic/lib ~/dev/xnlogic/bin/xnlogic vm_config
|
29
49
|
|
30
50
|
## Contributing
|
31
51
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
5. Create a new Pull Request
|
52
|
+
Pull-requests are welcome.
|
53
|
+
If you submit a pull-request, please create a feature branch for your changes.
|
54
|
+
|
55
|
+
#### Using the CLI in development
|
37
56
|
|
57
|
+
To execute from your checked out development version, run it as follows:
|
58
|
+
|
59
|
+
ruby -I ~/dev/xnlogic/lib ~/dev/xnlogic/bin/xnlogic vm_config
|
38
60
|
|
39
|
-
|
61
|
+
#### Releasing a new gem to rubygems:
|
40
62
|
|
41
63
|
CI is not set up yet, so once you're happy with the release, simply:
|
42
64
|
|
@@ -59,6 +59,7 @@ module Xnlogic
|
|
59
59
|
require_key
|
60
60
|
generate_vm_config if options['vm_config']
|
61
61
|
generate_application
|
62
|
+
options['application_version'] = Xnlogic::VERSION
|
62
63
|
write_options
|
63
64
|
Xnlogic.ui.info "Initializing git repo in #{app}"
|
64
65
|
Dir.chdir(app) { system 'git init' and system 'git add .' }
|
@@ -88,6 +89,7 @@ module Xnlogic
|
|
88
89
|
|
89
90
|
def vm_config
|
90
91
|
generate_vm_config
|
92
|
+
options['vm_config_version'] = Xnlogic::VERSION
|
91
93
|
write_options
|
92
94
|
install_vagrant_note
|
93
95
|
|
@@ -114,6 +116,26 @@ module Xnlogic
|
|
114
116
|
end
|
115
117
|
end
|
116
118
|
|
119
|
+
|
120
|
+
def update_key(xn_key)
|
121
|
+
# Set the option
|
122
|
+
options['key'] = xn_key
|
123
|
+
|
124
|
+
# Check that we are in an existing project folder
|
125
|
+
in_existing_project
|
126
|
+
|
127
|
+
# Gemerate the necessary templates
|
128
|
+
templates = {
|
129
|
+
"Gemfile.tt" => "Gemfile",
|
130
|
+
"config/vagrant.provision.tt" => "config/vagrant.provision",
|
131
|
+
}
|
132
|
+
_generate_templates(templates, 'vagrant', template_options, 'Updating configuration')
|
133
|
+
|
134
|
+
# Write the options YAML file
|
135
|
+
write_options
|
136
|
+
end
|
137
|
+
|
138
|
+
|
117
139
|
def template_options
|
118
140
|
namespaced_path = name
|
119
141
|
constant_name = namespaced_path.split('_').map{|p| p[0..0].upcase + p[1..-1] }.join
|
@@ -131,24 +153,34 @@ module Xnlogic
|
|
131
153
|
}
|
132
154
|
end
|
133
155
|
|
156
|
+
|
157
|
+
def _generate_templates(template_src_to_dst, template_folder, opts, ui_message=nil)
|
158
|
+
if(not ui_message.nil?)
|
159
|
+
Xnlogic.ui.info ""
|
160
|
+
Xnlogic.ui.info ui_message
|
161
|
+
Xnlogic.ui.info ""
|
162
|
+
end
|
163
|
+
|
164
|
+
template_src_to_dst.each do |src, dst|
|
165
|
+
thor.template("#{template_folder}/#{src}", app.join(dst), opts)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
|
134
170
|
def generate_vm_config
|
135
|
-
opts = template_options
|
136
171
|
base_templates = {
|
137
172
|
"Vagrantfile.tt" => "Vagrantfile",
|
138
173
|
"Gemfile.tt" => "Gemfile",
|
139
174
|
"config/vagrant.provision.tt" => "config/vagrant.provision",
|
140
175
|
"config/datomic.conf" => "config/datomic.conf",
|
176
|
+
"config/start.sh" => "config/start.sh",
|
141
177
|
"config/transactor.properties" => "config/transactor.properties",
|
142
178
|
}
|
143
179
|
|
144
|
-
|
145
|
-
Xnlogic.ui.info "Creating Vagrant configuration"
|
146
|
-
Xnlogic.ui.info ""
|
147
|
-
base_templates.each do |src, dst|
|
148
|
-
thor.template("vagrant/#{src}", app.join(dst), opts)
|
149
|
-
end
|
180
|
+
_generate_templates(base_templates, 'vagrant', template_options, 'Creating Vagrant configuration')
|
150
181
|
end
|
151
182
|
|
183
|
+
|
152
184
|
def generate_application
|
153
185
|
opts = template_options
|
154
186
|
namespaced_path = opts[:namespaced_path]
|
@@ -179,13 +211,10 @@ module Xnlogic
|
|
179
211
|
"spec/gemname/gemname_spec.rb.tt" => "spec/#{namespaced_path}/#{name}_spec.rb",
|
180
212
|
}
|
181
213
|
|
182
|
-
|
183
|
-
Xnlogic.ui.info "Creating application templates"
|
184
|
-
Xnlogic.ui.info ""
|
185
|
-
templates.each do |src, dst|
|
186
|
-
thor.template("application/#{src}", app.join(dst), opts)
|
187
|
-
end
|
214
|
+
_generate_templates(templates, 'application', opts, 'Creating application templates')
|
188
215
|
end
|
216
|
+
|
217
|
+
|
189
218
|
end
|
190
219
|
end
|
191
220
|
|
data/lib/xnlogic/cli/core.rb
CHANGED
data/lib/xnlogic/cli.rb
CHANGED
@@ -125,6 +125,12 @@ EOD
|
|
125
125
|
exec 'vagrant ssh'
|
126
126
|
end
|
127
127
|
|
128
|
+
desc "key XN_KEY", "Set the key (i.e. xn_user:xn_password) for this application."
|
129
|
+
def key(xn_key)
|
130
|
+
app = Application.new(options, self)
|
131
|
+
app.update_key(xn_key)
|
132
|
+
end
|
133
|
+
|
128
134
|
desc "server_profile HOSTNAME [OPTIONS]",
|
129
135
|
"Generate a new server profile"
|
130
136
|
method_option "ssh_user", type: :string, default: 'deploy', banner:
|
data/lib/xnlogic/deploy.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
# xnlogic gem does not require these dependencies itself, they are used by the
|
2
2
|
# generated app which does require them.
|
3
|
-
|
4
|
-
|
3
|
+
begin
|
4
|
+
# optional dependencies
|
5
|
+
require 'torquebox-rake-support'
|
6
|
+
require 'torquebox-remote-deployer'
|
7
|
+
rescue LoadError; nil; end
|
5
8
|
|
6
9
|
# Monkey patches deploy utils to modify the environment to allow bundler to run successfully.
|
7
10
|
module TorqueBox
|
@@ -12,6 +15,10 @@ module TorqueBox
|
|
12
15
|
# RUBYOPT has to be unset from the environment so bundler doesn't lose its shit
|
13
16
|
env_vars = { 'RUBYOPT' => nil }
|
14
17
|
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
15
22
|
system(env_vars, "#{cmd} 2>&1")
|
16
23
|
end
|
17
24
|
|
data/lib/xnlogic/man/xnlogic
CHANGED
@@ -43,6 +43,10 @@ Updates an existing application with the current Vagrant VM configuration, or ca
|
|
43
43
|
\fBxnlogic server_profile(1)\fR
|
44
44
|
Generates a server profile that can be used to configure a production deployment\.
|
45
45
|
.
|
46
|
+
.TP
|
47
|
+
\fBxnlogic key(1)\fR
|
48
|
+
Updates the key (i\.e\. xn_user:xn_password) used by an existing application\.
|
49
|
+
.
|
46
50
|
.SH "UTILITY COMMANDS"
|
47
51
|
.
|
48
52
|
.TP
|
data/lib/xnlogic/man/xnlogic.txt
CHANGED
@@ -38,16 +38,20 @@ APPLICATION UPDATES
|
|
38
38
|
Generates a server profile that can be used to configure a pro-
|
39
39
|
duction deployment.
|
40
40
|
|
41
|
+
xnlogic key(1)
|
42
|
+
Updates the key (i.e. xn_user:xn_password) used by an existing
|
43
|
+
application.
|
44
|
+
|
41
45
|
UTILITY COMMANDS
|
42
46
|
xnlogic up(1)
|
43
|
-
Starts
|
47
|
+
Starts the development VM. On the first run (only) it will also
|
44
48
|
provision it.
|
45
49
|
|
46
50
|
xnlogic ssh(1)
|
47
51
|
Interactively log into the development VM.
|
48
52
|
|
49
53
|
xnlogic provision(1)
|
50
|
-
Update
|
54
|
+
Update a running VM's configuration to match the con-
|
51
55
|
fig/vagrant.provision script.
|
52
56
|
|
53
57
|
xnlogic gem_sources(1)
|
@@ -1,54 +1,70 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
class
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
instance_eval &config_block
|
11
|
-
end
|
12
|
-
|
13
|
-
# config_binding is the binding taken from the Capistrano configuration file
|
14
|
-
def apply_config(config_binding)
|
15
|
-
roles.each { |role, user| config_binding.eval("role #{role.inspect}, #{user.inspect}") }
|
16
|
-
variables.each { |name, val| config_binding.eval("set #{name.inspect}, #{val.inspect}") }
|
17
|
-
end
|
18
|
-
|
19
|
-
# Setters
|
20
|
-
|
21
|
-
def hostname(hn)
|
22
|
-
@roles[:web] = hn
|
23
|
-
end
|
24
|
-
|
25
|
-
def api_hostname(hn)
|
26
|
-
@variables[:api_hostname] = hn
|
27
|
-
end
|
28
|
-
|
29
|
-
def user(u)
|
30
|
-
@variables[:user] = u
|
31
|
-
end
|
32
|
-
|
33
|
-
def method_missing(symbol, *args)
|
34
|
-
# Swallow config settings we don't care about
|
35
|
-
end
|
1
|
+
# Captures Capistrano-relevant configuration from a server profile.
|
2
|
+
class DeployConfig
|
3
|
+
class << self
|
4
|
+
attr_reader :roles, :variables
|
5
|
+
|
6
|
+
def configure(&config_block)
|
7
|
+
@roles = {}
|
8
|
+
@variables = {}
|
9
|
+
instance_eval &config_block
|
36
10
|
end
|
37
|
-
end
|
38
11
|
|
39
|
-
|
40
|
-
|
12
|
+
# config_binding is the binding taken from the Capistrano configuration file
|
13
|
+
def apply_cap_config(config_binding)
|
14
|
+
roles.each { |role, user| config_binding.eval("role #{role.inspect}, #{user.inspect}") }
|
15
|
+
variables.each { |name, val| config_binding.eval("set #{name.inspect}, #{val.inspect}") }
|
16
|
+
end
|
17
|
+
|
18
|
+
# Setters
|
19
|
+
|
20
|
+
def hostname(hn)
|
21
|
+
@roles[:web] = hn
|
22
|
+
end
|
23
|
+
|
24
|
+
def api_hostname(hn)
|
25
|
+
@variables[:api_hostname] = hn
|
26
|
+
end
|
27
|
+
|
28
|
+
def user(u)
|
29
|
+
@variables[:user] = u
|
30
|
+
end
|
31
|
+
|
32
|
+
def ssl_cert(cert_path)
|
33
|
+
@variables[:ssl_cert] = cert
|
34
|
+
end
|
35
|
+
|
36
|
+
def nginx_conf(file_path)
|
37
|
+
@variables[:nginx_conf] = cert
|
38
|
+
end
|
39
|
+
|
40
|
+
def method_missing(symbol, *args)
|
41
|
+
# Swallow config settings we don't care about
|
42
|
+
end
|
41
43
|
end
|
42
|
-
|
44
|
+
end
|
45
|
+
|
46
|
+
if defined? TorqueBox
|
43
47
|
# Monkey patching this to extend the configuration
|
44
48
|
class TorqueBox::RemoteDeploy
|
45
49
|
def api_hostname(hn)
|
46
50
|
# Unused
|
47
51
|
end
|
52
|
+
|
53
|
+
def ssl_cert(cert_path)
|
54
|
+
# Unused
|
55
|
+
end
|
56
|
+
|
57
|
+
def nginx_conf(file_path)
|
58
|
+
# Unused
|
59
|
+
end
|
48
60
|
end
|
49
61
|
|
50
62
|
def server_profile(&config_block)
|
63
|
+
DeployConfig.configure(&config_block)
|
51
64
|
TorqueBox::RemoteDeploy.configure(&config_block)
|
52
65
|
end
|
66
|
+
else
|
67
|
+
def server_profile(&config_block)
|
68
|
+
DeployConfig.configure(&config_block)
|
69
|
+
end
|
53
70
|
end
|
54
|
-
|
@@ -2,5 +2,6 @@ require 'torquebox-messaging'
|
|
2
2
|
require '<%= config[:namespaced_path] %>'
|
3
3
|
|
4
4
|
# Silence Datomic's verbose console logs
|
5
|
-
org.slf4j.LoggerFactory.getILoggerFactory
|
5
|
+
factory = org.slf4j.LoggerFactory.getILoggerFactory
|
6
|
+
factory.reset if factory.respond_to? :reset
|
6
7
|
|
File without changes
|
@@ -10,4 +10,8 @@ source "https://rubygems.org/"
|
|
10
10
|
|
11
11
|
gemspec
|
12
12
|
|
13
|
-
|
13
|
+
unless ENV['CONFIG_FILE'] # ie. deployment
|
14
|
+
# Gemfile-custom is .gitignored, but evaluated here so you can add
|
15
|
+
# whatever dev tools you like to use to your local environment.
|
16
|
+
eval File.read('Gemfile-custom') if File.exist?('Gemfile-custom')
|
17
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
|
2
|
+
#!/bin/bash
|
3
|
+
|
4
|
+
export XN_LOG_DIR=$HOME/xn.dev/tmp
|
5
|
+
|
6
|
+
silent() { if [[ $debug ]] ; then "$@"; else "$@" &>/dev/null; fi; }
|
7
|
+
|
8
|
+
# Check for jruby 1.7, don't force it.
|
9
|
+
if [[ `ruby -v` == jruby\ 1.7* ]]; then
|
10
|
+
echo "Using `ruby -v`"
|
11
|
+
else
|
12
|
+
echo "Unsupported Ruby version: (`ruby -v | cut -c 1-35`)"
|
13
|
+
echo "Please try again with jruby-1.7.x"
|
14
|
+
fi
|
15
|
+
echo '{"note":"Suppressing Torquebox logs."}' | json -i | cat
|
16
|
+
|
17
|
+
|
18
|
+
cd $HOME/xn.dev
|
19
|
+
|
20
|
+
mkdir -p $XN_LOG_DIR
|
21
|
+
cd $XN_LOG_DIR
|
22
|
+
touch xn.js.log xnlogic.json development.log ${XN_CLIENT}-assets.log
|
23
|
+
cd -
|
24
|
+
|
25
|
+
cd fe/xn.js
|
26
|
+
cake serve &> $XN_LOG_DIR/xn.js.log &
|
27
|
+
echo "xn.js started"
|
28
|
+
cd -
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
ASSETS_DIR=$HOME/$XN_CLIENT/assets
|
33
|
+
if [ -d $ASSETS_DIR ]; then
|
34
|
+
ASSETS_PORT=3031
|
35
|
+
|
36
|
+
cd $ASSETS_DIR
|
37
|
+
|
38
|
+
script/duster -w assets/templates assets/javascripts/templates.js &> $XN_LOG_DIR/duster.js.log &
|
39
|
+
|
40
|
+
bundle exec rackup -p $ASSETS_PORT &> $XN_LOG_DIR/${XN_CLIENT}-assets.log &
|
41
|
+
|
42
|
+
cd -
|
43
|
+
fi
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
START_APPS=$HOME/$XN_CLIENT/apps/apps.start.sh
|
49
|
+
if [ -x $START_APPS ]; then
|
50
|
+
cd $HOME/$XN_CLIENT/apps
|
51
|
+
$START_APPS &
|
52
|
+
cd -
|
53
|
+
fi
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
cd $HOME/xn.dev
|
59
|
+
|
60
|
+
|
61
|
+
tail -n 0 -f fe/fe-server/log/development.log $XN_LOG_DIR/xn.js.log $XN_LOG_DIR/${XN_CLIENT}-assets.log &
|
62
|
+
tail -n 0 -f $XN_LOG_DIR/server.log | grep -E "Deployed|Starting deployment|TOPLEVEL_BINDING" &
|
63
|
+
|
64
|
+
tail -n 0 -f $XN_LOG_DIR/xnlogic.json | while read line; do echo "$line" | json -i; done &
|
65
|
+
|
66
|
+
warn_sigint() {
|
67
|
+
echo "Please wait for shutdown to complete cleanly. (Press Ctrl-C again to force)"
|
68
|
+
}
|
69
|
+
|
70
|
+
|
71
|
+
# Terminate all processes
|
72
|
+
terminator() {
|
73
|
+
trap 'warn_sigint' SIGINT
|
74
|
+
echo "Shutting down support processes..."
|
75
|
+
jobs -p | xargs kill -s SIGTERM
|
76
|
+
echo "Shutting down jboss..."
|
77
|
+
silent $JBOSS_HOME/bin/jboss-cli.sh --connect :shutdown
|
78
|
+
}
|
79
|
+
trap 'terminator' SIGINT
|
80
|
+
|
81
|
+
export RELOAD=true
|
82
|
+
echo "starting torquebox"
|
83
|
+
lsof -i :8080 -sTCP:listen | grep . || torquebox run &> /dev/null &
|
84
|
+
echo "Hit Ctrl+C to terminate"
|
85
|
+
cat
|
86
|
+
at
|
@@ -58,15 +58,13 @@ cd xn.dev
|
|
58
58
|
source script/setup_stack
|
59
59
|
echo jruby-${jruby_version} > .ruby-version
|
60
60
|
cd fe/xn.js
|
61
|
-
|
61
|
+
npm install --loglevel silent
|
62
62
|
cd -
|
63
63
|
rake --quiet new_tb_version bundle_fe_server fresh_fe_config fe_server_db_init
|
64
64
|
|
65
65
|
if [ -d $HOME/$XN_CLIENT/assets ]; then
|
66
66
|
hr
|
67
67
|
echo "Configuring Assets"
|
68
|
-
silent sudo chown -R vagrant:vagrant $HOME
|
69
|
-
chown -R vagrant:vagrant $HOME
|
70
68
|
cd $HOME/$XN_CLIENT/assets
|
71
69
|
bundle install
|
72
70
|
npm install
|
@@ -80,7 +78,8 @@ sudo start datomic
|
|
80
78
|
hr
|
81
79
|
echo "Customizing .zshrc for $XN_CLIENT development"
|
82
80
|
echo "export XN_CLIENT=$XN_CLIENT" >> ~/.zshrc
|
83
|
-
|
81
|
+
chmod +x $XN_CLIENT/config/start.sh
|
82
|
+
echo "alias xn-server=$XN_CLIENT/config/start.sh" >> ~/.zshrc
|
84
83
|
echo 'alias xn-console="(cd ~/$XN_CLIENT && bundle exec jruby -J-Xmx1g -J-XX:MaxPermSize=200m -S irb -I lib -r dev/console)"' >> ~/.zshrc
|
85
84
|
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*' >> ~/.zshrc
|
86
85
|
echo 'JRUBY_OPTS=--dev source $HOME/xn.dev/script/setup_stack' >> ~/.zshrc
|
@@ -98,12 +97,20 @@ git config --global --add alias.lg "log --color --graph --pretty=format:'%Cred%h
|
|
98
97
|
git config --global --add alias.lga "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --all"
|
99
98
|
git config --global --add alias.branches "submodule foreach 'git branch | grep \*'"
|
100
99
|
|
101
|
-
|
102
|
-
|
103
100
|
hr
|
104
101
|
echo "Configuring $XN_CLIENT"
|
105
102
|
cd $HOME/$XN_CLIENT
|
106
103
|
bundle
|
107
104
|
torquebox deploy
|
105
|
+
|
106
|
+
PROVISION_APPS=$HOME/$XN_CLIENT/apps/apps.provision.sh
|
107
|
+
if [ -x $PROVISION_APPS ]; then
|
108
|
+
hr
|
109
|
+
echo "Provisioning Custom Apps"
|
110
|
+
cd $HOME/$XN_CLIENT/apps
|
111
|
+
$PROVISION_APPS
|
112
|
+
cd -
|
113
|
+
fi
|
114
|
+
|
108
115
|
hr
|
109
116
|
echo "Done!"
|
data/lib/xnlogic/version.rb
CHANGED
data/man/xnlogic.ronn
CHANGED
@@ -37,6 +37,9 @@ We divide `xnlogic` subcommands into the initial command, update commands, and u
|
|
37
37
|
* `xnlogic server_profile(1)`:
|
38
38
|
Generates a server profile that can be used to configure a production deployment.
|
39
39
|
|
40
|
+
* `xnlogic key(1)`:
|
41
|
+
Updates the key (i.e. xn_user:xn_password) used by an existing application.
|
42
|
+
|
40
43
|
## UTILITY COMMANDS
|
41
44
|
|
42
45
|
* `xnlogic up(1)`:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xnlogic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Darrick Wiebe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -126,10 +126,12 @@ files:
|
|
126
126
|
- lib/xnlogic/templates/application/tasks/deploy.rb.tt
|
127
127
|
- lib/xnlogic/templates/application/torquebox.yml.tt
|
128
128
|
- lib/xnlogic/templates/application/torquebox_init.rb.tt
|
129
|
+
- lib/xnlogic/templates/deploy/nginx.conf.tt
|
129
130
|
- lib/xnlogic/templates/deploy/server_profiles/profile.rb.tt
|
130
131
|
- lib/xnlogic/templates/vagrant/Gemfile.tt
|
131
132
|
- lib/xnlogic/templates/vagrant/Vagrantfile.tt
|
132
133
|
- lib/xnlogic/templates/vagrant/config/datomic.conf
|
134
|
+
- lib/xnlogic/templates/vagrant/config/start.sh
|
133
135
|
- lib/xnlogic/templates/vagrant/config/transactor.properties
|
134
136
|
- lib/xnlogic/templates/vagrant/config/vagrant.provision.tt
|
135
137
|
- lib/xnlogic/ui.rb
|