docman 0.0.4 → 0.0.5
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 +4 -4
- data/config/config.yaml +2 -2
- data/features/local.feature +15 -2
- data/features/support/step_definitions/dm_steps.rb +18 -2
- data/lib/application.rb +3 -2
- data/lib/docman/cli.rb +18 -6
- data/lib/docman/deployers/{local_deployer.rb → common_deployer.rb} +4 -1
- data/lib/docman/deployers/deployer.rb +20 -5
- data/lib/docman/deployers/git_deployer.rb +3 -0
- data/lib/docman/docroot_config.rb +5 -3
- data/lib/docman/docroot_controller.rb +7 -9
- data/lib/docman/info.rb +1 -1
- data/lib/docman/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f0ba6187a0fad64e125554d5d75a17c3e6fda06
|
4
|
+
data.tar.gz: 56c484c7c676ccbb7d7ba394f59e1a32e4d48c2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 771396971be50da7bf5df9063620b69a40e2728c4de3ff80f6f323f36318108f687b688c466ced4197a615f8341919a90f8e4736d404b6dcb2a340aa5090e4d6
|
7
|
+
data.tar.gz: 3179ec03c8f81b8aa86cc4ddea9a2bbee82baa09a5b4b99103fb1fbd84b27b56f9a7170d70c61a927ecb482712f07b012d6c4bef83111cb5b8f8b5711a6c4454
|
data/config/config.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
deploy_targets:
|
3
3
|
local:
|
4
|
-
handler:
|
4
|
+
handler: :common_deployer
|
5
5
|
builders:
|
6
6
|
root:
|
7
7
|
handler: :common
|
@@ -16,7 +16,7 @@ deploy_targets:
|
|
16
16
|
handler: :common
|
17
17
|
type: dir
|
18
18
|
acquia:
|
19
|
-
handler:
|
19
|
+
handler: :git_deployer
|
20
20
|
deploy_action: git_push
|
21
21
|
builders:
|
22
22
|
root:
|
data/features/local.feature
CHANGED
@@ -6,8 +6,18 @@ Feature: Docroot management
|
|
6
6
|
|
7
7
|
@announce
|
8
8
|
@no-clobber
|
9
|
-
Scenario: Local init
|
10
|
-
Given I run `docman init sample-docroot https://github.com/aroq/dm-test-docroot-config.git`
|
9
|
+
Scenario: Local force init
|
10
|
+
Given I run `docman init sample-docroot https://github.com/aroq/dm-test-docroot-config.git -f`
|
11
|
+
Then the exit status should be 0
|
12
|
+
Then the following directories should exist:
|
13
|
+
| sample-docroot |
|
14
|
+
| sample-docroot/config |
|
15
|
+
|
16
|
+
@announce
|
17
|
+
@no-clobber
|
18
|
+
Scenario: Local interactive init
|
19
|
+
Given I run `docman init sample-docroot https://github.com/aroq/dm-test-docroot-config.git` interactively
|
20
|
+
And I type "yes"
|
11
21
|
Then the exit status should be 0
|
12
22
|
Then the following directories should exist:
|
13
23
|
| sample-docroot |
|
@@ -36,6 +46,9 @@ Feature: Docroot management
|
|
36
46
|
And I run `git checkout develop`
|
37
47
|
And I run `git pull origin develop`
|
38
48
|
Then the exit status should be 0
|
49
|
+
And I store in "name" value "test"
|
50
|
+
And I check stored value of "name" should contain "test"
|
51
|
+
And I create file with random name in "filename" content in "random_name"
|
39
52
|
Given a file named "develop.txt" with:
|
40
53
|
"""
|
41
54
|
test content
|
@@ -5,17 +5,33 @@
|
|
5
5
|
# end
|
6
6
|
# end
|
7
7
|
#
|
8
|
+
|
9
|
+
Then(/^I store in "(.*?)" value "(.*?)"$/) do |name, value|
|
10
|
+
@name = value
|
11
|
+
end
|
12
|
+
|
13
|
+
Then(/^I check stored value of "(.*?)" should contain "(.*?)"$/) do |name, value|
|
14
|
+
expect(@name).to eq(value)
|
15
|
+
end
|
16
|
+
|
17
|
+
Then(/^I create file with random name and content and store its name in "(.*?)"$/) do |name|
|
18
|
+
# random_file_name = ('a'..'z').to_a.shuffle[0,8].join
|
19
|
+
# self.instance_variable_set(:@name, random_file_name)
|
20
|
+
# self.instance_variable_set(:@name, random_file_name)
|
21
|
+
# @random_file_content = ('a'..'z').to_a.shuffle[0,8].join
|
22
|
+
end
|
23
|
+
|
8
24
|
When(/^I store bump version from file "(.*?)"$/) do |file|
|
9
25
|
ENV['DM_BUMPED_VERSION'] = IO.read(file)
|
10
26
|
end
|
11
27
|
|
12
28
|
When(/^I change repo state to last bumped tag for "(.*?)" version$/) do |state|
|
13
|
-
version = ENV[
|
29
|
+
version = ENV['DM_BUMPED_VERSION']
|
14
30
|
run "state.sh tag #{version} #{state}"
|
15
31
|
end
|
16
32
|
|
17
33
|
Then(/^the file "(.*?)" should contain last bumped tag$/) do |file|
|
18
|
-
version = ENV[
|
34
|
+
version = ENV['DM_BUMPED_VERSION']
|
19
35
|
puts "Last bumped tag: #{version}"
|
20
36
|
prep_for_fs_check { expect(IO.read(file)).to eq version }
|
21
37
|
end
|
data/lib/application.rb
CHANGED
@@ -28,10 +28,11 @@ module Docman
|
|
28
28
|
|
29
29
|
def build(deploy_target, state, options = false)
|
30
30
|
@options = options
|
31
|
-
DocrootController.new(@workspace_dir, deploy_target
|
31
|
+
DocrootController.new(@workspace_dir, deploy_target).build(state)
|
32
32
|
end
|
33
33
|
|
34
|
-
def deploy(deploy_target, name, type, version)
|
34
|
+
def deploy(deploy_target, name, type, version, options = false)
|
35
|
+
@options = options
|
35
36
|
DocrootController.new(@workspace_dir, deploy_target).deploy(name, type, version)
|
36
37
|
end
|
37
38
|
|
data/lib/docman/cli.rb
CHANGED
@@ -7,36 +7,48 @@ module Docman
|
|
7
7
|
# TODO: add proper descriptions.
|
8
8
|
|
9
9
|
desc 'init NAME', 'init to NAME'
|
10
|
+
method_option :force, :aliases => '-f', :desc => 'Force init'
|
10
11
|
def init(name, repo)
|
11
12
|
if File.directory? "#{name}"
|
12
|
-
say("
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
say("Directory #{name} already exists")
|
14
|
+
if options[:force]
|
15
|
+
FileUtils.rm_r(name)
|
16
|
+
elsif
|
17
|
+
choice = ask('Are you sure you want do delete existing docroot? Type "yes" if you agree.')
|
18
|
+
if choice == 'yes'
|
19
|
+
FileUtils.rm_r(name)
|
20
|
+
elsif
|
21
|
+
Kernel::abort 'Exit'
|
22
|
+
end
|
23
|
+
end
|
16
24
|
end
|
17
25
|
|
18
26
|
puts "Init docroot directory #{name} and retrieve config from provided repo."
|
19
27
|
Application.instance.init(name, repo)
|
28
|
+
say('Complete!', :green)
|
20
29
|
end
|
21
30
|
|
22
31
|
desc 'build NAME', 'init to NAME'
|
23
32
|
method_option :force, :aliases => '-f', :desc => 'Force full rebuild'
|
24
33
|
def build(deploy_target, state)
|
25
34
|
config_dir?
|
26
|
-
|
27
35
|
Application.instance.build(deploy_target, state, options)
|
36
|
+
say('Complete!', :green)
|
28
37
|
end
|
29
38
|
|
30
39
|
desc 'deploy NAME', 'init to NAME'
|
40
|
+
method_option :force, :aliases => '-f', :desc => 'Force full deploy'
|
31
41
|
def deploy(deploy_target, name, type, version)
|
32
42
|
config_dir?
|
33
|
-
Application.instance.deploy(deploy_target, name, type, version)
|
43
|
+
Application.instance.deploy(deploy_target, name, type, version, options)
|
44
|
+
say('Complete!', :green)
|
34
45
|
end
|
35
46
|
|
36
47
|
desc 'state NAME', 'init to NAME'
|
37
48
|
def state(name, type, version)
|
38
49
|
config_dir?
|
39
50
|
Application.instance.state(name, type, version)
|
51
|
+
say('Complete!', :green)
|
40
52
|
end
|
41
53
|
|
42
54
|
no_commands {
|
@@ -4,11 +4,19 @@ module Docman
|
|
4
4
|
|
5
5
|
attr_reader :deploy_target
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
@@subclasses = {}
|
8
|
+
|
9
|
+
def self.create(type, deploy_target)
|
10
|
+
c = @@subclasses[type]
|
11
|
+
if c
|
12
|
+
c.new(deploy_target)
|
13
|
+
else
|
14
|
+
raise "Bad deployer type: #{type}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.register_deployer(name)
|
19
|
+
@@subclasses[name] = self
|
12
20
|
end
|
13
21
|
|
14
22
|
def initialize(deploy_target)
|
@@ -16,6 +24,13 @@ module Docman
|
|
16
24
|
@deploy_target = deploy_target
|
17
25
|
end
|
18
26
|
|
27
|
+
def build(root, info)
|
28
|
+
return if @deployed.include? info['name']
|
29
|
+
build_type = build_type(info['type'])
|
30
|
+
Docman::Builders::Builder.create(build_type['handler'], root, build_type, info).do()
|
31
|
+
@deployed << info['name']
|
32
|
+
end
|
33
|
+
|
19
34
|
def build_type(type)
|
20
35
|
@deploy_target['builders'][type]
|
21
36
|
end
|
@@ -23,6 +23,7 @@ module Docman
|
|
23
23
|
def structure_build(path, prefix = '', parent = nil)
|
24
24
|
return unless File.file? File.join(path, 'info.yaml')
|
25
25
|
|
26
|
+
children = []
|
26
27
|
info = YAML::load_file(File.join(path, 'info.yaml'))
|
27
28
|
name = File.basename path
|
28
29
|
prefix = prefix.size > 0 ? File.join(prefix, name) : name
|
@@ -33,13 +34,14 @@ module Docman
|
|
33
34
|
info['temp_path'] = File.join(@docroot_dir, 'tmp', info['build_path'])
|
34
35
|
info['name'] = name
|
35
36
|
info['parent'] = parent
|
37
|
+
info['children'] = children
|
36
38
|
|
37
39
|
i = Docman::Info.new(info)
|
38
40
|
|
39
41
|
@names[name.to_s] = i
|
40
42
|
|
41
|
-
data =
|
42
|
-
data[:children] = children
|
43
|
+
data = [i]
|
44
|
+
# data[:children] = children
|
43
45
|
Dir.foreach(path) do |entry|
|
44
46
|
next if (entry == '..' || entry == '.')
|
45
47
|
full_path = File.join(path, entry)
|
@@ -50,7 +52,7 @@ module Docman
|
|
50
52
|
end
|
51
53
|
end
|
52
54
|
end
|
53
|
-
|
55
|
+
i
|
54
56
|
end
|
55
57
|
|
56
58
|
|
@@ -3,23 +3,21 @@ require 'docman/builders/common_builder'
|
|
3
3
|
require 'docman/builders/git_builder'
|
4
4
|
require 'docman/deployers/deployer'
|
5
5
|
require 'docman/deployers/git_deployer'
|
6
|
-
require 'docman/deployers/
|
6
|
+
require 'docman/deployers/common_deployer'
|
7
7
|
|
8
|
-
# TODO: refactor info into class.
|
9
8
|
# TODO: make universal logging class.
|
10
9
|
|
11
10
|
module Docman
|
12
11
|
class DocrootController
|
13
12
|
|
14
|
-
attr_reader :docroot_dir
|
13
|
+
attr_reader :docroot_dir
|
15
14
|
|
16
15
|
def initialize(docroot_dir, deploy_target_name, options = {})
|
17
16
|
@deploy_target = Docman::Application.instance.config['deploy_targets'][deploy_target_name]
|
18
17
|
Docman::Application.instance.deploy_target = @deploy_target
|
19
18
|
docroot_config = DocrootConfig.new(docroot_dir, @deploy_target)
|
20
|
-
@deployer =
|
19
|
+
@deployer = Docman::Deployers::Deployer.create(@deploy_target['handler'], @deploy_target)
|
21
20
|
@docroot_dir = docroot_dir
|
22
|
-
@temp_dir = File.join(docroot_dir, 'tmp')
|
23
21
|
@docroot_config = docroot_config
|
24
22
|
end
|
25
23
|
|
@@ -36,11 +34,11 @@ module Docman
|
|
36
34
|
@deployer.push(@docroot_config.root_dir, state)
|
37
35
|
end
|
38
36
|
|
39
|
-
def build_recursive(state,
|
40
|
-
|
41
|
-
build_dir(state,
|
37
|
+
def build_recursive(state, info = nil)
|
38
|
+
info = info ? info : @docroot_config.structure
|
39
|
+
build_dir(state, info)
|
42
40
|
|
43
|
-
|
41
|
+
info['children'].each do |child|
|
44
42
|
build_recursive(state, child)
|
45
43
|
end
|
46
44
|
end
|
data/lib/docman/info.rb
CHANGED
@@ -26,7 +26,7 @@ module Docman
|
|
26
26
|
to_save['type'] = self['type']
|
27
27
|
to_save['build_type'] = self['build_type']
|
28
28
|
|
29
|
-
File.open(
|
29
|
+
File.open(File.join(self['full_build_path'], 'info.yaml'), 'w') {|f| f.write to_save.to_yaml}
|
30
30
|
end
|
31
31
|
|
32
32
|
def need_rebuild?
|
data/lib/docman/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Tolstikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -111,9 +111,9 @@ files:
|
|
111
111
|
- lib/docman/builders/common_builder.rb
|
112
112
|
- lib/docman/builders/git_builder.rb
|
113
113
|
- lib/docman/cli.rb
|
114
|
+
- lib/docman/deployers/common_deployer.rb
|
114
115
|
- lib/docman/deployers/deployer.rb
|
115
116
|
- lib/docman/deployers/git_deployer.rb
|
116
|
-
- lib/docman/deployers/local_deployer.rb
|
117
117
|
- lib/docman/docroot_config.rb
|
118
118
|
- lib/docman/docroot_controller.rb
|
119
119
|
- lib/docman/exec.rb
|