appli 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.
data/lib/appli.rb CHANGED
@@ -14,7 +14,7 @@ module Appli
14
14
  class NotConfiguredError < StandardError; end
15
15
  class MustBeInRepositoryError < StandardError; end
16
16
 
17
- VERSION = "0.0.4"
17
+ VERSION = "0.0.5"
18
18
 
19
19
  def run(command, args = [])
20
20
  load_commands
@@ -0,0 +1,57 @@
1
+ desc 'Display a list of all applications which you have access to'
2
+ usage "appli apps"
3
+ command "apps", :global => true do
4
+ apps = get("applications")
5
+
6
+ hash = [[:name, "Name", 30], [:identifier , "Identifier", 30], [:ssh_port, "SSH Port", 12], [:host, "Host", 30]]
7
+ total = hash.inject(0) {|e,r| e + r.last}
8
+ puts "-" * total
9
+ for item in hash
10
+ key, value, chars = item
11
+ print value.to_s.ljust(chars)
12
+ end
13
+ puts
14
+ puts "-" * total
15
+ for app in apps.sort_by {|a| a['application']['name'].upcase }
16
+ for item in hash
17
+ key, value, chars = item
18
+ data = case key
19
+ when :host then app['application']['host']['name']
20
+ else
21
+ app['application'][key.to_s].to_s
22
+ end
23
+ print data.ljust(chars)
24
+ end
25
+ puts
26
+ end
27
+ puts "-" * total
28
+ end
29
+
30
+ desc "Create a new application with the provided identifier"
31
+ usage "appli create {identifier}"
32
+ command "create", :global => true do |identifier|
33
+ puts "Creating new application with identifier '#{identifier}'. Please wait - this may take a few minutes."
34
+ result = api('applications', {:application => {:identifier => identifier, :name => identifier}}.to_json)
35
+ if errors
36
+ puts "\nAn error occured while creating your application:"
37
+ for e in JSON.parse(errors)
38
+ puts " * #{e.join(' ')}"
39
+ end
40
+ puts
41
+ Process.exit(1)
42
+ else
43
+ application = JSON.parse(result)['application']
44
+ puts "\n\e[44;37mApplication has been built successfully and is now running on '#{application['host'] ? application['host']['name'] : 'unknown host'}'.\e[0m"
45
+ puts
46
+ puts "You can now use a number of commands to work with your application, see documentation at www.applihq.com for"
47
+ puts "full details. You can also manage the application using your web browser at the domain above."
48
+ puts
49
+ puts "You may be looking for one of the following commands:"
50
+ puts
51
+ puts " * appli #{identifier} ssh"
52
+ puts " * appli #{identifier} db:import"
53
+ puts " * appli #{identifier} db:console"
54
+ puts " * appli #{identifier} capify config/deploy.rb"
55
+ puts
56
+ end
57
+ end
data/lib/commands/cap.rb CHANGED
@@ -1,11 +1,8 @@
1
1
  desc 'Generates a pre-configured capistrano deployment recipe.'
2
- desc 'This file is then copied into config/deploy.rb unless a file already exists. This will'
3
- desc 'only function if you are in the root of an application with a \'Capify\' file already'
4
- desc 'generated.'
5
2
  usage "appli [application] capify {export path}"
6
3
  command "capify", :required_args => 1 do |file|
7
- error "File already exists at '#{file}'. Remove this file before continuing or change the export path." if File.exist?(file)
8
- File.open(file, 'w') {|f| f.write(get("applications/#{@options[:application]}/capistrano")['config']) }
4
+ contents = get("applications/#{@options[:application]}/capistrano")['config']
5
+ File.open(file, 'w') {|f| f.write(contents) }
9
6
  puts "Generated capistrano deployment receipe at '#{file}'."
10
7
  puts
11
8
  puts "You should now edit this file to include the path to your repository. Along with any additional"
@@ -36,17 +36,4 @@ desc 'SSH to the named server'
36
36
  usage "appli [application] ssh"
37
37
  command "ssh" do
38
38
  exec "ssh -p #{application['ssh_port']} app@#{host['name']}"
39
- end
40
-
41
- desc 'Create a MySQL console connection for your first database'
42
- usage "appli [application] mysql"
43
- command "mysql" do
44
- database = get("applications/#{@options[:application]}/databases").first
45
- if database
46
- database = database['database']
47
- puts "Connecting to database '#{database['name']}' on '#{database['host']['name']}'"
48
- exec("ssh -t -p #{application['ssh_port']} app@#{host['name']} mysql -u #{database['username']} -p#{database['password']} -h #{database['host']['name']} #{database['name']}")
49
- else
50
- error("No database was not found for this application.")
51
- end
52
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Cooke
@@ -34,6 +34,7 @@ files:
34
34
  - bin/appli
35
35
  - lib/appli/command.rb
36
36
  - lib/appli.rb
37
+ - lib/commands/apps.rb
37
38
  - lib/commands/cap.rb
38
39
  - lib/commands/gems.rb
39
40
  - lib/commands/mysql.rb