penkit 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d70da81abc9263879c5ee641dcc24d19bf7d4fea
4
- data.tar.gz: 238e150cd6ff9bb69cdaa3b0276cf09ca38c5cdf
3
+ metadata.gz: 4aff7392e33cb2150d8948db8879aff815049bcf
4
+ data.tar.gz: d9d84dbfbe1364f39e1641c9bd503f3036f87025
5
5
  SHA512:
6
- metadata.gz: 438fdc93bad785f612d4e781f635be78d9296b11fcd8bd03517b4b5429af9e5879aae33f504d1a2e66b831d48f45ac167ef68b3fcc3b25bc4d5bcbb6f195841e
7
- data.tar.gz: 9d565f1cfbf336705b4ac8762b4c16a29c04c81d0e1762620e6e5b35079f70a24ae9d06870385876f526b2df6c76ac0a28fd13e620c39f03c316d35323000cb4
6
+ metadata.gz: c7fd8b16d5960568d8191fc722ea7e0fcea1026b53ef9bc9811adced3862bb3ee276003feff96df9541533fc91a8da07cb7c1acacf84fce5d67f33c4513c6f54
7
+ data.tar.gz: e24ed656da862991a16d2da55692f2bda92220eded21ff6e00ae37cf14e14de038c411b43a8fbb7e6ec03f6a7a88704fe311977371833632702230e3bcfb6259
@@ -0,0 +1,32 @@
1
+ version: "2.0"
2
+ services:
3
+ wordpress:
4
+ image: ${DOCKER_IMAGE}
5
+ container_name: ${DOCKER_NAME}
6
+ depends_on:
7
+ - mysql
8
+ environment:
9
+ MYSQL_HOST: ${DOCKER_NAME}_mysql
10
+ MYSQL_USER: phpuser
11
+ MYSQL_PASSWORD: password
12
+ MYSQL_NAME: phpdb
13
+ labels:
14
+ penkit: "true"
15
+ networks:
16
+ penkit:
17
+
18
+ mysql:
19
+ image: penkit/mysql:latest
20
+ container_name: ${DOCKER_NAME}_mysql
21
+ environment:
22
+ MYSQL_USER: phpuser
23
+ MYSQL_PASSWORD: password
24
+ MYSQL_DATABASE: phpdb
25
+ labels:
26
+ penkit: "true"
27
+ networks:
28
+ penkit:
29
+
30
+ networks:
31
+ penkit:
32
+ external: true
@@ -1,8 +1,8 @@
1
1
  module Penkit
2
2
  class CLI < Thor
3
- desc "ps", "List penkit docker containers"
4
- def ps
5
- docker.ps
3
+ desc "ps [ARGS...]", "List penkit docker containers"
4
+ def ps(*args)
5
+ docker.ps(*args)
6
6
  end
7
7
  end
8
8
  end
@@ -0,0 +1,8 @@
1
+ module Penkit
2
+ class CLI < Thor
3
+ desc "pull IMAGE", "Pull most recent version of an image"
4
+ def pull(image)
5
+ docker.pull(image)
6
+ end
7
+ end
8
+ end
@@ -1,6 +1,7 @@
1
1
  module Penkit
2
2
  class CLI < Thor
3
3
  desc "rm [CONTAINER...]", "Remove penkit docker containers"
4
+ option :force, desc: "Do not ask to confirm removal", type: :boolean, aliases: "f"
4
5
  def rm(*containers)
5
6
  if containers.any?
6
7
  docker.rm(*containers)
@@ -17,6 +18,7 @@ module Penkit
17
18
  end
18
19
 
19
20
  def rm_all?(containers)
21
+ return true if options[:force]
20
22
  return false if containers.size == 0
21
23
  message = "Are you sure you want to remove %d %s? [y/N]"
22
24
  word = containers.size > 1 ? "containers" : "container"
@@ -3,6 +3,8 @@ module Penkit
3
3
  desc "start [OPTIONS] IMAGE", "Start a penkit docker image"
4
4
  option :name, desc: "Override name and hostname of container"
5
5
  def start(image)
6
+ puts "Pulling latest image..."
7
+ docker.pull(image, quiet: true) # Quietly updates the image
6
8
  if has_config?(image)
7
9
  opts = options.dup
8
10
  opts[:name] ||= unique_name(image)
@@ -1,6 +1,7 @@
1
1
  module Penkit
2
2
  class CLI < Thor
3
3
  desc "stop [CONTAINER...]", "Stop penkit docker containers"
4
+ option :force, desc: "Do not ask to confirm stop", type: :boolean, aliases: "f"
4
5
  def stop(*containers)
5
6
  if containers.any?
6
7
  docker.stop(*containers)
@@ -17,6 +18,7 @@ module Penkit
17
18
  end
18
19
 
19
20
  def stop_all?(containers)
21
+ return true if options[:force]
20
22
  return false if containers.size == 0
21
23
  message = "Are you sure you want to stop %d %s? [y/N]"
22
24
  word = containers.size > 1 ? "containers" : "container"
@@ -4,6 +4,7 @@ require "penkit/cli/container/ps"
4
4
  require "penkit/cli/container/rm"
5
5
  require "penkit/cli/container/start"
6
6
  require "penkit/cli/container/stop"
7
+ require "penkit/cli/container/pull"
7
8
  require "penkit/cli/tools"
8
9
 
9
10
  module Penkit
@@ -17,11 +17,13 @@ module Penkit
17
17
  docker.run("cli:metasploit", *args)
18
18
  end
19
19
 
20
- desc "netcat [ARGS...]", "Run netcat on the penkit docker network"
20
+ desc "nc|netcat [ARGS...]", "Run netcat on the penkit docker network"
21
21
  def netcat(*args)
22
22
  docker.run("cli:net", "nc", *args)
23
23
  end
24
24
 
25
+ map "nc" => "netcat"
26
+
25
27
  desc "nmap [ARGS...]", "Run nmap on the penkit docker network"
26
28
  def nmap(*args)
27
29
  docker.run("cli:net", "nmap", *args)
@@ -4,6 +4,7 @@ require "penkit/docker/ps"
4
4
  require "penkit/docker/rm"
5
5
  require "penkit/docker/start"
6
6
  require "penkit/docker/stop"
7
+ require "penkit/docker/pull"
7
8
 
8
9
  module Penkit
9
10
  class Docker
@@ -12,8 +12,8 @@ module Penkit
12
12
  IO.popen(["docker", "ps", "-q", *filter_options]).readlines.map(&:strip)
13
13
  end
14
14
 
15
- def ps
16
- exec("docker", "ps", *filter_options)
15
+ def ps(*args)
16
+ exec("docker", "ps", *filter_options, *args)
17
17
  end
18
18
 
19
19
  private
@@ -0,0 +1,11 @@
1
+ module Penkit
2
+ class Docker
3
+ def pull(image, options={})
4
+ if options[:quiet]
5
+ system("docker", "pull", image_url(image), out: File::NULL, err: File::NULL)
6
+ else
7
+ system("docker", "pull", image_url(image))
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Penkit
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: penkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Don Humphreys
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-03-18 00:00:00.000000000 Z
12
+ date: 2017-03-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -65,10 +65,12 @@ files:
65
65
  - LICENSE
66
66
  - TERMS
67
67
  - bin/penkit
68
+ - config/php.yml
68
69
  - config/wordpress.yml
69
70
  - lib/penkit.rb
70
71
  - lib/penkit/cli.rb
71
72
  - lib/penkit/cli/container/ps.rb
73
+ - lib/penkit/cli/container/pull.rb
72
74
  - lib/penkit/cli/container/rm.rb
73
75
  - lib/penkit/cli/container/start.rb
74
76
  - lib/penkit/cli/container/stop.rb
@@ -77,6 +79,7 @@ files:
77
79
  - lib/penkit/docker.rb
78
80
  - lib/penkit/docker/network.rb
79
81
  - lib/penkit/docker/ps.rb
82
+ - lib/penkit/docker/pull.rb
80
83
  - lib/penkit/docker/rm.rb
81
84
  - lib/penkit/docker/start.rb
82
85
  - lib/penkit/docker/stop.rb