remi-staticify 0.1.0 → 0.1.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/README.rdoc +25 -1
- data/VERSION +1 -1
- data/bin/staticify +28 -13
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -1,3 +1,27 @@
|
|
1
1
|
= Staticify
|
2
2
|
|
3
|
-
|
3
|
+
== Usage
|
4
|
+
|
5
|
+
Simple script for staticifying your Rack applications
|
6
|
+
|
7
|
+
staticify == %{ For staticifying your Rack applications }
|
8
|
+
|
9
|
+
Usage:
|
10
|
+
echo 'paths' | staticify # print this usage information
|
11
|
+
echo 'paths' | staticify . # staticify Rack app in current directory
|
12
|
+
|
13
|
+
Note:
|
14
|
+
staticify expects to get the paths to hit via STDIN
|
15
|
+
|
16
|
+
Options:
|
17
|
+
-d, --dir some/directory # directory to save files to
|
18
|
+
-a, --app "MyApp.new" # ruby to eval to get Rack app
|
19
|
+
-r, --require file[.rb] # ruby file(s) to require
|
20
|
+
|
21
|
+
== Notes
|
22
|
+
|
23
|
+
Checks for config.ru / Rails by default, otherwise you can:
|
24
|
+
|
25
|
+
$ staticify -r myapp.rb --app 'lambda {|env| [200, {}, "hi!"] }' info
|
26
|
+
$ staticify -r myapp.rb,another-file.rb --app 'Sinatra::Application' get '/'
|
27
|
+
$ staticify -r myapp --app 'MyApp.new' '/'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/bin/staticify
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# Simple script for staticifying your Rack applications
|
4
4
|
#
|
5
|
-
# Checks for config.ru / Rails by
|
5
|
+
# Checks for config.ru / Rails by default, otherwise you can:
|
6
6
|
#
|
7
7
|
# $ staticify -r myapp.rb --app 'lambda {|env| [200, {}, "hi!"] }' info
|
8
8
|
# $ staticify -r myapp.rb,another-file.rb --app 'Sinatra::Application' get '/'
|
@@ -26,6 +26,9 @@ def usage
|
|
26
26
|
-d, --dir some/directory # directory to save files to
|
27
27
|
-a, --app "MyApp.new" # ruby to eval to get Rack app
|
28
28
|
-r, --require file[.rb] # ruby file(s) to require
|
29
|
+
-p, --paths "/,/foo,/bar" # specify paths (instead of STDIN)
|
30
|
+
-y, --dry-run # just print what we *would* do
|
31
|
+
-s, --save # don't delete dir before running
|
29
32
|
|
30
33
|
USAGE
|
31
34
|
end
|
@@ -37,14 +40,20 @@ end
|
|
37
40
|
|
38
41
|
#### ==== Option Parsing ==== ####
|
39
42
|
|
40
|
-
files_to_require
|
41
|
-
ruby_to_run
|
42
|
-
path_to_cache_to
|
43
|
+
files_to_require = []
|
44
|
+
ruby_to_run = nil
|
45
|
+
path_to_cache_to = '.site'
|
46
|
+
paths_to_cache = []
|
47
|
+
dry_run = false
|
48
|
+
overwrite_dir = true
|
43
49
|
|
44
50
|
opts = OptionParser.new do |opts|
|
45
|
-
opts.on('-r', '--require [file]') {|x| files_to_require << x
|
46
|
-
opts.on('-a', '--app [ruby]') {|x| ruby_to_run
|
47
|
-
opts.on('-d', '--dir [dir]') {|x| path_to_cache_to
|
51
|
+
opts.on('-r', '--require [file]') {|x| files_to_require << x }
|
52
|
+
opts.on('-a', '--app [ruby]') {|x| ruby_to_run = x }
|
53
|
+
opts.on('-d', '--dir [dir]') {|x| path_to_cache_to = x }
|
54
|
+
opts.on('-p', '--paths [paths]') {|x| paths_to_cache = x.split(',') }
|
55
|
+
opts.on('-y', '--dry-run') { dry_run = true }
|
56
|
+
opts.on('-s', '--save') { overwrite_dir = false }
|
48
57
|
end
|
49
58
|
opts.parse! ARGV
|
50
59
|
|
@@ -74,9 +83,10 @@ end
|
|
74
83
|
|
75
84
|
#### ==== Get Routes to Cache ==== ####
|
76
85
|
|
77
|
-
paths_to_cache
|
78
|
-
while path = gets
|
79
|
-
|
86
|
+
if paths_to_cache.empty?
|
87
|
+
while path = gets
|
88
|
+
paths_to_cache << path.strip
|
89
|
+
end
|
80
90
|
end
|
81
91
|
|
82
92
|
puts "Caching to #{ path_to_cache_to }"
|
@@ -85,11 +95,16 @@ puts "#{ paths_to_cache.length } paths to cache:"
|
|
85
95
|
|
86
96
|
#### ==== Cache the Routes ==== ####"
|
87
97
|
|
88
|
-
|
98
|
+
puts "rm -rf #{ path_to_cache_to }" if overwrite_dir
|
99
|
+
FileUtils.rm_rf path_to_cache_to if overwrite_dir && !dry_run
|
89
100
|
|
90
101
|
RackBox.app = Rack::Staticifier.new(RackBox.app, :root => path_to_cache_to)
|
91
102
|
|
92
103
|
paths_to_cache.each do |path|
|
93
|
-
|
94
|
-
|
104
|
+
if dry_run
|
105
|
+
puts " #{ path }"
|
106
|
+
else
|
107
|
+
response = RackBox.request path
|
108
|
+
puts " #{ response.status } #{ path }"
|
109
|
+
end
|
95
110
|
end
|