sumodev 0.1.8 → 0.1.9

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.
@@ -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���