dockerun 0.1.14

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6626fb24f14182ca40924b86c645115f4a18d14da1d48cfd9832fb85b7aebf47
4
+ data.tar.gz: 4a19edb06eb072198af2ee92db3a6aa7e3d086ce3057940530abd5379defcc54
5
+ SHA512:
6
+ metadata.gz: 3e0f07f26555f30b7fa03ae2e17f84adb3a1430db7ce1d8ad6ae228e2604f896d00744ec7c56fc90294e07d1dfc115ee9782b6035975615d7383cb7d2a831334
7
+ data.tar.gz: d623e2f25169ee8a137c14b8aaeac5192f71f1e836b9740d3d93956e530338de854497ae752a1ea8105b92bf1c7f500b8d22353e3ff2308d55ca6e9fc3d2a182
@@ -0,0 +1,30 @@
1
+ ---
2
+ dockerun:
3
+ - :version: 0.1.0
4
+ :timestamp: 1670316183.6472232
5
+ - :version: 0.1.1
6
+ :timestamp: 1670316312.4779773
7
+ - :version: 0.1.2
8
+ :timestamp: 1670322141.4019918
9
+ - :version: 0.1.3
10
+ :timestamp: 1670322571.6620317
11
+ - :version: 0.1.4
12
+ :timestamp: 1670322830.4816852
13
+ - :version: 0.1.5
14
+ :timestamp: 1670421296.0570104
15
+ - :version: 0.1.6
16
+ :timestamp: 1670421483.0685005
17
+ - :version: 0.1.7
18
+ :timestamp: 1670557200.7343419
19
+ - :version: 0.1.8
20
+ :timestamp: 1670557489.8592377
21
+ - :version: 0.1.9
22
+ :timestamp: 1670557778.5624037
23
+ - :version: 0.1.10
24
+ :timestamp: 1670579289.0579133
25
+ - :version: 0.1.11
26
+ :timestamp: 1670640649.1748028
27
+ - :version: 0.1.12
28
+ :timestamp: 1670640902.591357
29
+ - :version: 0.1.13
30
+ :timestamp: 1670649972.645625
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,19 @@
1
+
2
+ FROM jruby:9.4.0-jdk11
3
+ LABEL version="0.1" description="Dockerfile generated by dockerun" maintainer="chris"
4
+
5
+ # Dockerfile entries here
6
+ RUN apt-get update && apt-get install -y sudo
7
+
8
+ RUN groupadd -f -g 1000 chris && \
9
+ useradd -u 1000 -g 1000 -m chris && \
10
+ usermod -aG sudo chris && \
11
+ echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
12
+
13
+ USER chris
14
+
15
+ RUN sudo apt-get install -y curl git
16
+
17
+ # ENTRYPOINT [ "/bin/bash" ]
18
+ # CMD [ "/bin/bash", "--login" ]
19
+ CMD [ "/bin/bash", "--login" ]
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in dockerun.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
9
+
10
+ gem "rspec", "~> 3.0"
11
+
12
+ #gem 'docker-cli', git: "docker-cli", branch: "master"
13
+
data/Gemfile.lock ADDED
@@ -0,0 +1,84 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ dockerun (0.1.12)
5
+ docker-cli
6
+ teLogger (~> 0.2.0)
7
+ toolrack (~> 0.19.1)
8
+ tty-command (~> 0.10.1)
9
+ tty-option (~> 0.2.0)
10
+
11
+ GEM
12
+ remote: https://rubygems.org/
13
+ specs:
14
+ base58 (0.2.3)
15
+ devops_assist (0.3.1)
16
+ git_cli
17
+ git_cli_prompt
18
+ gvcs
19
+ teLogger
20
+ toolrack
21
+ tty-prompt
22
+ diff-lcs (1.5.0)
23
+ docker-cli (0.1.1)
24
+ ptools
25
+ teLogger
26
+ toolrack
27
+ tty-command
28
+ tty-prompt
29
+ git_cli (0.10.0)
30
+ gvcs
31
+ ptools (~> 1.4.0)
32
+ teLogger
33
+ toolrack
34
+ git_cli_prompt (0.3.1)
35
+ teLogger
36
+ toolrack
37
+ tty-prompt
38
+ gvcs (0.1.0)
39
+ pastel (0.8.0)
40
+ tty-color (~> 0.5)
41
+ ptools (1.4.3)
42
+ rake (13.0.6)
43
+ rspec (3.12.0)
44
+ rspec-core (~> 3.12.0)
45
+ rspec-expectations (~> 3.12.0)
46
+ rspec-mocks (~> 3.12.0)
47
+ rspec-core (3.12.0)
48
+ rspec-support (~> 3.12.0)
49
+ rspec-expectations (3.12.0)
50
+ diff-lcs (>= 1.2.0, < 2.0)
51
+ rspec-support (~> 3.12.0)
52
+ rspec-mocks (3.12.0)
53
+ diff-lcs (>= 1.2.0, < 2.0)
54
+ rspec-support (~> 3.12.0)
55
+ rspec-support (3.12.0)
56
+ teLogger (0.2.2)
57
+ toolrack (0.19.1)
58
+ base58
59
+ tty-color (0.6.0)
60
+ tty-command (0.10.1)
61
+ pastel (~> 0.8)
62
+ tty-cursor (0.7.1)
63
+ tty-option (0.2.0)
64
+ tty-prompt (0.23.1)
65
+ pastel (~> 0.8)
66
+ tty-reader (~> 0.8)
67
+ tty-reader (0.9.0)
68
+ tty-cursor (~> 0.7)
69
+ tty-screen (~> 0.8)
70
+ wisper (~> 2.0)
71
+ tty-screen (0.8.1)
72
+ wisper (2.0.1)
73
+
74
+ PLATFORMS
75
+ x86_64-linux
76
+
77
+ DEPENDENCIES
78
+ devops_assist
79
+ dockerun!
80
+ rake (~> 13.0)
81
+ rspec (~> 3.0)
82
+
83
+ BUNDLED WITH
84
+ 2.2.28
data/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # Dockerun
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/dockerun`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'dockerun'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle install
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install dockerun
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/dockerun.
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+
6
+ require 'devops_assist'
7
+
8
+ RSpec::Core::RakeTask.new(:spec)
9
+
10
+ task default: :spec
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "dockerun"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/dockerun.gemspec ADDED
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/dockerun/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "dockerun"
7
+ spec.version = Dockerun::VERSION
8
+ spec.authors = ["Ian"]
9
+ spec.email = ["cameronian0@protonmail.com"]
10
+
11
+ spec.summary = ""
12
+ spec.description = ""
13
+ spec.homepage = ""
14
+ spec.required_ruby_version = ">= 2.4.0"
15
+
16
+ #spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
17
+
18
+ #spec.metadata["homepage_uri"] = spec.homepage
19
+ #spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
20
+ #spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
+ `git ls-files -z`.split("\x0").reject do |f|
26
+ (f == __FILE__) || f.match(%r{\A(?:(?:test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
27
+ end
28
+ end
29
+ spec.bindir = "exe"
30
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
+ spec.require_paths = ["lib"]
32
+
33
+ spec.add_dependency 'toolrack', '~> 0.19.1'
34
+ spec.add_dependency 'teLogger', '~> 0.2.0'
35
+
36
+ spec.add_dependency 'tty-command', "~> 0.10.1"
37
+ spec.add_dependency 'tty-option', "~> 0.2.0"
38
+
39
+ spec.add_dependency 'docker-cli'
40
+
41
+ spec.add_development_dependency 'devops_assist'
42
+
43
+ # Uncomment to register a new dependency of your gem
44
+ # spec.add_dependency "example-gem", "~> 1.0"
45
+
46
+ # For more information and examples about making a new gem, checkout our
47
+ # guide at: https://bundler.io/guides/creating_gem.html
48
+ end
data/exe/dockerun ADDED
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'tty/prompt'
4
+ require_relative '../lib/dockerun'
5
+
6
+ if ARGV.length == 0
7
+ puts "dockerun version #{Dockerun::VERSION}"
8
+ puts Dockerun::Command::Dockerun.new.help
9
+
10
+ else
11
+ pmt = TTY::Prompt.new
12
+
13
+ cmd = Dockerun::Command::Dockerun.new
14
+ res = cmd.parse(ARGV).params.to_h
15
+ case res[:command].downcase
16
+ when "init"
17
+ initCmd = Dockerun::Command::Init.new
18
+ argv = ARGV[1..-1]
19
+ res2 = initCmd.parse(argv).run do |ops, val|
20
+ case ops
21
+ when :multiple_templates_detected
22
+ pmt.select("There are multiple templates available. Please select one of the template : ") do |m|
23
+ val.each do |v|
24
+ m.choice v, v
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+ STDOUT.puts "\nDockerfile written to '#{res2}'\n\n"
31
+
32
+ when "run", "r"
33
+
34
+ begin
35
+ runCmd = Dockerun::Command::Run.new
36
+ argv = ARGV[1..-1]
37
+ runCmd.parse(argv).run
38
+ rescue TTY::Reader::InputInterrupt
39
+ end
40
+
41
+
42
+ when "run-new-container", "rnc"
43
+
44
+ begin
45
+ runCmd = Dockerun::Command::RunNewContainer.new
46
+ argv = ARGV[1..-1]
47
+ runCmd.parse(argv).run
48
+ rescue TTY::Reader::InputInterrupt
49
+ end
50
+
51
+
52
+ when "run-new-image", "rni"
53
+
54
+ begin
55
+ runCmd = Dockerun::Command::RunNewImage.new
56
+ argv = ARGV[1..-1]
57
+ runCmd.parse(argv).run
58
+ rescue TTY::Reader::InputInterrupt
59
+ end
60
+
61
+
62
+ when "rmi", "remove-image"
63
+ begin
64
+ riCmd = Dockerun::Command::ResetImage.new
65
+ argv = ARGV[1..-1]
66
+ riCmd.parse(argv).run
67
+ rescue TTY::Reader::InputInterrupt
68
+ end
69
+
70
+
71
+ when "remove-container","rmc"
72
+ # remove container
73
+ begin
74
+ riCmd = Dockerun::Command::RemoveContainer.new
75
+ argv = ARGV[1..-1]
76
+ riCmd.parse(argv).run
77
+ rescue TTY::Reader::InputInterrupt
78
+ end
79
+
80
+
81
+ else
82
+ STDERR.puts "Unknown command '#{res[:command]}'"
83
+ STDOUT.puts cmd.help
84
+ end
85
+ end
86
+
@@ -0,0 +1,17 @@
1
+
2
+ require 'tty/prompt'
3
+
4
+ module Dockerun
5
+ module CliHelper
6
+ module CliPrompt
7
+
8
+ def cli
9
+ if @pmt.nil?
10
+ @pmt = TTY::Prompt.new
11
+ end
12
+ @pmt
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,30 @@
1
+
2
+ require 'tty/option'
3
+
4
+ module Dockerun
5
+ module Command
6
+
7
+ class Dockerun
8
+ include TTY::Option
9
+
10
+ usage do
11
+ program "dockerun"
12
+ no_command
13
+ end
14
+
15
+ argument :command do
16
+ required
17
+ desc "Command for the dockerun operations. Supported: init, run (r), run-new-container (rnc), run-new-image (rni), remove-image (rmi), remove-container (rmc)"
18
+ end
19
+
20
+ def run
21
+ if params[:help]
22
+ print help
23
+ exit
24
+ end
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,75 @@
1
+
2
+ require 'tty/option'
3
+
4
+ require_relative '../template/template_writter'
5
+
6
+ module Dockerun
7
+ module Command
8
+
9
+ class Init
10
+ include TTY::Option
11
+ include TR::CondUtils
12
+
13
+ class MultipleTemplateDetected < StandardError; end
14
+
15
+ usage do
16
+ program "dockerun"
17
+ command "init"
18
+ desc "Initialize a Dockerfile template in given location"
19
+ end
20
+
21
+ argument :location do
22
+ required
23
+ desc "Location where the Dockerfile template shall be written"
24
+ end
25
+
26
+ def run(&block)
27
+ if params[:help]
28
+ print help
29
+ exit
30
+
31
+ else
32
+ init_dockerfile(&block)
33
+ end
34
+ end
35
+
36
+ def init_dockerfile(&block)
37
+
38
+ loc = "."
39
+ loc = params[:location] if not_empty?(params[:location])
40
+
41
+ loc = File.expand_path(loc)
42
+ out = nil
43
+ if File.directory?(loc)
44
+ out = File.join(loc, "Dockerfile.dockerun")
45
+ else
46
+ out = File.join(File.dirname(loc), "Dockerfile.dockerun")
47
+ end
48
+
49
+ avail = ::Dockerun::Template::TemplateEngine.available_templates
50
+ selTemp = nil
51
+ if avail.length > 1
52
+ if block
53
+ selTemp = block.call(:multiple_templates_detected, avail)
54
+ else
55
+ raise MultipleTemplateDetected, "Multiple template is available but no selected is given."
56
+ end
57
+ else
58
+ selTemp = avail.first
59
+ end
60
+
61
+ tw = ::Dockerun::Template::TemplateWriter.new(selTemp)
62
+ res = tw.compile
63
+
64
+ File.open(out, "w") do |f|
65
+ f.write res
66
+ end
67
+
68
+ out
69
+
70
+ end
71
+
72
+ end # class Init
73
+
74
+ end # module Command
75
+ end # module Dockerun
@@ -0,0 +1,99 @@
1
+
2
+ require 'tty/prompt'
3
+ require 'docker/cli'
4
+
5
+ require_relative '../config'
6
+ require_relative '../docker_command_factory_helper'
7
+ require_relative '../cli_prompt'
8
+
9
+
10
+ module Dockerun
11
+ module Command
12
+ class RemoveContainer
13
+ include TTY::Option
14
+ include TR::CondUtils
15
+
16
+ include DockerCommandFactoryHelper
17
+ include CliHelper::CliPrompt
18
+
19
+ usage do
20
+ program "dockerun"
21
+ command "rmc"
22
+ desc "Remove container"
23
+ end
24
+
25
+ def run
26
+ if params[:help]
27
+ print help
28
+ exit(0)
29
+
30
+ else
31
+
32
+ config = ::Dockerun::Config.from_storage
33
+
34
+ imageName = nil
35
+ if is_empty?(config.image_names)
36
+ raise Error, "No image found"
37
+ elsif config.image_names.length == 1
38
+ imageName = config.image_names.first
39
+ else
40
+ imageName = cli.select("Please select one of the image below to start : ") do |m|
41
+ config.image_names.each do |n|
42
+ m.choice n,n
43
+ end
44
+ end
45
+ end
46
+
47
+ if is_empty?(config.container_names(imageName))
48
+ STDOUT.puts "There is no container registered under image '#{imageName}'"
49
+ else
50
+
51
+ loop do
52
+
53
+ sel = cli.select("Please select the container that would like to be removed : ") do |m|
54
+ config.container_names(imageName).each do |n|
55
+ m.choice n,n
56
+ end
57
+
58
+ m.choice "Quit", :quit
59
+ end
60
+
61
+ case sel
62
+ when :quit
63
+ break
64
+ else
65
+ dcFact.stop_container(sel).run
66
+ res = dcFact.delete_container(sel).run
67
+ if res.failed?
68
+ if res.err_stream =~ /No such container/
69
+ remove = cli.yes?("It seems the container already deleted. Do you want to remove it from the list?")
70
+ if remove
71
+ config.remove_container(imageName, sel)
72
+ config.to_storage
73
+ break if is_empty?(config.container_names(imageName))
74
+ end
75
+ else
76
+ STDERR.puts "Failed to delete container '#{sel}'. Error was : #{res.err_stream}"
77
+ end
78
+ else
79
+
80
+ config.remove_container(imageName, sel)
81
+ config.to_storage
82
+
83
+ break if is_empty?(config.container_names(imageName))
84
+ end
85
+
86
+ end
87
+
88
+ end
89
+ end
90
+
91
+
92
+
93
+ end
94
+
95
+ end
96
+
97
+ end
98
+ end
99
+ end