dirt 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +22 -0
- data/Gemfile.lock +91 -0
- data/MIT-LICENSE +23 -0
- data/README.md +150 -0
- data/core/contexts/commit_git_repository.rb +56 -0
- data/core/contexts/create_basic_face.rb +60 -0
- data/core/contexts/create_default_structure.rb +57 -0
- data/core/contexts/create_git_repository.rb +45 -0
- data/core/contexts/roles/.gitkeep +0 -0
- data/core/contexts/roles/generating.rb +26 -0
- data/core/dirt.rb +14 -0
- data/core/models/.gitkeep +0 -0
- data/core/tests/behaviours/commit_files.feature +36 -0
- data/core/tests/behaviours/create_basic_face.feature +49 -0
- data/core/tests/behaviours/create_default_structure.feature +55 -0
- data/core/tests/behaviours/create_vcs_repository.feature +26 -0
- data/core/tests/behaviours/step_definitions/given.rb +18 -0
- data/core/tests/behaviours/step_definitions/then.rb +55 -0
- data/core/tests/behaviours/step_definitions/when.rb +21 -0
- data/core/tests/behaviours/support/env.rb +100 -0
- data/core/tests/behaviours/support/helpers.rb +21 -0
- data/core/tests/factories.rb +23 -0
- data/core/version.rb +3 -0
- data/faces/cli/bin/dirt +6 -0
- data/faces/cli/integrations/generate_context.feature +40 -0
- data/faces/cli/integrations/generate_face.feature +53 -0
- data/faces/cli/integrations/generate_model.feature +11 -0
- data/faces/cli/integrations/generate_project.feature +143 -0
- data/faces/cli/integrations/generate_role.feature +12 -0
- data/faces/cli/integrations/step_definitions/given.rb +16 -0
- data/faces/cli/integrations/step_definitions/then.rb +48 -0
- data/faces/cli/integrations/step_definitions/when.rb +28 -0
- data/faces/cli/integrations/support/env.rb +21 -0
- data/faces/cli/optparse/main.rb +143 -0
- data/faces/cli/thor/.gitkeep +0 -0
- data/templates/faces/web/template.helpers.rb +4 -0
- data/templates/template.Gemfile +18 -0
- data/templates/template.env.rb +13 -0
- data/templates/template.gitignore +21 -0
- data/templates/template.project_name.rb +14 -0
- metadata +104 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
#--
|
2
|
+
# Copyright (c) 2014 Tenjin Inc.
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# "Software"), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
18
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
19
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
20
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
21
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#++
|
23
|
+
|
24
|
+
module Samling
|
25
|
+
class CreateGitRepository < Dirt::Context
|
26
|
+
def initialize(project_path, bare_parent_path, host, user)
|
27
|
+
@project_path = Pathname.new(project_path)
|
28
|
+
@bare_path = Pathname.new(bare_parent_path) + (@project_path.basename.to_s + '.git')
|
29
|
+
@host = host
|
30
|
+
@user = user
|
31
|
+
end
|
32
|
+
|
33
|
+
def call
|
34
|
+
if @host.blank?
|
35
|
+
system(%Q{git init --bare #{@bare_path}})
|
36
|
+
system(%Q{git clone "#{@bare_path}" "#{@project_path}"})
|
37
|
+
else
|
38
|
+
system(%Q{ssh #{@user}@#{@host} "git init --bare #{@bare_path}"})
|
39
|
+
system(%Q{git clone #{@user}@#{@host}:#{@bare_path} "#{@project_path}"})
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
|
File without changes
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Samling
|
2
|
+
class Generating < Dirt::Role
|
3
|
+
def generate_templates(generated_project_root)
|
4
|
+
templates_dir = Dirt::PROJECT_ROOT + 'templates/'
|
5
|
+
project_name = generated_project_root.basename.to_s
|
6
|
+
|
7
|
+
@decorated.each do |f, t|
|
8
|
+
file = generated_project_root + f.gsub('project_name', project_name)
|
9
|
+
|
10
|
+
FileUtils.mkdir_p(file.dirname)
|
11
|
+
|
12
|
+
if t
|
13
|
+
template_file = templates_dir + t
|
14
|
+
|
15
|
+
file.open('w') do |file|
|
16
|
+
content = File.read(template_file.to_s).gsub('<project_name>', project_name)
|
17
|
+
|
18
|
+
file.write(content)
|
19
|
+
end
|
20
|
+
else
|
21
|
+
FileUtils.touch(file.to_s)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/core/dirt.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'dirt/core'
|
3
|
+
require 'active_support'
|
4
|
+
|
5
|
+
app_dir = Pathname.new(__FILE__).dirname
|
6
|
+
|
7
|
+
# require ALL the files!
|
8
|
+
Dir["#{app_dir}/**/*.rb"].reject { |f| f.include?('/faces/') || f.include?('/tests/') }.each do |file|
|
9
|
+
require file
|
10
|
+
end
|
11
|
+
|
12
|
+
module Dirt
|
13
|
+
PROJECT_ROOT = Pathname.new(File.dirname(__FILE__) + '/..').realpath
|
14
|
+
end
|
File without changes
|
@@ -0,0 +1,36 @@
|
|
1
|
+
Feature: it should commit all files and directories to VCS
|
2
|
+
|
3
|
+
Scenario Outline: committing the default structure
|
4
|
+
Given the default structure exists in "<project_directory>"
|
5
|
+
And the following files exist:
|
6
|
+
| path |
|
7
|
+
| <project_directory>/.git/some_git_file |
|
8
|
+
| <project_directory>/.git/.hidden_git_file |
|
9
|
+
When it commits all files and directories in "<project_directory>"
|
10
|
+
Then there should be .gitkeep files in exactly the following directories of "<project_directory>"
|
11
|
+
| path |
|
12
|
+
| core/contexts/roles |
|
13
|
+
| core/models |
|
14
|
+
| core/tests/isolations |
|
15
|
+
| faces |
|
16
|
+
| persist |
|
17
|
+
And it should run git add on exactly the following files in "<project_directory>":
|
18
|
+
| path |
|
19
|
+
| Gemfile |
|
20
|
+
| .gitignore |
|
21
|
+
| core/<project_name>.rb |
|
22
|
+
| core/contexts/roles/.gitkeep |
|
23
|
+
| core/models/.gitkeep |
|
24
|
+
| core/tests/behaviours/support/env.rb |
|
25
|
+
| core/tests/behaviours/step_definitions/given.rb |
|
26
|
+
| core/tests/behaviours/step_definitions/when.rb |
|
27
|
+
| core/tests/behaviours/step_definitions/then.rb |
|
28
|
+
| core/tests/isolations/.gitkeep |
|
29
|
+
| faces/.gitkeep |
|
30
|
+
| persist/.gitkeep |
|
31
|
+
And it should run "git --git-dir "<project_directory>/.git" --work-tree "<project_directory>" commit -am "Project init with Dirt.""
|
32
|
+
And it should run "git --git-dir "<project_directory>/.git" --work-tree "<project_directory>" push origin master"
|
33
|
+
Examples:
|
34
|
+
| project_directory | project_name |
|
35
|
+
| /a_path/to/the project/my_project | my_project |
|
36
|
+
| /some/other/path/my_other_project | my_other_project |
|
@@ -0,0 +1,49 @@
|
|
1
|
+
Feature: create default face
|
2
|
+
|
3
|
+
Scenario Outline: the project root directory does not exist
|
4
|
+
When I create a new basic face "<face_name>" at "<project_root>"
|
5
|
+
Then there should be exactly the following directories in "<project_root>/faces/<face_name>":
|
6
|
+
| path |
|
7
|
+
| integrations |
|
8
|
+
| integrations/support |
|
9
|
+
| integrations/step_definitions |
|
10
|
+
Examples:
|
11
|
+
| project_root | face_name |
|
12
|
+
| | my_face |
|
13
|
+
| /a_path/to/the project | my_face |
|
14
|
+
| | my_other_face |
|
15
|
+
| /some/other/path | my_other_face |
|
16
|
+
|
17
|
+
Scenario Outline: parent directories exist
|
18
|
+
Given the following directories exist:
|
19
|
+
| path |
|
20
|
+
| <project_path>/faces/<face_name>/integrations/support/ |
|
21
|
+
| <project_path>/faces/<face_name>/integrations/step_definitions/ |
|
22
|
+
When I create a new basic face "<face_name>" at "<project_path>"
|
23
|
+
Then there should be files for "<project_name>" from templates:
|
24
|
+
| path | template |
|
25
|
+
| /<project_path>/faces/<face_name>/integrations/support/env.rb | template.env.rb |
|
26
|
+
| /<project_path>/faces/<face_name>/integrations/step_definitions/given.rb | |
|
27
|
+
| /<project_path>/faces/<face_name>/integrations/step_definitions/when.rb | |
|
28
|
+
| /<project_path>/faces/<face_name>/integrations/step_definitions/then.rb | |
|
29
|
+
Examples:
|
30
|
+
| project_name | project_path | face_name |
|
31
|
+
| my_project | my_project | web |
|
32
|
+
| another_project | somewhere/another_project | web |
|
33
|
+
| my_project | my_project | cli |
|
34
|
+
| another_project | somewhere/another_project | cli |
|
35
|
+
|
36
|
+
Scenario Outline: parent directories do not exist
|
37
|
+
When I create a new basic face "<face_name>" at "<project_path>"
|
38
|
+
Then there should be files for "<project_name>" from templates:
|
39
|
+
| path | template |
|
40
|
+
| <project_path>/faces/<face_name>/integrations/support/env.rb | template.env.rb |
|
41
|
+
| <project_path>/faces/<face_name>/integrations/step_definitions/given.rb | |
|
42
|
+
| <project_path>/faces/<face_name>/integrations/step_definitions/when.rb | |
|
43
|
+
| <project_path>/faces/<face_name>/integrations/step_definitions/then.rb | |
|
44
|
+
Examples:
|
45
|
+
| project_name | project_path | face_name |
|
46
|
+
| my_project | my_project | web |
|
47
|
+
| another_project | somewhere/another_project | web |
|
48
|
+
| my_project | my_project | cli |
|
49
|
+
| another_project | somewhere/another_project | cli |
|
@@ -0,0 +1,55 @@
|
|
1
|
+
Feature: it should create the expected directory tree
|
2
|
+
|
3
|
+
Scenario Outline: the project root directory does not exist
|
4
|
+
When I create a new project in "<full_project_path>"
|
5
|
+
Then there should be exactly the following directories in "/<full_project_path>":
|
6
|
+
| path |
|
7
|
+
| core |
|
8
|
+
| core/contexts |
|
9
|
+
| core/contexts/roles |
|
10
|
+
| core/models |
|
11
|
+
| core/tests |
|
12
|
+
| core/tests/behaviours |
|
13
|
+
| core/tests/behaviours/support |
|
14
|
+
| core/tests/behaviours/step_definitions |
|
15
|
+
| core/tests/isolations |
|
16
|
+
| faces |
|
17
|
+
| persist |
|
18
|
+
Examples:
|
19
|
+
| full_project_path |
|
20
|
+
| my_project |
|
21
|
+
| a_path/to/the project/my_project |
|
22
|
+
| my_other_project |
|
23
|
+
| some/other/path/my_other_project |
|
24
|
+
|
25
|
+
Scenario Outline: parent directories exist
|
26
|
+
Given the following directories exist:
|
27
|
+
| path |
|
28
|
+
| <project_path>/core/tests/behaviours/support/ |
|
29
|
+
When I create a new project in "<project_path>"
|
30
|
+
Then there should be files for "<project_name>" from templates:
|
31
|
+
| path | template |
|
32
|
+
| <project_path>/core/<project_name>.rb | template.project_name.rb |
|
33
|
+
| <project_path>/Gemfile | template.Gemfile |
|
34
|
+
| <project_path>/.gitignore | template.gitignore |
|
35
|
+
| <project_path>/core/tests/behaviours/support/env.rb | template.env.rb |
|
36
|
+
| <project_path>/core/tests/behaviours/step_definitions/given.rb | |
|
37
|
+
| <project_path>/core/tests/behaviours/step_definitions/when.rb | |
|
38
|
+
| <project_path>/core/tests/behaviours/step_definitions/then.rb | |
|
39
|
+
Examples:
|
40
|
+
| project_path | project_name |
|
41
|
+
| my_project | my_project |
|
42
|
+
| somewhere/another_project | another_project |
|
43
|
+
|
44
|
+
Scenario Outline: parent directories do not exist
|
45
|
+
When I create a new project in "<project_path>"
|
46
|
+
Then there should be files for "<project_name>" from templates:
|
47
|
+
| path | template |
|
48
|
+
| <project_path>/core/<project_name>.rb | template.project_name.rb |
|
49
|
+
| <project_path>/Gemfile | template.Gemfile |
|
50
|
+
| <project_path>/.gitignore | template.gitignore |
|
51
|
+
| <project_path>/core/tests/behaviours/support/env.rb | template.env.rb |
|
52
|
+
Examples:
|
53
|
+
| project_name | project_path |
|
54
|
+
| my_project | my_project |
|
55
|
+
| another_project | somewhere/another_project |
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Feature: create VCS repository
|
2
|
+
|
3
|
+
# It may be that one day we want to separate bare creation to a switchable step,
|
4
|
+
# but we don't need it yet - remiller
|
5
|
+
|
6
|
+
Scenario Outline: local host
|
7
|
+
When it creates a VCS bare under bare_path: "<given_bare_path>", and project_path: "<working_project_path>"
|
8
|
+
Then it should run exactly:
|
9
|
+
| command |
|
10
|
+
| git init --bare <created_bare_path> |
|
11
|
+
| git clone <created_bare_path> <working_project_path> |
|
12
|
+
Examples:
|
13
|
+
| working_project_path | given_bare_path | created_bare_path |
|
14
|
+
| the/project/path | some | some/path.git |
|
15
|
+
| another/project | different/bares | different/bares/project.git |
|
16
|
+
|
17
|
+
Scenario Outline: remote host
|
18
|
+
When it creates a bare VCS under host: "<host>", user: "<user>", bare_path: "<given_bares_path>", and project_path: "<working_project_path>"
|
19
|
+
Then it should run exactly:
|
20
|
+
| command |
|
21
|
+
| ssh <user>@<host> "git init --bare <created_bare_path>" |
|
22
|
+
| git clone <user>@<host>:<created_bare_path> <working_project_path> |
|
23
|
+
Examples:
|
24
|
+
| host | user | working_project_path | given_bares_path | created_bare_path |
|
25
|
+
| machine1 | userA | the/project/my_project | some/git/ | some/git/my_project.git |
|
26
|
+
| machine2 | userB | another/my_other_project | different/bares | different/bares/my_other_project.git |
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Given(/^a step that is unimplemented$/) do
|
2
|
+
pending 'Finish defining this test!'
|
3
|
+
end
|
4
|
+
|
5
|
+
Given(/^the following (files|directories) exist:$/) do |type, table|
|
6
|
+
table.hashes.each do |h|
|
7
|
+
if type == 'directories'
|
8
|
+
FileUtils.mkdir_p(h[:path])
|
9
|
+
else
|
10
|
+
FileUtils.mkdir_p(File.dirname(h[:path]))
|
11
|
+
FileUtils.touch(h[:path])
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
Given(/^the default structure exists in "(.*?)"$/) do |project_dir|
|
17
|
+
Samling::CreateDefaultStructure.run(project_dir)
|
18
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
Then(/^it should run "(.*?)"$/) do |command|
|
2
|
+
recent_history.should include command.shellsplit
|
3
|
+
end
|
4
|
+
|
5
|
+
Then(/^it should run exactly:$/) do |table|
|
6
|
+
commands = table.hashes.collect do |h|
|
7
|
+
h[:command].shellsplit
|
8
|
+
end
|
9
|
+
|
10
|
+
recent_history(commands.size).should == commands
|
11
|
+
end
|
12
|
+
|
13
|
+
Then(/^it should run git add on exactly the following files in "(.*?)":$/) do |base_path, table|
|
14
|
+
expected_commands = table.hashes.collect do |h|
|
15
|
+
path = Pathname.new(base_path) + h[:path]
|
16
|
+
|
17
|
+
%Q{git --git-dir "#{base_path}/.git" --work-tree "#{base_path}" add -v "#{path}"}.shellsplit
|
18
|
+
end
|
19
|
+
|
20
|
+
recent_history(expected_commands.size).should =~ expected_commands
|
21
|
+
end
|
22
|
+
|
23
|
+
Then(/^there should be exactly the following (files|directories) in "(.*?)":$/) do |type, location, table|
|
24
|
+
created_files = Dir.glob(location + '/**/*').select { |f| type == 'files' ? File.file?(f) : File.directory?(f) }
|
25
|
+
expected_files = table.hashes.collect { |h| (Pathname.new(location) + h[:path]).to_s }
|
26
|
+
|
27
|
+
created_files.should =~ expected_files
|
28
|
+
end
|
29
|
+
|
30
|
+
Then(/^there should be \.gitkeep files in exactly the following directories of "(.*?)"$/) do |project_directory, table|
|
31
|
+
table.hashes.each do |h|
|
32
|
+
expected_file = (Pathname.new(project_directory) + h[:path]) + '.gitkeep'
|
33
|
+
expected_file.should exist
|
34
|
+
expected_file.file?.should be_true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
Then(/^there should be files for "(.*?)" from templates:$/) do |project_name, table|
|
39
|
+
created_files = table.hashes.collect do |h|
|
40
|
+
h[:path].should exist
|
41
|
+
File.read(h[:path])
|
42
|
+
end
|
43
|
+
|
44
|
+
FakeFS.deactivate!
|
45
|
+
templates = table.hashes.collect do |h|
|
46
|
+
if h[:template].blank?
|
47
|
+
''
|
48
|
+
else
|
49
|
+
File.read("./templates/#{h[:template]}").gsub('<project_name>', project_name)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
FakeFS.activate!
|
53
|
+
|
54
|
+
created_files.should =~ templates
|
55
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
When(/^I create a new project in "(.*?)"$/) do |project_path|
|
2
|
+
Samling::CreateDefaultStructure.run(project_path)
|
3
|
+
end
|
4
|
+
|
5
|
+
When(/^it creates a VCS bare under bare_path: "(.*?)", and project_path: "(.*?)"$/) do |bare_path, project_path|
|
6
|
+
step "it creates a bare VCS under host: \"\", user: \"\", password: \"\", bare_path: \"#{bare_path}\", and project_path: \"#{project_path}\""
|
7
|
+
end
|
8
|
+
|
9
|
+
When(/^it creates a bare VCS under host: "(.*?)", user: "(.*?)", bare_path: "(.*?)", and project_path: "(.*?)"$/) do |host, user, bare_path, project_path|
|
10
|
+
Samling::CreateGitRepository.run(project_path, bare_path, host, user)
|
11
|
+
end
|
12
|
+
|
13
|
+
When(/^it commits all files and directories in "(.*?)"$/) do |path|
|
14
|
+
Samling::CommitGitRepository.run(path)
|
15
|
+
end
|
16
|
+
|
17
|
+
# faces
|
18
|
+
|
19
|
+
When(/^I create a new basic face "(.*?)" at "(.*?)"$/) do |face_name, root_path|
|
20
|
+
Samling::CreateBasicFace.run(root_path, face_name)
|
21
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
require './core/dirt'
|
2
|
+
require 'rspec/matchers'
|
3
|
+
require 'fakefs/safe'
|
4
|
+
require 'aruba-doubles'
|
5
|
+
|
6
|
+
Before do
|
7
|
+
ArubaDoubles::Double.setup
|
8
|
+
|
9
|
+
# git init
|
10
|
+
double_cmd(%q{git init --bare /some/git/my_project.git})
|
11
|
+
double_cmd(%q{git init --bare /different/bares/my_other_project.git})
|
12
|
+
|
13
|
+
double_cmd(%q{ssh userA@machine1 "git init --bare /some/git/my_project.git"})
|
14
|
+
double_cmd(%q{ssh userB@machine1 "git init --bare /some/git/my_project.git"})
|
15
|
+
double_cmd(%q{ssh userA@machine2 "git init --bare /different/bares/my_project.git"})
|
16
|
+
double_cmd(%q{ssh userB@machine2 "git init --bare /different/bares/my_project.git"})
|
17
|
+
double_cmd(%q{ssh userB@machine2 "git init --bare /different/bares/my_other_project.git"})
|
18
|
+
|
19
|
+
# git clone
|
20
|
+
double_cmd(%q{git clone "/some/git/my_project.git" "/a_path/to/the project/my_project"})
|
21
|
+
double_cmd(%q{git clone "/some/git/my_project.git" "/some/other/path/my_project"})
|
22
|
+
double_cmd(%q{git clone "/different/bares/my_other_project.git" "/some/other/path/my_other_project"})
|
23
|
+
|
24
|
+
double_cmd(%q{git clone userA@machine1:/some/git/my_project.git "/a_path/to/the project/my_project"})
|
25
|
+
double_cmd(%q{git clone userA@machine1:/different/bares/my_other_project.git "/some/other/path/my_other_project"})
|
26
|
+
double_cmd(%q{git clone userB@machine1:/some/git/my_project.git "/a_path/to/the project/my_project"})
|
27
|
+
double_cmd(%q{git clone userB@machine1:/different/bares/my_other_project.git "/some/other/path/my_other_project"})
|
28
|
+
|
29
|
+
double_cmd(%q{git clone userA@machine2:/some/git/my_project.git "/a_path/to/the project/my_project"})
|
30
|
+
double_cmd(%q{git clone userA@machine2:/different/bares/my_other_project.git "/some/other/path/my_other_project"})
|
31
|
+
double_cmd(%q{git clone userB@machine2:/some/git/my_project.git "/a_path/to/the project/my_project"})
|
32
|
+
double_cmd(%q{git clone userB@machine2:/different/bares/my_other_project.git "/some/other/path/my_other_project"})
|
33
|
+
double_cmd(%q{git clone userB@machine2:/different/bares/my_project.git "/some/other/path/my_project"})
|
34
|
+
|
35
|
+
# git add
|
36
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/Gemfile"})
|
37
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/.gitignore"})
|
38
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/core/tests/behaviours/support/env.rb"})
|
39
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/persist/.gitkeep"})
|
40
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/core/contexts/.gitkeep"})
|
41
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/core/contexts/roles/.gitkeep"})
|
42
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/core/models/.gitkeep"})
|
43
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/core/tests/behaviours/.gitkeep"})
|
44
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/core/tests/behaviours/support/.gitkeep"})
|
45
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/core/tests/behaviours/step_definitions/.gitkeep"})
|
46
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/core/tests/isolations/.gitkeep"})
|
47
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" add -v "/a_path/to/the project/my_project/faces/.gitkeep"})
|
48
|
+
|
49
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/Gemfile"})
|
50
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/.gitignore"})
|
51
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/core/tests/behaviours/support/env.rb"})
|
52
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/persist/.gitkeep"})
|
53
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/core/contexts/.gitkeep"})
|
54
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/core/contexts/roles/.gitkeep"})
|
55
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/core/models/.gitkeep"})
|
56
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/core/tests/behaviours/.gitkeep"})
|
57
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/core/tests/behaviours/support/.gitkeep"})
|
58
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/core/tests/behaviours/step_definitions/.gitkeep"})
|
59
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/core/tests/isolations/.gitkeep"})
|
60
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" add -v "/some/other/path/my_other_project/faces/.gitkeep"})
|
61
|
+
|
62
|
+
# git commit/push
|
63
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" commit -am "Dirt project init"})
|
64
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" commit -am "Dirt project init"})
|
65
|
+
double_cmd(%q{git --git-dir "/a_path/to/the project/my_project/.git" --work-tree "/a_path/to/the project/my_project" push origin master})
|
66
|
+
double_cmd(%q{git --git-dir "/some/other/path/my_other_project/.git" --work-tree "/some/other/path/my_other_project" push origin master})
|
67
|
+
|
68
|
+
FakeFS::FileSystem.clear
|
69
|
+
|
70
|
+
# clone all persist files into the fake file system
|
71
|
+
Dir['./templates/**/*'].each do |file|
|
72
|
+
FakeFS.deactivate!
|
73
|
+
|
74
|
+
fake_loc = Dirt::PROJECT_ROOT + file
|
75
|
+
|
76
|
+
if File.directory? file
|
77
|
+
FakeFS.activate!
|
78
|
+
FileUtils.mkdir_p(fake_loc)
|
79
|
+
else
|
80
|
+
content = File.read(file)
|
81
|
+
FakeFS.activate!
|
82
|
+
FileUtils.mkdir_p(File.dirname(fake_loc))
|
83
|
+
FileUtils.touch(fake_loc)
|
84
|
+
File.open(fake_loc, 'w+') { |f| f.write(content) }
|
85
|
+
end
|
86
|
+
end
|
87
|
+
FakeFS.activate!
|
88
|
+
end
|
89
|
+
|
90
|
+
World(ArubaDoubles)
|
91
|
+
|
92
|
+
After do
|
93
|
+
FakeFS::FileSystem.clear
|
94
|
+
FakeFS.deactivate!
|
95
|
+
|
96
|
+
ArubaDoubles::Double.teardown
|
97
|
+
history.clear
|
98
|
+
end
|
99
|
+
|
100
|
+
|