sumodev 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,85 @@
1
+ require 'sumodev/command'
2
+ require 'sumodev/config'
3
+
4
+ class Sumodev::Commands::Project < Sumodev::Command
5
+ namespace :project
6
+
7
+ desc 'get REPO stage', "fetches a project"
8
+
9
+ no_commands do
10
+ def get_client(path)
11
+ return get_var(path, "client")
12
+ end
13
+
14
+ def get_project(path)
15
+ return get_var(path, "project")
16
+ end
17
+
18
+ def get_var(path, field)
19
+ File.readlines(path).each do |line|
20
+ # match = Regexp.new(":''#{field},\s*\"(.*?)\"").match(line)
21
+ match = Regexp.new(":#{field},\s*\"(.*?)\"").match(line)
22
+ if match != nil && match.length > 0
23
+ return match[1]
24
+ end
25
+ end
26
+
27
+ return false
28
+ end
29
+ end
30
+
31
+ def get(repo, stage="staging")
32
+ say "Cloning repo #{repo}", :green
33
+
34
+ tmp_path = File.expand_path(Sumodev::Config.get('SUMO_TEMP_PATH'));
35
+
36
+ system "rm -rf #{tmp_path}/temp_project"
37
+ system "git clone -q #{repo} #{tmp_path}/temp_project 2> /dev/null"
38
+
39
+ capfile_path = "#{tmp_path}/temp_project/Capfile"
40
+ if File.file?(capfile_path)
41
+ content = File.read(capfile_path)
42
+
43
+ if content.include?("set :client") and content.include?("set :project")
44
+ client = get_client(capfile_path)
45
+ project = get_project(capfile_path)
46
+ sites_path = File.expand_path(Sumodev::Config.get('SUMO_SITES_PATH'))
47
+ project_path = File.expand_path("#{sites_path}/#{client}/#{project}")
48
+
49
+ if File.directory?(project_path)
50
+ say "Project folder already exists, so can't continue", :red
51
+ else
52
+ say "Creating and moving everything into place", :green
53
+ system "mkdir -p #{project_path}; cd #{project_path}"
54
+ system "shopt -s dotglob; mv #{tmp_path}/temp_project/* #{project_path}"
55
+
56
+ gemfile_path = "#{project_path}/Gemfile"
57
+ if File.file?(gemfile_path)
58
+ say "Installing gems", :green
59
+ system "cd #{project_path}; bundle install"
60
+ end
61
+
62
+ composer_path = "#{project_path}/composer.json"
63
+ say #{composer_path}
64
+ if File.file?(composer_path)
65
+ say "Installing dependencies", :green
66
+ system "cd #{project_path}; composer install"
67
+ end
68
+
69
+ say "Grabbing data", :green
70
+ system "cd #{project_path}; cap #{stage} sumodev:db:get"
71
+ system "cd #{project_path}; cap #{stage} sumodev:files:get"
72
+
73
+ say "Change location to the project", :green
74
+ Dir.chdir project_path # @todo defv this doesn't work
75
+
76
+ say "All done", :green
77
+ end
78
+ else
79
+ say "No client/project defined, so can't continue", :red
80
+ end
81
+ else
82
+ say "No Capfile, so can't continue", :red
83
+ end
84
+ end
85
+ end
@@ -15,7 +15,7 @@ class Sumodev::Commands::Push < Thor::Group
15
15
  Mathias = {:groups => ['developer'], :identity => 'mathias@sumocoders.be', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDLBHWXILbcsYfoDYCgJq4B3Q9ElcZq0hRWo8otXWsOP1pYU8Kq2thWbIB+RkuZr8Y7DMI2XtGXSquWJdx0Beddxt+yVoE/eReorVuB74bnEVXYtcZ8+mNHU6paC1T4XHMWjEXSgaEaSPdxnQxPPzQ+YDuJkYWaCrLxDyWe4sqio0R5SA5CasTkei5dHIfIzj8a16JvTj/FlbNrGHzdSwWY04QoSRdN3rpWJ4krzlHz5NIJmBhUxW15d9NgmKPGJYHmUyY1nfXdb82/zUS1vt6A/46hMJzRXhQuxzNVNBFN2q8d/bXhsNW6AZ467auWO3NLBUOfGHMX+Ga6FQiyCdhd', :protocol => 'rsa'}
16
16
  Jonas = {:groups => ['developer'], :identity => 'jonas@sumocoders.be', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDM4PlwtAMTRW78OsIdmeHhWKxeJ6GvYN/06OJsRpdvqcviDkghgHlB5hDz9ceMb96WUuIJQi/UFM6DcED4md4GVKoql8NmV3upaI6J+K6LPVIBfBG5C9S/NCXAInQozBisvfqNU5rRsh06HCsEnAMIOkgyqX/ZSgwat0XqfL/7w7NLT2QC1Zp08HbTJauFMljzGz6RErWlfy3XYTpMJA6Cnj9S2qn2/7wuGavLJrIo5swKqabO2SFV0MERgmTmPjDHYJoCffZjF2r8fG2NjZWVlPNuqesWP0wNlKvkFVRU3XYB7hsNjolCNzxAw3SjaqyuHo3RDvgks6gs2GSh8iev', :protocol => 'rsa'}
17
17
  TVin = {:groups => ['developer'], :identity => 'tvin@sumocoders.be', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDVOuVuGneKgpUQJ04SESLX7e+MiZvDvC55fFr6v/EXPCt+yDYOZRsYD1y/7ZSI9cZ7WSIfMkc3EN/yTA0qJaJC5nRYJIUUeGb/Kn7ufN1C48uTmSZBDKuvI4GNSwJWH+FjcSF9nrm1IcuV711NHEswC6QEfeVMuoAJG3OuD79uqA5CLNgGc6UzoIy11stiYvrIKvOPytWny3NCm543rj2r0c1FerhFh1WaAo3JKnnx0LVhiKyOmjHXYA9ayp+m0eoDGfs80gmlPrc/9HYu5c4YARqo5PPLUHacacmzD8y4DW4p9yNomgZ+b6nsbi2Q+ljjJkUeSE35OSed8KM2kYjP', :protocol => 'rsa'}
18
- Toon = {:groups => ['developer'], :identity => 'toon@sumocoders.be', :key => 'AAAAB3NzaC1yc2EAAAABIwAAAQEAwtG2R4rVAiitjQBLzWJj6UL0kWng0NWgmlGKicGAJizd5j3W6RUkQA/sGG5fIkSQut2P4RHaMseMGQS15Pte+H7yjr+B/Hg5LX9w4vB1QUtTHSSatO+Nyca3xqrvtsixGBuYTnZvHxBrYa9UfXnRSCdux4OrasrKrrHUdoRgrpLwy3AoNtC5O8vTuL2M16JFgY75TbG5Qzil4YxOvlk5LPKq4kszcsVn4pMJ8oX7JDMwLu/3EuQj32YN6OnTQ+WFXuMxeM1ZvQPyj4QyxgJeqDcsyxCT61Yq0Iep21mQeYp58Z/OgArta3FZcUi4MIa/hIAcy4H7uamdwJoQKf3csQ==', :protocol => 'rsa'}
18
+ Toon = {:groups => ['developer'], :identity => 'toon@sumocoders.be', :key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDj58FxlLxFS9Ul8qeQU2OU48VLWccVdvtkDcjyg9jtc3yhABu/HfZf7lISonIEHFr7YVifE5d1zHWhKfjq5IETv5dklfac2KUSvgr1f7P8SuLQ8l4ydMasuYr5nbhBihEgic8ulBFFu3lex1ogsfuyB30ach6unP1lSP9qMVJDsjnsFkl6tIXFN5PuqMsEkq7OW7OPMwTKpA3TYBSbbULBfRmJUzdIOUoteSu5GXOoDcI7ztTBfa/ypuZL8Al+G9ihbOShMUkpI7ZFSQ+Wm8Hgst6NqX+TzZ49sF+3wayRsoFQg8O1a76INxM/7PeVHJxyBb5qi0jvGwXuJqrWX9E5', :protocol => 'rsa'}
19
19
 
20
20
  def replace_keys
21
21
  connect do |ssh|
@@ -0,0 +1,29 @@
1
+ require 'singleton'
2
+
3
+ class Sumodev::Config
4
+ include Singleton
5
+
6
+ attr_accessor :variables
7
+
8
+ def initialize
9
+ sumofile_path = File.expand_path("~/.sumorc")
10
+
11
+ if File.file?(sumofile_path)
12
+ @variables = File.readlines(sumofile_path).inject({}) do |env,line|
13
+ line = line.strip.gsub('export', '')
14
+ name, value = line.split("=", 2)
15
+ env.merge name.strip => value.strip.tr("'\"", '')
16
+ end
17
+ else
18
+ raise("No .sumorc-file found in ~/.sumorc")
19
+ end
20
+ end
21
+
22
+ def self.get(*args)
23
+ instance.get(*args)
24
+ end
25
+
26
+ def get(name)
27
+ @variables[name]
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Sumodev
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
data/lib/sumodev.rb CHANGED
@@ -7,11 +7,13 @@ class Sumodev < Thor
7
7
  autoload :Ssh, 'sumodev/commands/ssh'
8
8
  autoload :Factr, 'sumodev/commands/factr'
9
9
  autoload :Push, 'sumodev/commands/push'
10
+ autoload :Project, 'sumodev/commands/project'
10
11
  end
11
12
 
12
13
  register Commands::Fork, 'fork', 'fork <command>', 'All commands concerning Fork applications'
13
14
  register Commands::Ssh, 'ssh', 'ssh <server>', 'SSH access to servers'
14
15
  register Commands::Factr, 'factr', 'factr <command>', 'All commands concerning Factr'
15
16
  register Commands::Push, 'push', 'push <server>', 'Push the SSH keys to the server'
17
+ register Commands::Project, 'project', 'project <command>', 'All commands concerning projects'
16
18
  end
17
19
 
metadata CHANGED
@@ -1,100 +1,80 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sumodev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Jan De Poorter
8
9
  autorequire:
9
10
  bindir: bin
10
- cert_chain:
11
- - !binary |-
12
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURWRENDQWp5Z0F3SUJB
13
- Z0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREE0TVF3d0NnWURWUVFEREFOcVlX
14
- NHgKRkRBU0Jnb0praWFKay9Jc1pBRVpGZ1JrWldaMk1SSXdFQVlLQ1pJbWla
15
- UHlMR1FCR1JZQ1ltVXdIaGNOTVRNdwpOakF6TURreE5qQXlXaGNOTVRRd05q
16
- QXpNRGt4TmpBeVdqQTRNUXd3Q2dZRFZRUUREQU5xWVc0eEZEQVNCZ29KCmtp
17
- YUprL0lzWkFFWkZnUmtaV1oyTVJJd0VBWUtDWkltaVpQeUxHUUJHUllDWW1V
18
- d2dnRWlNQTBHQ1NxR1NJYjMKRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFE
19
- WlkwSHQ2TkZGN1RxZ2RRODAxTDl0bWFjSjRuR05KQXJlbnBnNApyNjQyNmM2
20
- aUw0REJkTzNGS25kUVdFdlNCZXFiVWYxQUVUbllOdzFOMGJvUndPWjZtaGRC
21
- bUhaZk4zMG5TQVVsCmQ3aERCSzdjUCtHd0hsK1VVdnU4cmUrQU45bUc0NU9W
22
- SndOSElNTlhUMHp4RG5hUkRmeEhNelMySnN4Z1VZWHcKeHVPZUhtSVA4cHFD
23
- ZWFiVDRhREc5cmVUV2thSjR2K3RVU3FuVjRTVnhBTTZveFN2RmRRZVJYaTFo
24
- aDJKMGswcApDYUEzQWw0Z1hKUFFjRGd2UTJFTXRNbHlCZFZ1Ulh4NkVpRzlS
25
- V1ViSUUwOTlTN2w5d2dpUGQ0KzdYV2YvSkhlCkliTTVUb2pOWk51cG80M1Fj
26
- VjMxOHZSZjF0RFA2dEpMNWZ4VjZMVFdySnpHWmJMdEFnTUJBQUdqYVRCbk1B
27
- a0cKQTFVZEV3UUNNQUF3Q3dZRFZSMFBCQVFEQWdTd01CMEdBMVVkRGdRV0JC
28
- U3kxMWtLeHFoNkU3LzErd09USFBKbgo4RXBlRnpBV0JnTlZIUkVFRHpBTmdR
29
- dHFZVzVBWkdWbWRpNWlaVEFXQmdOVkhSSUVEekFOZ1F0cVlXNUFaR1ZtCmRp
30
- NWlaVEFOQmdrcWhraUc5dzBCQVFVRkFBT0NBUUVBZVJnbk1FQ21Ya3NvVjNT
31
- OUhtdXBaRnNOWUV3dnlPOEUKem1HMVU0ajlybGVFV1JqS0xWalhkZmd5TG9l
32
- MnVtUlpwakpGR3dxaHdqYnNLV3U5eWFoRzlWZXRjWWVkSDEyYQp0bVUwMzNL
33
- SEdPei92UUtndTQ4Wnovckd6amZkSjU0a2FTRVB1MEFsMzV6c2RveFpIV21Q
34
- K2Jod1k4RE4yOGFOCjNkclpjMHhBL0t2N0hpaUpsSmkxNDBjZVFySGd2RlIv
35
- UzExR1hQVFBtQ1NWMFczQnhIc0p1Vm1hUDYxaEppa1AKSU4ybUZwRkw4ckFk
36
- eklzc2g3ejFsU285QUgwMGs2cm5uSHEzOFRmdmorWndOSGw1RENCVzgxYmYy
37
- UzZSM2QzWQpFdlVIWS9tcmZNY3NYUWJ3aVdXeFBzL2R6TDhSbFhFcGhZeDlz
38
- N0VyUk11ck9GUm5ZZ3dDZ0E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t
39
- Cg==
40
- date: 2013-10-10 00:00:00.000000000 Z
11
+ cert_chain: []
12
+ date: 2013-12-09 00:00:00.000000000 Z
41
13
  dependencies:
42
14
  - !ruby/object:Gem::Dependency
43
15
  name: activesupport
44
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
45
18
  requirements:
46
19
  - - ! '>='
47
20
  - !ruby/object:Gem::Version
48
21
  version: '0'
22
+ type: :runtime
23
+ prerelease: false
49
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
50
26
  requirements:
51
27
  - - ! '>='
52
28
  - !ruby/object:Gem::Version
53
29
  version: '0'
54
- type: :runtime
55
- prerelease: false
56
30
  - !ruby/object:Gem::Dependency
57
31
  name: thor
58
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
59
34
  requirements:
60
35
  - - ! '>='
61
36
  - !ruby/object:Gem::Version
62
37
  version: '0'
38
+ type: :runtime
39
+ prerelease: false
63
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
64
42
  requirements:
65
43
  - - ! '>='
66
44
  - !ruby/object:Gem::Version
67
45
  version: '0'
68
- type: :runtime
69
- prerelease: false
70
46
  - !ruby/object:Gem::Dependency
71
47
  name: net-ssh
72
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
73
50
  requirements:
74
51
  - - ! '>='
75
52
  - !ruby/object:Gem::Version
76
53
  version: '0'
54
+ type: :runtime
55
+ prerelease: false
77
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
78
58
  requirements:
79
59
  - - ! '>='
80
60
  - !ruby/object:Gem::Version
81
61
  version: '0'
82
- type: :runtime
83
- prerelease: false
84
62
  - !ruby/object:Gem::Dependency
85
63
  name: net-scp
86
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
87
66
  requirements:
88
67
  - - ! '>='
89
68
  - !ruby/object:Gem::Version
90
69
  version: '0'
70
+ type: :runtime
71
+ prerelease: false
91
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
92
74
  requirements:
93
75
  - - ! '>='
94
76
  - !ruby/object:Gem::Version
95
77
  version: '0'
96
- type: :runtime
97
- prerelease: false
98
78
  description: A command line tool to access all things you want
99
79
  email: jan@sumocoders.be
100
80
  executables:
@@ -107,8 +87,10 @@ files:
107
87
  - lib/sumodev/command.rb
108
88
  - lib/sumodev/commands/factr.rb
109
89
  - lib/sumodev/commands/fork.rb
90
+ - lib/sumodev/commands/project.rb
110
91
  - lib/sumodev/commands/push.rb
111
92
  - lib/sumodev/commands/ssh.rb
93
+ - lib/sumodev/config.rb
112
94
  - lib/sumodev/generator.rb
113
95
  - lib/sumodev/generators/fork/v3.rb
114
96
  - lib/sumodev/generators/general/capistrano.rb
@@ -120,25 +102,26 @@ files:
120
102
  - Gemfile.lock
121
103
  homepage:
122
104
  licenses: []
123
- metadata: {}
124
105
  post_install_message:
125
106
  rdoc_options: []
126
107
  require_paths:
127
108
  - lib
128
109
  required_ruby_version: !ruby/object:Gem::Requirement
110
+ none: false
129
111
  requirements:
130
112
  - - ! '>='
131
113
  - !ruby/object:Gem::Version
132
114
  version: '0'
133
115
  required_rubygems_version: !ruby/object:Gem::Requirement
116
+ none: false
134
117
  requirements:
135
118
  - - ! '>='
136
119
  - !ruby/object:Gem::Version
137
120
  version: '0'
138
121
  requirements: []
139
122
  rubyforge_project:
140
- rubygems_version: 2.0.3
123
+ rubygems_version: 1.8.23
141
124
  signing_key:
142
- specification_version: 4
125
+ specification_version: 3
143
126
  summary: SumoCoders Developers gem
144
127
  test_files: []
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NTQzODQyMTFhMjQ1OGNmMzI3M2YwNzkxN2FmZGNiMjkyM2JjM2YxMQ==
5
- data.tar.gz: !binary |-
6
- YTViODUyYzA2ZGNjMTQ0NjZlMGM4OTg2ZGNiY2U2MmU3MWRmNzFhMQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- MGNmYzk5Mzg5M2JhNDdjNWZmNzk1ODIzZjJhNWU0MDdkZTNiZWU2MWNmZDRk
10
- YmE2OTA5OTgwNmFiMmRiZGVlNzQ3YWFmOWFkODIwMzI1NjRmYTk0ZjJjOWY5
11
- MDc2MjEwMDllMWU3MDUxYjNlNzEzZDBhM2RhNTI5NmM0YWQ1ZjM=
12
- data.tar.gz: !binary |-
13
- MGZiYTg5ODNhYWQ3OTRiNThmNzUyMjhhNGQzOGM1ZGEyNDFkNTY1MGZlZGZl
14
- ZGJmYTI4MTgyMWUwYTVlZDIyYTA3NjBhM2JiYmQ5NzIzOTMwZDU0NjdkZGJh
15
- OGU4MTYyMDE3N2U5ODQ1OTI1ZTc5OTk2MzM1NDVkM2I1MzU1M2Q=
checksums.yaml.gz.sig DELETED
Binary file
data.tar.gz.sig DELETED
Binary file
metadata.gz.sig DELETED
@@ -1 +0,0 @@
1
- 8�S�M7ԃ�Q}�8x�b|�v��5��H��ίg�!Z>�����2-������f�c�){YӭGmv��-���?�t����&|����.��R8�g���i���i�j�z)�%���IL?}���PH���>>dV��V��,(�1�A��5�c�nس��B�&���e���±�߰�:Sd�M'�y*h�+�!�R+�e����nk��#:�]8��E����>��t�:ZԎ(�0П텀G5���