appd 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1656bfcdc436c2600a34ba704e9cfb1ce63399e
4
- data.tar.gz: 921eb8e3b20f57cc475982206dcd066f2e7c33f4
3
+ metadata.gz: 7c0025d6faffd9c1825ba8d05315bbb180941ea3
4
+ data.tar.gz: 2cedd6ff443e412f8a5494c92074942b0f6edd80
5
5
  SHA512:
6
- metadata.gz: ceca0525ed9c562377f115d660c292bd286a775dcee461fdf8e78810548054545545074181b90862d5618121f83e811e3d4f3492de5eb33e1a8ffa5254525809
7
- data.tar.gz: 33c4be8b35bc41f6921dd826842da0f2ac9471ca70fdb018770a25cda26d2a5156c39aeb8cd5ae5b9d75fe3d4a66d01442042fa59809daac50a44b7ce2e3bd07
6
+ metadata.gz: 90b001ec99f3a9872dbc683955eff265e5b78ae506680c53e4cd13d2783e2b239134b41aa8a32ea086ffd3a6ddb224997b498771cee58e9702ead3c9af025303
7
+ data.tar.gz: 73e58b396843e97bf42e5115d931083a878cc210faf874beaa52b24a7063ab6f073a9d33a858011cc6868603beca1fcf791ba71e6ff6db16d1e3e301a0f24057
data/appd.gemspec CHANGED
@@ -22,4 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "bundler", "~> 1.11"
23
23
  spec.add_development_dependency "rake", "~> 10.0"
24
24
  spec.add_development_dependency "rspec", "~> 3.0"
25
+
26
+ spec.add_runtime_dependency "thor", "~> 0.19"
25
27
  end
data/exe/appd ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Exit cleanly from an early interrupt
4
+ Signal.trap("INT") { exit 1 }
5
+
6
+ require "appd"
7
+ require "appd/cli"
8
+
9
+ if ARGV[0] != "help" && app_name = ARGV.shift
10
+ ARGV << "--app"
11
+ ARGV << app_name
12
+ end
13
+
14
+ Appd::CLI.start(ARGV, debug: true)
data/lib/appd/app.rb CHANGED
@@ -33,7 +33,7 @@ module Appd
33
33
  private
34
34
 
35
35
  def docker_compose(command)
36
- puts `direnv exec $APP_PATH/#{name} docker-compose -f $APP_PATH/#{name}/docker-compose.yml #{command}`
36
+ Appd.exec "direnv exec $APP_PATH/#{name} docker-compose -f $APP_PATH/#{name}/docker-compose.yml #{command}"
37
37
  end
38
38
  end
39
39
  end
data/lib/appd/cli.rb ADDED
@@ -0,0 +1,55 @@
1
+ require "thor"
2
+
3
+ module Appd
4
+ class CLI < Thor
5
+ class_option :app, type: :string, hide: true, required: ARGV.count > 0 && ARGV[0] != 'help'
6
+
7
+ default_task :help
8
+
9
+ desc "help", "Show this help"
10
+ def help
11
+ puts "Usage:"
12
+ puts " appd APPNAME command\n\n"
13
+ puts "Commands:"
14
+ self.class.commands.each { |_, command| printf "%-30s %s\n", " #{command.usage} ", "# #{command.description}" }
15
+ end
16
+
17
+ desc "ps", "List containers"
18
+ def ps
19
+ app.ps
20
+ end
21
+
22
+ desc "build SERVICES", "Build or rebuild services"
23
+ def build(*services)
24
+ app.build(*services)
25
+ end
26
+
27
+ desc "up SERVICES", "Create and start services"
28
+ def up(*services)
29
+ app.up(*services)
30
+ end
31
+
32
+ desc "stop SERVICES", "Stop services"
33
+ def stop(*services)
34
+ app.stop(*services)
35
+ end
36
+
37
+ desc "restart SERVICES", "Restart services"
38
+ def restart(*services)
39
+ app.restart(*services)
40
+ end
41
+
42
+ desc "exec SERVICE COMMAND", "Execute a command in a running container"
43
+ def exec(service, *command_args)
44
+ app.exec(service, command_args.join(" "))
45
+ end
46
+
47
+ private
48
+
49
+ no_tasks do
50
+ def app
51
+ Appd::App.new(options.app)
52
+ end
53
+ end
54
+ end
55
+ end
data/lib/appd/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Appd
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/appd.rb CHANGED
@@ -5,4 +5,8 @@ module Appd
5
5
  def self.docker_select(server)
6
6
  puts `source ~/.appd/#{server}`
7
7
  end
8
+
9
+ def self.exec(command)
10
+ super command
11
+ end
8
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Morgan Showman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-09 00:00:00.000000000 Z
11
+ date: 2016-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,10 +52,25 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: thor
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.19'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.19'
55
69
  description: Docker compose wrapper for managing containers.
56
70
  email:
57
71
  - morganshowman@gmail.com
58
- executables: []
72
+ executables:
73
+ - appd
59
74
  extensions: []
60
75
  extra_rdoc_files: []
61
76
  files:
@@ -70,8 +85,10 @@ files:
70
85
  - appd.gemspec
71
86
  - bin/console
72
87
  - bin/setup
88
+ - exe/appd
73
89
  - lib/appd.rb
74
90
  - lib/appd/app.rb
91
+ - lib/appd/cli.rb
75
92
  - lib/appd/version.rb
76
93
  homepage: https://github.com/MorganShowman/appd
77
94
  licenses:
@@ -93,8 +110,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
110
  version: '0'
94
111
  requirements: []
95
112
  rubyforge_project:
96
- rubygems_version: 2.5.1
113
+ rubygems_version: 2.4.5.1
97
114
  signing_key:
98
115
  specification_version: 4
99
116
  summary: Docker compose wrapper for managing containers.
100
117
  test_files: []
118
+ has_rdoc: