caracara 0.2.0 → 0.3.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 +4 -4
- data/Gemfile.lock +1 -3
- data/lib/caracara/task.rb +6 -1
- data/lib/caracara/version.rb +1 -1
- data/spec/caracara/task_spec.rb +23 -19
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e6b75d677c18a7a16ae131f4db608651df8e9af
|
4
|
+
data.tar.gz: e166ae41ca6419c679fa90a5268de608bcbfc66e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3be139eb8c16ce3b4d20768b3a7ded1f7331b9d80c75b71694782c4198e53cc7180334400e1cb98a5e35659ef425ab46daf7b1095b45021a2d6ab24879a40c6
|
7
|
+
data.tar.gz: 573a95094a1d476209cffb7a3b4f2063cd7988fdfc1fc5afd46c5ab1430b4095bb07f5cae26097a6e0a5e4eef4e2366f7790a3471c0baaef07ededba182379d2
|
data/Gemfile.lock
CHANGED
@@ -1,16 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
caracara (0.
|
4
|
+
caracara (0.2.0)
|
5
5
|
mustache (~> 1.0)
|
6
|
-
rake
|
7
6
|
|
8
7
|
GEM
|
9
8
|
remote: https://rubygems.org/
|
10
9
|
specs:
|
11
10
|
diff-lcs (1.2.5)
|
12
11
|
mustache (1.0.2)
|
13
|
-
rake (10.4.2)
|
14
12
|
rspec (3.0.0)
|
15
13
|
rspec-core (~> 3.0.0)
|
16
14
|
rspec-expectations (~> 3.0.0)
|
data/lib/caracara/task.rb
CHANGED
@@ -59,7 +59,12 @@ module Caracara
|
|
59
59
|
@steps = [] if @steps.nil?
|
60
60
|
|
61
61
|
# Add a new step
|
62
|
-
@steps.push cmd
|
62
|
+
return @steps.push(cmd) if cmd.is_a?(String)
|
63
|
+
|
64
|
+
# If it is another task
|
65
|
+
cmd.steps.each do |task_cmd|
|
66
|
+
@steps.push task_cmd
|
67
|
+
end
|
63
68
|
end
|
64
69
|
|
65
70
|
# Initialize a task
|
data/lib/caracara/version.rb
CHANGED
data/spec/caracara/task_spec.rb
CHANGED
@@ -1,23 +1,24 @@
|
|
1
1
|
# Include the helper
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
+
class SharedTask < Caracara::Task
|
5
|
+
step 'echo "Im doing some tasks with Caracara"'
|
6
|
+
end
|
7
|
+
|
4
8
|
# Class definitions
|
5
9
|
class TaskSpec < Caracara::Task
|
10
|
+
step SharedTask
|
11
|
+
|
6
12
|
step 'mkdir {{folder.name}}/'
|
7
13
|
step 'chown -R {{user}} {{folder.name}}'
|
8
14
|
step 'chmod -R {{folder.permission}} {{folder.name}}/'
|
9
15
|
|
10
16
|
dir '{{folder.name}}' do
|
17
|
+
step SharedTask
|
11
18
|
step 'echo "{{text}}" > file.txt'
|
12
19
|
end
|
13
20
|
end
|
14
21
|
|
15
|
-
class TaskTwoSpec < Caracara::Task
|
16
|
-
step 'mkdir {{folder.name}}/'
|
17
|
-
step 'chown -R {{user}} {{folder.name}}'
|
18
|
-
step 'chmod -R {{folder.permission}} {{folder.name}}/'
|
19
|
-
end
|
20
|
-
|
21
22
|
# Tests
|
22
23
|
describe 'Task' do
|
23
24
|
# Initialize the task
|
@@ -35,10 +36,11 @@ describe 'Task' do
|
|
35
36
|
steps = task.steps
|
36
37
|
|
37
38
|
# Assertions
|
38
|
-
expect(steps[0]).to eq(
|
39
|
-
expect(steps[1]).to eq('
|
40
|
-
expect(steps[2]).to eq('
|
41
|
-
expect(steps[3]).to eq('
|
39
|
+
expect(steps[0]).to eq("echo \"Im doing some tasks with Caracara\"")
|
40
|
+
expect(steps[1]).to eq('mkdir {{folder.name}}/')
|
41
|
+
expect(steps[2]).to eq('chown -R {{user}} {{folder.name}}')
|
42
|
+
expect(steps[3]).to eq('chmod -R {{folder.permission}} {{folder.name}}/')
|
43
|
+
expect(steps[4]).to eq("(cd {{folder.name}} && (echo \"Im doing some tasks with Caracara\"\\necho \"{{text}}\" > file.txt))")
|
42
44
|
end
|
43
45
|
|
44
46
|
it 'should compile the steps' do
|
@@ -46,10 +48,11 @@ describe 'Task' do
|
|
46
48
|
steps = task.compile
|
47
49
|
|
48
50
|
# Assertions
|
49
|
-
expect(steps[0]).to eq(
|
50
|
-
expect(steps[1]).to eq('
|
51
|
-
expect(steps[2]).to eq('
|
52
|
-
expect(steps[3]).to eq('
|
51
|
+
expect(steps[0]).to eq("echo \"Im doing some tasks with Caracara\"")
|
52
|
+
expect(steps[1]).to eq('mkdir niceFolder/')
|
53
|
+
expect(steps[2]).to eq('chown -R ubuntu niceFolder')
|
54
|
+
expect(steps[3]).to eq('chmod -R 755 niceFolder/')
|
55
|
+
expect(steps[4]).to eq("(cd niceFolder && (echo \"Im doing some tasks with Caracara\"\\necho \"Some nice text!\" > file.txt))")
|
53
56
|
end
|
54
57
|
|
55
58
|
it 'should compile the steps using specific args' do
|
@@ -61,10 +64,11 @@ describe 'Task' do
|
|
61
64
|
}
|
62
65
|
|
63
66
|
# Assertions
|
64
|
-
expect(steps[0]).to eq(
|
65
|
-
expect(steps[1]).to eq('
|
66
|
-
expect(steps[2]).to eq('
|
67
|
-
expect(steps[3]).to eq('
|
67
|
+
expect(steps[0]).to eq("echo \"Im doing some tasks with Caracara\"")
|
68
|
+
expect(steps[1]).to eq('mkdir argsFolder/')
|
69
|
+
expect(steps[2]).to eq('chown -R root argsFolder')
|
70
|
+
expect(steps[3]).to eq('chmod -R 655 argsFolder/')
|
71
|
+
expect(steps[4]).to eq("(cd argsFolder && (echo \"Im doing some tasks with Caracara\"\\necho \"Some nice text!\" > file.txt))")
|
68
72
|
end
|
69
73
|
|
70
74
|
it 'should generate the SSH command' do
|
@@ -72,6 +76,6 @@ describe 'Task' do
|
|
72
76
|
command = task.command
|
73
77
|
|
74
78
|
# Assertions
|
75
|
-
expect(command).to eq("mkdir\\ niceFolder/'\n'chown\\ -R\\ ubuntu\\ niceFolder'\n'chmod\\ -R\\ 755\\ niceFolder/'\n'\\(cd\\ niceFolder\\ \\&\\&\\ \\(echo\\ \\\"Some\\ nice\\ text\\!\\\"\\ \\>\\ file.txt\\)\\)")
|
79
|
+
expect(command).to eq("echo\\ \\\"Im\\ doing\\ some\\ tasks\\ with\\ Caracara\\\"'\n'mkdir\\ niceFolder/'\n'chown\\ -R\\ ubuntu\\ niceFolder'\n'chmod\\ -R\\ 755\\ niceFolder/'\n'\\(cd\\ niceFolder\\ \\&\\&\\ \\(echo\\ \\\"Im\\ doing\\ some\\ tasks\\ with\\ Caracara\\\"\\\\necho\\ \\\"Some\\ nice\\ text\\!\\\"\\ \\>\\ file.txt\\)\\)")
|
76
80
|
end
|
77
81
|
end
|