roger 0.12.5 → 0.13.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.
- checksums.yaml +8 -8
- data/CHANGELOG.md +9 -0
- data/lib/roger/cli.rb +12 -44
- data/lib/roger/cli/command.rb +5 -1
- data/lib/roger/cli/generate.rb +3 -1
- data/lib/roger/cli/test.rb +16 -0
- data/lib/roger/helpers/get_callable.rb +28 -0
- data/lib/roger/helpers/logging.rb +30 -0
- data/lib/roger/mockupfile.rb +10 -3
- data/lib/roger/project.rb +19 -8
- data/lib/roger/release.rb +9 -51
- data/lib/roger/release/finalizers/rsync.rb +2 -56
- data/lib/roger/server.rb +0 -3
- data/lib/roger/test.rb +134 -0
- data/roger.gemspec +3 -3
- data/test/Mockupfile-syntax.rb +18 -10
- data/test/project/Mockupfile +7 -2
- data/test/project/html/formats/index.html +10 -1
- data/test/project/lib/tests/fail/fail.rb +17 -0
- data/test/project/lib/tests/noop/lib/cli.rb +8 -0
- data/test/project/lib/tests/noop/lib/test.rb +15 -0
- data/test/project/lib/tests/noop/noop.rb +7 -0
- data/test/project/lib/tests/succeed/succeed.rb +17 -0
- data/test/unit/cli/cli_base_test.rb +24 -0
- data/test/unit/cli/cli_test_test.rb +142 -0
- data/test/unit/generators_test.rb +1 -1
- data/test/unit/release/cleaner_test.rb +1 -1
- data/test/unit/release/processors_test.rb +1 -1
- data/test/unit/release_test.rb +1 -1
- data/test/unit/resolver_test.rb +2 -2
- data/test/unit/template_test.rb +1 -1
- metadata +24 -10
- data/lib/roger/rack/html_validator.rb +0 -26
- data/lib/roger/w3c_validator.rb +0 -129
- data/test/unit/cli_test.rb +0 -12
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NTVmODQzZjA1Nzg0OGZmZWIzYmEwNDA4MGVlMjgxZWUzMjI5Njg2Yw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZWM0NjJiYjYzYzNmZWFmODdmMDM0MmM5ZmQxMmY1MjgyZDBjZGNkMw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NDdmYTEzNDRlMWY3ZmQwNjU1NjcxYzY3NTJlZDk4M2QwNjUwMzE3MTE0MmJj
|
10
|
+
MzMxZTQxOTBhYTI1ZmVkNzQ4YmFlZjAyZDY0OGIzODkyMDBmYmMwZjMyMGQ3
|
11
|
+
ODQ1ZTdiYjliZjczMjEwYmQ4NTlkMTlkNzg4YTcwNWE0ZjllODE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTVhYzQyMTg0MzkxM2JmNmU0ZTQ3YjlmYTBkNzUyNGJjZjk0MmVhZDExNmI4
|
14
|
+
MjRhOWJjNWRhMmY2OTg0ODIwODhjYjQyMTQyYTQ5ZDdmNWRiMDAzZGYxMzEw
|
15
|
+
ZTIzMWMzOWE5YjA4YzE1OGE3NjRmMGRkYzgzMTYxNzQ1NTZlMjA=
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## Version 0.13.0
|
4
|
+
*Attention* This is the last call version before 1.0.0 (5 years in sub 1.0.0 is more than enough)
|
5
|
+
|
6
|
+
There should be no breaking changes between 0.12.5 and 0.13.0
|
7
|
+
|
8
|
+
* Added `test` command infrastructure inlcuding tests
|
9
|
+
* Remove W3C Validator, it is now available as a separate gem (`roger_w3cvalidator`)
|
10
|
+
* Minor internal refactorings and library updates (mainly Thor and Test-Unit)
|
11
|
+
|
3
12
|
## Version 0.12.5
|
4
13
|
* Fix github pages finalizer to work if the Dir finalizer is loaded as well
|
5
14
|
* Run relativizer as the last thing before you finalize as to fix resolving issues with generated files
|
data/lib/roger/cli.rb
CHANGED
@@ -15,7 +15,6 @@ include FileUtils
|
|
15
15
|
|
16
16
|
require File.dirname(__FILE__) + "/template"
|
17
17
|
require File.dirname(__FILE__) + "/project"
|
18
|
-
require File.dirname(__FILE__) + "/w3c_validator"
|
19
18
|
|
20
19
|
|
21
20
|
module Roger
|
@@ -26,8 +25,10 @@ require File.dirname(__FILE__) + "/cli/command"
|
|
26
25
|
require File.dirname(__FILE__) + "/cli/serve"
|
27
26
|
require File.dirname(__FILE__) + "/cli/release"
|
28
27
|
require File.dirname(__FILE__) + "/cli/generate"
|
28
|
+
require File.dirname(__FILE__) + "/cli/test"
|
29
29
|
|
30
30
|
require File.dirname(__FILE__) + "/generators"
|
31
|
+
require File.dirname(__FILE__) + "/test"
|
31
32
|
|
32
33
|
|
33
34
|
module Roger
|
@@ -35,11 +36,15 @@ module Roger
|
|
35
36
|
|
36
37
|
def initialize(*args)
|
37
38
|
super
|
38
|
-
self.class.project
|
39
|
+
self.class.project ||= initialize_project
|
39
40
|
end
|
40
41
|
|
41
42
|
class << self
|
42
43
|
attr_accessor :project
|
44
|
+
|
45
|
+
def exit_on_failure?
|
46
|
+
true
|
47
|
+
end
|
43
48
|
end
|
44
49
|
|
45
50
|
class_option :path,
|
@@ -57,7 +62,11 @@ module Roger
|
|
57
62
|
:desc => 'Defaults to [directory]/partials',
|
58
63
|
:type => :string
|
59
64
|
|
60
|
-
|
65
|
+
desc "test [COMMAND]", "Run one or more tests. Test can be 'all' for all defined tests or a specific test name"
|
66
|
+
subcommand "test", Cli::Test
|
67
|
+
|
68
|
+
desc "generate [COMMAND]", "Run a generator"
|
69
|
+
subcommand "generate", Cli::Generate
|
61
70
|
|
62
71
|
register Cli::Serve, "serve", "serve #{Cli::Serve.arguments.map{ |arg| arg.banner }.join(" ")}", Cli::Serve.desc
|
63
72
|
self.tasks["serve"].options = Cli::Serve.class_options
|
@@ -65,36 +74,6 @@ module Roger
|
|
65
74
|
register Cli::Release, "release", "release #{Cli::Release.arguments.map{ |arg| arg.banner }.join(" ")}", Cli::Release.desc
|
66
75
|
self.tasks["release"].options = Cli::Release.class_options
|
67
76
|
|
68
|
-
desc "validate [directory/file]", "Validates the file or all HTML in directory"
|
69
|
-
method_options :show_valid => :boolean, # Also print a line for each valid file
|
70
|
-
:filter => :string # What files should be found, defaults to [^_]*.html
|
71
|
-
def validate(path=".")
|
72
|
-
filter = options["filter"] || "[^_]*.html"
|
73
|
-
|
74
|
-
puts "Filtering on #{options["filter"]}" if options["filter"]
|
75
|
-
|
76
|
-
if File.directory?(path)
|
77
|
-
any_invalid = false
|
78
|
-
|
79
|
-
if (files = Dir.glob("#{path}/**/#{filter}")).any?
|
80
|
-
files.each do |file|
|
81
|
-
if !self.w3cvalidate(file)
|
82
|
-
any_invalid = true
|
83
|
-
end
|
84
|
-
end
|
85
|
-
if !any_invalid
|
86
|
-
puts "All files were considered valid"
|
87
|
-
end
|
88
|
-
else
|
89
|
-
puts "No files matched \"#{filter}\""
|
90
|
-
end
|
91
|
-
elsif File.readable?(path)
|
92
|
-
self.w3cvalidate(path)
|
93
|
-
else
|
94
|
-
puts "No such file/directory #{path}"
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
77
|
protected
|
99
78
|
|
100
79
|
# TODO: handle options
|
@@ -106,17 +85,6 @@ module Roger
|
|
106
85
|
|
107
86
|
Project.new(options[:path], {:shell => self.shell}.update(options))
|
108
87
|
end
|
109
|
-
|
110
|
-
|
111
|
-
def w3cvalidate(file)
|
112
|
-
validator = W3CValidator.new(File.read(file))
|
113
|
-
validator.validate!
|
114
|
-
if !options["show_valid"] && !validator.valid || options["show_valid"]
|
115
|
-
print "- #{file} "
|
116
|
-
print "(errors: #{validator.errors}, warnings: #{validator.warnings})\n"
|
117
|
-
end
|
118
|
-
validator.valid
|
119
|
-
end
|
120
88
|
|
121
89
|
end
|
122
90
|
|
data/lib/roger/cli/command.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
module Roger
|
2
2
|
|
3
3
|
class Cli::Command < Thor::Group
|
4
|
-
|
4
|
+
def self.exit_on_failure?
|
5
|
+
true
|
6
|
+
end
|
7
|
+
|
5
8
|
class_option :verbose,
|
6
9
|
:desc => "Set's verbose output",
|
7
10
|
:aliases => ["-v"],
|
8
11
|
:default => false,
|
9
12
|
:type => :boolean
|
10
13
|
|
14
|
+
|
11
15
|
def initialize_project
|
12
16
|
@project = Cli::Base.project
|
13
17
|
end
|
data/lib/roger/cli/generate.rb
CHANGED
@@ -0,0 +1,16 @@
|
|
1
|
+
module Roger
|
2
|
+
class Cli::Test < Thor
|
3
|
+
def self.exit_on_failure?
|
4
|
+
true
|
5
|
+
end
|
6
|
+
|
7
|
+
default_task :all
|
8
|
+
|
9
|
+
desc "all", "Run all tests defined in Mockupfile. (this is the default action)"
|
10
|
+
def all
|
11
|
+
unless Cli::Base.project.test.run!
|
12
|
+
raise Thor::Error, "Test failed"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Roger
|
2
|
+
module Helpers
|
3
|
+
module GetCallable
|
4
|
+
# Makes callable into a object that responds to call.
|
5
|
+
#
|
6
|
+
# @param [#call, Symbol, Class] callable If callable already responds to #call will just return callable, a Symbol will be searched for in the scope parameter, a class will be instantiated (and checked if it will respond to #call)
|
7
|
+
# @param [Hash] map, Mapping to match symbol to a callable
|
8
|
+
def get_callable(callable, map)
|
9
|
+
return callable if callable.respond_to?(:call)
|
10
|
+
|
11
|
+
if callable.kind_of?(Symbol) && map.has_key?(callable)
|
12
|
+
callable = map[callable]
|
13
|
+
end
|
14
|
+
|
15
|
+
if callable.kind_of?(Class)
|
16
|
+
callable = callable.new
|
17
|
+
end
|
18
|
+
|
19
|
+
if callable.respond_to?(:call)
|
20
|
+
callable
|
21
|
+
else
|
22
|
+
raise ArgumentError, "Could not resolve #{callable.inspect}. Callable must be an object that responds to #call or a symbol that resolve to such an object or a class with a #call instance method."
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Roger
|
2
|
+
module Helpers
|
3
|
+
module Logging
|
4
|
+
# Write out a log message
|
5
|
+
def log(part, msg, verbose = false, &block)
|
6
|
+
if !verbose || verbose && self.project.options[:verbose]
|
7
|
+
self.project.shell.say "\033[37m#{part.class.to_s}\033[0m" + " : " + msg.to_s, nil, true
|
8
|
+
end
|
9
|
+
if block_given?
|
10
|
+
begin
|
11
|
+
self.project.shell.padding = self.project.shell.padding + 1
|
12
|
+
yield
|
13
|
+
ensure
|
14
|
+
self.project.shell.padding = self.project.shell.padding - 1
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def debug(part, msg, &block)
|
20
|
+
self.log(part, msg, true, &block)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Write out a warning message
|
24
|
+
def warn(part, msg)
|
25
|
+
self.project.shell.say "\033[37m#{part.class.to_s}\033[0m" + " : " + "\033[31m#{msg.to_s}\033[0m", nil, true
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/roger/mockupfile.rb
CHANGED
@@ -23,9 +23,9 @@ module Roger
|
|
23
23
|
# @attr :path [Pathname] The path of the Mockupfile for this project
|
24
24
|
attr_accessor :path, :project
|
25
25
|
|
26
|
-
def initialize(project)
|
26
|
+
def initialize(project, path = nil)
|
27
27
|
@project = project
|
28
|
-
@path = Pathname.new(project.path + "Mockupfile")
|
28
|
+
@path = (path && Pathname.new(path)) || Pathname.new(project.path + "Mockupfile")
|
29
29
|
end
|
30
30
|
|
31
31
|
# Actually load the mockupfile
|
@@ -56,8 +56,15 @@ module Roger
|
|
56
56
|
end
|
57
57
|
self.project.server
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
alias :server :serve
|
61
|
+
|
62
|
+
def test
|
63
|
+
if block_given?
|
64
|
+
yield(self.project.test)
|
65
|
+
end
|
66
|
+
self.project.test
|
67
|
+
end
|
61
68
|
|
62
69
|
end
|
63
70
|
end
|
data/lib/roger/project.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require File.dirname(__FILE__) + "/release"
|
2
2
|
require File.dirname(__FILE__) + "/server"
|
3
|
+
require File.dirname(__FILE__) + "/test"
|
4
|
+
|
3
5
|
require File.dirname(__FILE__) + "/mockupfile"
|
4
6
|
|
5
7
|
module Roger
|
@@ -10,7 +12,8 @@ module Roger
|
|
10
12
|
# @attr :html_path [Pathname] The path of the HTML mockup
|
11
13
|
# @attr :partial_path [Pathname] The path for the partials for this mockup
|
12
14
|
# @attr :mockupfile [Mockupfile] The Mockupfile for this project
|
13
|
-
|
15
|
+
# @attr :mockupfile_path [Pathname] The path to the Mockupfile
|
16
|
+
attr_accessor :path, :html_path, :partial_path, :layouts_path, :mockupfile, :mockupfile_path
|
14
17
|
|
15
18
|
attr_accessor :shell
|
16
19
|
|
@@ -22,7 +25,8 @@ module Roger
|
|
22
25
|
@options = {
|
23
26
|
:html_path => @path + "html",
|
24
27
|
:partial_path => @path + "partials",
|
25
|
-
:layouts_path => @path + "layouts"
|
28
|
+
:layouts_path => @path + "layouts",
|
29
|
+
:mockupfile_path => @path + "Mockupfile"
|
26
30
|
}
|
27
31
|
|
28
32
|
# Clumsy string to symbol key conversion
|
@@ -31,9 +35,16 @@ module Roger
|
|
31
35
|
self.html_path = @options[:html_path]
|
32
36
|
self.partial_path = @options[:partials_path] || @options[:partial_path] || self.html_path + "../partials/"
|
33
37
|
self.layouts_path = @options[:layouts_path]
|
38
|
+
self.mockupfile_path = @options[:mockupfile_path]
|
34
39
|
self.shell = @options[:shell]
|
35
40
|
|
36
|
-
|
41
|
+
if self.mockupfile_path
|
42
|
+
@mockupfile = Mockupfile.new(self, self.mockupfile_path)
|
43
|
+
@mockupfile.load
|
44
|
+
else
|
45
|
+
@mockupfile = Mockupfile.new(self)
|
46
|
+
end
|
47
|
+
|
37
48
|
end
|
38
49
|
|
39
50
|
def shell
|
@@ -49,6 +60,11 @@ module Roger
|
|
49
60
|
options = @options[:release] || {}
|
50
61
|
@release ||= Release.new(self, options)
|
51
62
|
end
|
63
|
+
|
64
|
+
def test
|
65
|
+
options = @options[:test] || {}
|
66
|
+
@test ||= Test.new(self, options)
|
67
|
+
end
|
52
68
|
|
53
69
|
def html_path=(p)
|
54
70
|
@html_path = self.realpath_or_path(p)
|
@@ -66,11 +82,6 @@ module Roger
|
|
66
82
|
|
67
83
|
protected
|
68
84
|
|
69
|
-
def load_mockup!
|
70
|
-
@mockupfile = Mockupfile.new(self)
|
71
|
-
@mockupfile.load
|
72
|
-
end
|
73
|
-
|
74
85
|
def single_or_multiple_paths(p)
|
75
86
|
if p.kind_of?(Array)
|
76
87
|
p.map{|tp| self.realpath_or_path(tp) }
|
data/lib/roger/release.rb
CHANGED
@@ -1,14 +1,18 @@
|
|
1
1
|
require File.dirname(__FILE__) + "/cli"
|
2
|
+
require File.dirname(__FILE__) + "/helpers/get_callable"
|
3
|
+
require File.dirname(__FILE__) + "/helpers/logging"
|
2
4
|
|
3
5
|
module Roger
|
4
6
|
class Release
|
7
|
+
include Roger::Helpers::Logging
|
5
8
|
|
6
9
|
attr_reader :config, :project
|
7
10
|
|
8
11
|
attr_reader :finalizers, :injections, :stack, :cleanups
|
9
12
|
|
10
13
|
class << self
|
11
|
-
|
14
|
+
include Roger::Helpers::GetCallable
|
15
|
+
|
12
16
|
def default_stack
|
13
17
|
[]
|
14
18
|
end
|
@@ -17,28 +21,6 @@ module Roger
|
|
17
21
|
[[self.get_callable(:dir, Roger::Release::Finalizers.map), {}]]
|
18
22
|
end
|
19
23
|
|
20
|
-
# Makes callable into a object that responds to call.
|
21
|
-
#
|
22
|
-
# @param [#call, Symbol, Class] callable If callable already responds to #call will just return callable, a Symbol will be searched for in the scope parameter, a class will be instantiated (and checked if it will respond to #call)
|
23
|
-
# @param [Hash] map, Mapping to match symbol to a callable
|
24
|
-
def get_callable(callable, map)
|
25
|
-
return callable if callable.respond_to?(:call)
|
26
|
-
|
27
|
-
if callable.kind_of?(Symbol) && map.has_key?(callable)
|
28
|
-
callable = map[callable]
|
29
|
-
end
|
30
|
-
|
31
|
-
if callable.kind_of?(Class)
|
32
|
-
callable = callable.new
|
33
|
-
end
|
34
|
-
|
35
|
-
if callable.respond_to?(:call)
|
36
|
-
callable
|
37
|
-
else
|
38
|
-
raise ArgumentError, "Could not resolve #{callable.inspect}. Callable must be an object that responds to #call or a symbol that resolve to such an object or a class with a #call instance method."
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
24
|
end
|
43
25
|
|
44
26
|
# @option config [Symbol] :scm The SCM to use (default = :git)
|
@@ -204,34 +186,10 @@ module Roger
|
|
204
186
|
|
205
187
|
# Cleanup
|
206
188
|
cleanup! if self.config[:cleanup_build]
|
207
|
-
|
208
|
-
end
|
209
|
-
|
210
|
-
|
211
|
-
def log(part, msg, verbose = false, &block)
|
212
|
-
if !verbose || verbose && self.project.options[:verbose]
|
213
|
-
self.project.shell.say "\033[37m#{part.class.to_s}\033[0m" + " : " + msg.to_s, nil, true
|
214
|
-
end
|
215
|
-
if block_given?
|
216
|
-
begin
|
217
|
-
self.project.shell.padding = self.project.shell.padding + 1
|
218
|
-
yield
|
219
|
-
ensure
|
220
|
-
self.project.shell.padding = self.project.shell.padding - 1
|
221
|
-
end
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
def debug(part, msg, &block)
|
226
|
-
self.log(part, msg, true, &block)
|
227
|
-
end
|
228
|
-
|
229
|
-
# Write out a warning message
|
230
|
-
def warn(part, msg)
|
231
|
-
self.project.shell.say "\033[37m#{part.class.to_s}\033[0m" + " : " + "\033[31m#{msg.to_s}\033[0m", nil, true
|
232
|
-
end
|
233
|
-
|
234
|
-
|
189
|
+
|
190
|
+
end
|
191
|
+
|
192
|
+
|
235
193
|
# @param [Array] globs an array of file path globs that will be globbed against the build_path
|
236
194
|
# @param [Array] excludes an array of regexps that will be excluded from the result
|
237
195
|
def get_files(globs, excludes = [])
|
@@ -43,9 +43,7 @@ module Roger::Release::Finalizers
|
|
43
43
|
|
44
44
|
local_path += "/" unless local_path =~ /\/\Z/
|
45
45
|
remote_path += "/" unless remote_path =~ /\/\Z/
|
46
|
-
|
47
|
-
self.add_htaccess(release, options) if options[:htaccess]
|
48
|
-
|
46
|
+
|
49
47
|
release.log(self, "Starting upload of #{(release.build_path + "*")} to #{options[:host]}")
|
50
48
|
|
51
49
|
command = "#{options[:rsync]} -az #{Shellwords.escape(local_path)} #{Shellwords.escape(options[:username])}@#{Shellwords.escape(options[:host])}:#{Shellwords.escape(remote_path)}"
|
@@ -61,24 +59,6 @@ module Roger::Release::Finalizers
|
|
61
59
|
end
|
62
60
|
|
63
61
|
protected
|
64
|
-
|
65
|
-
def add_htaccess(release, options)
|
66
|
-
remote_htaccess_path = File.join(options[:remote_path], ".htaccess")
|
67
|
-
remote_htpasswd_path = File.join(options[:remote_path], ".htpasswd")
|
68
|
-
local_path = release.build_path
|
69
|
-
|
70
|
-
shell = release.project.shell
|
71
|
-
|
72
|
-
# Get the remote file
|
73
|
-
command = "#{options[:rsync]} #{Shellwords.escape(options[:username])}@#{Shellwords.escape(options[:host])}:#{Shellwords.escape(remote_htaccess_path)} :#{Shellwords.escape(remote_htpasswd_path)} #{Shellwords.escape(local_path)}"
|
74
|
-
|
75
|
-
if File.exist?(local_path + ".htaccess") && File.exist?(local_path + ".htpasswd")
|
76
|
-
release.log(self, ".htaccess and .htpasswd already exist")
|
77
|
-
else
|
78
|
-
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
82
62
|
|
83
63
|
def validate_options!(release, options)
|
84
64
|
must_have_keys = [:remote_path, :host, :username]
|
@@ -96,38 +76,4 @@ module Roger::Release::Finalizers
|
|
96
76
|
end
|
97
77
|
end
|
98
78
|
|
99
|
-
Roger::Release::Finalizers.register(:rsync, Roger::Release::Finalizers::Rsync)
|
100
|
-
|
101
|
-
|
102
|
-
# 1. Check option :htaccess => true
|
103
|
-
# 2. Check if remote file exists (.htaccess)
|
104
|
-
|
105
|
-
# 3. If it doesn't
|
106
|
-
# 4. Ask what the authname should be.
|
107
|
-
# 4. Ask if you want IP restriction
|
108
|
-
# 5. Ask if you want to add your own IP
|
109
|
-
# 6. Ask for other IPs
|
110
|
-
# 7. Ask if you want PW restriction
|
111
|
-
# 8. Ask for username
|
112
|
-
# 9. Ask for password (or Enter to generate)
|
113
|
-
# 10. Upload .htaccess
|
114
|
-
# 11. Upload .htpasswd
|
115
|
-
|
116
|
-
# 3. If it does
|
117
|
-
# 4. Output available users & ip's with access?
|
118
|
-
|
119
|
-
|
120
|
-
# AuthName "DNB Referentiesite"
|
121
|
-
# AuthType Basic
|
122
|
-
# AuthUserFile /home/users/entopic/vhome/entopic.com/dnb-referentie/.htpasswd
|
123
|
-
# Require valid-user
|
124
|
-
# Order deny,allow
|
125
|
-
# Deny from all
|
126
|
-
# Allow from 31.223.173.138 # Kantoor DP
|
127
|
-
# Satisfy Any
|
128
|
-
|
129
|
-
# <FilesMatch "\.(htaccess|htpasswd)$">
|
130
|
-
# Order Allow,Deny
|
131
|
-
# Deny from all
|
132
|
-
# </FilesMatch>
|
133
|
-
|
79
|
+
Roger::Release::Finalizers.register(:rsync, Roger::Release::Finalizers::Rsync)
|