jumpstart 0.3.9 → 0.4.0
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/lib/jumpstart/filetools.rb
CHANGED
@@ -119,13 +119,22 @@ module JumpStart::FileTools
|
|
119
119
|
# e.g. You might call the method with something like: FileUtils.replace_strings(target_file, :name => "Ian", :country => "England")
|
120
120
|
# ... and in the template it would look like this:
|
121
121
|
# Hello there NAME from COUNTRY
|
122
|
+
# Will also replace strings present in the target_file path. so if the method call looked like: FileUtils.replace_strings(target_file, :name => "Ian", :country => "England")
|
123
|
+
# and target_file was: /Users/name/Sites/country the strings matching NAME and COUNTRY inside the file would be swapped out and then a new file at the path: /Users/Ian/Sites/England would be created and populated with the contents. The file at the previous path would be deleted.
|
122
124
|
def replace_strings(target_file, args)
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
125
|
+
if File.file?(target_file)
|
126
|
+
txt = IO.read(target_file)
|
127
|
+
new_file = target_file.dup
|
128
|
+
args.each do |x, y|
|
129
|
+
txt.gsub!(/#{x.to_s.upcase}/, y)
|
130
|
+
new_file.gsub!(/#{x.to_s.downcase}/, y)
|
131
|
+
end
|
132
|
+
dir = new_file.sub(/\/\w+\.*\w*$/, '')
|
133
|
+
FileUtils.mkdir_p(dir)
|
134
|
+
FileUtils.rm(target_file)
|
135
|
+
File.open(new_file, "w") do |file|
|
136
|
+
file.puts txt
|
137
|
+
end
|
129
138
|
end
|
130
139
|
end
|
131
140
|
|
@@ -233,25 +233,68 @@ class TestJumpstartFileTools < Test::Unit::TestCase
|
|
233
233
|
end
|
234
234
|
|
235
235
|
context "Testing JumpStart::FileUtils#replace_strings class method.\n" do
|
236
|
-
|
236
|
+
|
237
237
|
setup do
|
238
|
-
@
|
239
|
-
@
|
240
|
-
@
|
238
|
+
@target_file_1 = "#{JumpStart::ROOT_PATH}/test/test_jumpstart_templates/test_fileutils/config_capistrano_test.rb"
|
239
|
+
@target_file_2 = "#{JumpStart::ROOT_PATH}/test/test_jumpstart_templates/test_fileutils/replace_strings_test_app_name.rb"
|
240
|
+
@target_file_3 = "#{JumpStart::ROOT_PATH}/test/test_jumpstart_templates/test_fileutils/app_name/app_name_replace_strings_test.txt"
|
241
|
+
@new_file_2 = "#{JumpStart::ROOT_PATH}/test/test_jumpstart_templates/test_fileutils/replace_strings_test_bungle.rb"
|
242
|
+
@new_file_3 = "#{JumpStart::ROOT_PATH}/test/test_jumpstart_templates/test_fileutils/bungle/bungle_replace_strings_test.txt"
|
243
|
+
@target_files = []
|
244
|
+
@target_files << @target_file_1 << @target_file_2 << @target_file_3
|
241
245
|
@source_file = IO.readlines("#{JumpStart::ROOT_PATH}/test/test_jumpstart_templates/test_fileutils/config_capistrano_source.rb")
|
242
|
-
|
243
|
-
|
246
|
+
@target_files.each do |x|
|
247
|
+
File.open(x, 'w+') do |file|
|
248
|
+
file.puts @source_file
|
249
|
+
end
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
teardown do
|
254
|
+
FileUtils.remove_files(@target_files)
|
255
|
+
if File.exists?(@new_file_2)
|
256
|
+
FileUtils.remove_file(@new_file_2)
|
257
|
+
end
|
258
|
+
if File.directory?("#{JumpStart::ROOT_PATH}/test/test_jumpstart_templates/test_fileutils/bungle")
|
259
|
+
FileUtils.remove_dir("#{JumpStart::ROOT_PATH}/test/test_jumpstart_templates/test_fileutils/bungle")
|
244
260
|
end
|
245
261
|
end
|
246
262
|
|
247
|
-
should "replace strings with replace_strings method" do
|
248
|
-
FileUtils.replace_strings(@
|
249
|
-
file = IO.readlines(@
|
263
|
+
should "replace strings with replace_strings method if the path does not contain the replacement strings and only one replacement string is provided" do
|
264
|
+
FileUtils.replace_strings(@target_file_1, :app_name => 'test_app')
|
265
|
+
file = IO.readlines(@target_file_1)
|
266
|
+
assert_equal "set :application, 'test_app'\n", file[0]
|
267
|
+
assert_equal "run \"\#{sudo} nginx_auto_config /usr/local/bin/nginx.remote.conf /opt/nginx/conf/nginx.conf test_app\"\n", file[44]
|
268
|
+
end
|
269
|
+
|
270
|
+
should "replace strings with replace_strings method if the path does not contain the replacement strings and more than one replacement string is provided" do
|
271
|
+
FileUtils.replace_strings(@target_file_1, :app_name => 'test_app', :REMOTE_SERVER => 'remote_box')
|
272
|
+
file = IO.readlines(@target_file_1)
|
250
273
|
assert_equal "set :application, 'test_app'\n", file[0]
|
251
274
|
assert_equal "set :domain, 'remote_box'\n", file[1]
|
252
275
|
assert_equal "run \"\#{sudo} nginx_auto_config /usr/local/bin/nginx.remote.conf /opt/nginx/conf/nginx.conf test_app\"\n", file[44]
|
253
276
|
end
|
254
|
-
|
277
|
+
|
278
|
+
should "replace strings inside the target path if the target is a file and there is more than one argument." do
|
279
|
+
FileUtils.replace_strings(@target_file_2, :app_name => 'bungle', :remote_server => 'boxy')
|
280
|
+
file = IO.readlines(@new_file_2)
|
281
|
+
assert_equal "set :application, 'bungle'\n", file[0]
|
282
|
+
assert_equal "set :domain, 'boxy'\n", file[1]
|
283
|
+
assert_equal "run \"\#{sudo} nginx_auto_config /usr/local/bin/nginx.remote.conf /opt/nginx/conf/nginx.conf bungle\"\n", file[44]
|
284
|
+
assert File.exists?(@new_file_2)
|
285
|
+
assert !File.exists?(@target_file_2)
|
286
|
+
end
|
287
|
+
|
288
|
+
should "replace strings inside the target path if the target is a file and there is more than one argument and the replacement string is found in the directory structure." do
|
289
|
+
FileUtils.replace_strings(@target_file_3, :app_name => 'bungle', :remote_server => 'boxy')
|
290
|
+
file = IO.readlines(@new_file_3)
|
291
|
+
assert_equal "set :application, 'bungle'\n", file[0]
|
292
|
+
assert_equal "set :domain, 'boxy'\n", file[1]
|
293
|
+
assert_equal "run \"\#{sudo} nginx_auto_config /usr/local/bin/nginx.remote.conf /opt/nginx/conf/nginx.conf bungle\"\n", file[44]
|
294
|
+
assert File.exists?(@new_file_3)
|
295
|
+
assert !File.exists?(@target_file_3)
|
296
|
+
end
|
297
|
+
|
255
298
|
end
|
256
299
|
|
257
300
|
context "Testing JumpStart::FileUtils#check_source_type class method.\n" do
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 4
|
8
|
+
- 0
|
9
|
+
version: 0.4.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Ian Alexander Wood (i0n)
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-06-
|
17
|
+
date: 2010-06-03 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -88,7 +88,6 @@ files:
|
|
88
88
|
- test/test_jumpstart_templates/test_fileutils/check_source_type
|
89
89
|
- test/test_jumpstart_templates/test_fileutils/check_source_type.txt
|
90
90
|
- test/test_jumpstart_templates/test_fileutils/config_capistrano_source.rb
|
91
|
-
- test/test_jumpstart_templates/test_fileutils/config_capistrano_test.rb
|
92
91
|
- test/test_jumpstart_templates/test_fileutils/config_nginx_source.txt
|
93
92
|
- test/test_jumpstart_templates/test_fileutils/config_nginx_test.txt
|
94
93
|
- test/test_jumpstart_templates/test_fileutils/hosts_test
|
@@ -1,62 +0,0 @@
|
|
1
|
-
set :application, 'test_app'
|
2
|
-
set :domain, 'remote_box'
|
3
|
-
set :user, 'i0n'
|
4
|
-
|
5
|
-
set :repository, "#{user}@#{domain}:/home/#{user}/git/#{application}.git"
|
6
|
-
|
7
|
-
role :app, domain # This may be the same as the `Web` server
|
8
|
-
role :web, domain # Your HTTP server, Apache/etc
|
9
|
-
role :db, domain , :primary => true # This is where Rails migrations will run
|
10
|
-
|
11
|
-
set :scm_verbose, true
|
12
|
-
|
13
|
-
set :scm, :git
|
14
|
-
set :scm_username, user
|
15
|
-
set :runner, user
|
16
|
-
set :use_sudo, false
|
17
|
-
set :branch, "master"
|
18
|
-
set :deploy_via, :checkout
|
19
|
-
set :git_shallow_clone, 1
|
20
|
-
set :deploy_to, "/home/#{user}/sites/#{application}"
|
21
|
-
default_run_options[:pty] = true
|
22
|
-
|
23
|
-
namespace :deploy do
|
24
|
-
#task which causes Passenger to initiate a restart
|
25
|
-
task :restart do
|
26
|
-
run "mkdir -p #{release_path}/tmp && touch #{release_path}/tmp/restart.txt"
|
27
|
-
end
|
28
|
-
|
29
|
-
namespace :db do
|
30
|
-
|
31
|
-
desc "Create database for the production environment using the servers rake db:setup task.\n Loads the schema, and initializes with the seed data"
|
32
|
-
task :setup do
|
33
|
-
run "cd #{current_path}; rake db:setup RAILS_ENV=production"
|
34
|
-
end
|
35
|
-
|
36
|
-
desc "Populates the production database using lib/tasks/populate which I will use as my own internal convention for this process"
|
37
|
-
task :populate do
|
38
|
-
run "cd #{current_path}; rake db:populate RAILS_ENV=production"
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
desc "Task to set up the remote Nginx server for app deployment"
|
44
|
-
task :nginx do
|
45
|
-
run "#{sudo} nginx_auto_config /usr/local/bin/nginx.remote.conf /opt/nginx/conf/nginx.conf test_app"
|
46
|
-
end
|
47
|
-
|
48
|
-
desc "Create bare remote git repo then add remote origin to local git repo and push to remote"
|
49
|
-
task :git do
|
50
|
-
run "cd /home/#{user}/git; mkdir #{application}.git; cd #{application}.git; git init --bare"
|
51
|
-
`git remote add origin ssh://#{user}@#{domain}/~/git/#{application}.git`
|
52
|
-
`git push origin master`
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
|
57
|
-
# Reminder of default actions for cap deploy:
|
58
|
-
# deploy:update_code
|
59
|
-
# deploy:symlink
|
60
|
-
# deploy:restart
|
61
|
-
|
62
|
-
# eg: after 'deploy:symlink', 'deploy:restart'
|