harbr 0.0.4 → 0.0.5

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
  SHA256:
3
- metadata.gz: 757a47e061cb1c14cf31efdd949df3536a9671b5dbe9673ba5479e89e4ec1b8d
4
- data.tar.gz: 6d3e93523572bf11b506ed803869b2494b83d1abb26d1db57232dd24e18c2dd8
3
+ metadata.gz: 982d7720d122df743daabe03e8dab68bae4f7a9bce1630273d6048020bbfb7a5
4
+ data.tar.gz: 8e34045027b5b1f3c34585249ee8e9ce34a0cad3dc6a791e457098b53f6ad149
5
5
  SHA512:
6
- metadata.gz: 3c840f224d4dca5540997f1a5dc4bd18b0eb00cb29af201a9fe161ab4ab593ab6b19d2b8873a469d9a38de2fa21d3b584e528894a4da69fe0858f4f9fb90b03a
7
- data.tar.gz: 19e91fef482a15854c26020429b0a2e2c508394773807b84d26b4da88eacbc431b807d3572150e4bbda118a3912ca91671afa7cb97e1e120783c48a982fe3ef0
6
+ metadata.gz: 3501f933ff90e155ccf27a59288902a8855efd329a9dc51a9abb379e44ee0542170978b45eff28ba740927ef2b4ff7975273a5018970d9e5d5c87719324f17eb
7
+ data.tar.gz: 3eb0f64c9c7447ed11cefc5527704b0d8dd78bd49563adb488bc07b32639dfde665d3a50b244995d4a07af18716d8cd9da1408a3f23a648dee6d34871e57f6bc
data/exe/harbr CHANGED
@@ -3,6 +3,7 @@ require 'thor'
3
3
  require 'listen'
4
4
  require 'dddr'
5
5
  require 'harbr'
6
+ require 'sucker_punch'
6
7
  require 'terminal-table'
7
8
 
8
9
  class HarbrCLI < Thor
@@ -76,13 +77,25 @@ class HarbrCLI < Thor
76
77
  return if @@listener
77
78
 
78
79
  puts "Starting Harbr, listening to #{directory}"
80
+
79
81
  @@listener = Listen.to(directory) do |modified, added, removed|
80
- puts "Modified: #{modified}" unless modified.empty?
81
- puts "Added: #{added}" unless added.empty?
82
- puts "Removed: #{removed}" unless removed.empty?
82
+ unless added.empty?
83
+ next if added.first.include? "vendor"
84
+ next if added.first.include? ".git"
85
+ /\/var\/harbr\/(?<container>.+)\/.*/.match(added.first)
86
+ config = "/var/harbr/#{$1}/config/manifest.yml"
87
+ Harbr::Container::Job.perform_async(config)
88
+ end
89
+
90
+ # unless removed.empty?
91
+ # /\/var\/harbr\/(?<container>.+)\/.*/.match(removed.first)
92
+ # config = "/var/harbr/#{$1}/config/manifest.yml"
93
+
94
+ # puts $1
95
+
83
96
 
84
- puts directory
85
- # Add your logic here for handling these changes
97
+ # end
98
+
86
99
  end
87
100
  @@listener.start # not blocking
88
101
  sleep
data/lib/harbr/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Harbr
4
- VERSION = "0.0.4"
4
+ VERSION = "0.0.5"
5
5
  end
data/lib/harbr.rb CHANGED
@@ -1,13 +1,83 @@
1
1
  # frozen_string_literal: true
2
2
  require_relative "harbr/version"
3
3
  require 'dddr'
4
+ require 'sucker_punch'
4
5
 
5
6
  module Harbr
6
7
  class Error < StandardError; end
7
8
  class Container
9
+ class Job
10
+ include SuckerPunch::Job
11
+
12
+ def perform(config)
13
+
14
+ puts "Harbr Job!"
15
+ puts config
16
+
17
+ end
18
+ end
19
+
8
20
  include Dddr::Entity
9
21
  attr_accessor :name, :host_header, :ip, :port
10
22
  end
11
23
 
24
+ class Port
25
+
26
+ include Dddr::Entity
27
+ attr_accessor :host_header, :number
28
+
29
+ queries do
30
+ def has_port_number?(number)
31
+ all.find {|port| port.number == number.to_i}
32
+ end
33
+ def assigned_a_port?(host_header)
34
+ all.find {|port| port.host_header == host_header}
35
+ end
36
+ end
37
+ class Pool
38
+ def initialize(port_range=50000..51000)
39
+
40
+ @repository = Port::Repository.new
41
+
42
+ port_range.each do |number|
43
+
44
+ port = Port.new
45
+ port.number = number
46
+
47
+ unless @repository.has_port_number? number
48
+ @repository.add(port)
49
+ puts port.number.to_s + " added!"
50
+ end
51
+ end
52
+
53
+ end
54
+
55
+ def get_port(host_header)
56
+
57
+ port = @repository.assigned_a_port?(host_header)
58
+ return port unless port.nil?
59
+
60
+ port = ports.shuffle.sample
61
+ port.host_header = host_header
62
+ @repository.update(port)
63
+ port
64
+ end
65
+
66
+ def return_port(port)
67
+ port.host_header = nil
68
+ @repository.update(port)
69
+ port.host_header.nil?
70
+ end
71
+
72
+ def ports
73
+ @repository.all
74
+ end
75
+
76
+ end
77
+
78
+
79
+ end
80
+
81
+
12
82
  # Your code goes here...
13
83
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: harbr
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
  - Delaney Kuldvee Burke
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.0.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: sucker_punch
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 3.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.1.0
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: terminal-table
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -76,8 +90,6 @@ executables:
76
90
  extensions: []
77
91
  extra_rdoc_files: []
78
92
  files:
79
- - ".data/development/Harbr::Container.dir"
80
- - ".data/development/Harbr::Container.pag"
81
93
  - ".rspec"
82
94
  - ".standard.yml"
83
95
  - CHANGELOG.md
File without changes
Binary file