harbr 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/exe/harbr +87 -0
  3. data/lib/harbr/version.rb +1 -1
  4. metadata +33 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f911f238ab0b8cc5f26897554b74cb1f145362091cbff43b1438640aa5c66d0
4
- data.tar.gz: df3ec78b988d81f0607f432b6f9bb54c3bf214dbc429fd097b9cbf72ebe3563f
3
+ metadata.gz: 21ab6128c65c6878bdc71e035e0c6d2b61accd4906f3cff99ea01878aa70f463
4
+ data.tar.gz: 7159ac889987e05ac5e28d835c5c3ea0a915ef639a5040b3c111f0f3a72b9336
5
5
  SHA512:
6
- metadata.gz: 1f1217ef9b4e4a9d39d6166cfd452342a1da29238792dba9c1c36caf11999c2e7f1196e1f4ea1bf09ee8efbeb3fc63cd7cbc6e5be6139755b0038886ae711b0f
7
- data.tar.gz: ee2170e944dd81038451c80b0ee0d470b61c9bfaf26f81d50f56ff956c4a89b38f5df65208e69dde6df1444194b160c141900a73deb8023ed1a4497561d39bd5
6
+ metadata.gz: 6fe1535cc59a65bd63d610b9550589c440ded23b713b47086eaa458f5c5436af9d7a08ce646be65692ac1b8c85b315fb40306b9153f2a5a723c50d9c179ab9ef
7
+ data.tar.gz: 532be3d257e49ea703940c925f92d7ca2b7d0d4693b317f30cecba0502c291a169a90b4aa5acec8a0a9deca4920f4c33ef4c11f75e3bd6909109c07699d01b84
data/exe/harbr ADDED
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env ruby
2
+ require 'thor'
3
+ require 'listen'
4
+
5
+ class HarbrCLI < Thor
6
+ DEFAULT_DIRECTORY = '/var/harbr'
7
+ @@listener = nil
8
+
9
+ no_commands do
10
+ def check_and_create_directory(path)
11
+ unless Dir.exist?(path)
12
+ puts "Creating directory: #{path}"
13
+ FileUtils.mkdir_p(path)
14
+ end
15
+ end
16
+
17
+ def command_exists?(command)
18
+ system("command -v #{command} > /dev/null 2>&1")
19
+ end
20
+
21
+ def install_with_snap(package)
22
+ puts "Installing #{package} using Snap..."
23
+ system("sudo snap install #{package}") or raise "Failed to install #{package}"
24
+ end
25
+ end
26
+
27
+ desc "setup", "Set up Harbr environment"
28
+ def setup
29
+ # Check and create /var/harbr directory
30
+ check_and_create_directory('/var/harbr')
31
+
32
+ # Check for Ruby, Traefik, and runit, and install if necessary
33
+ install_with_snap('ruby') unless command_exists?('ruby')
34
+ install_with_snap('traefik') unless command_exists?('traefik')
35
+ install_with_snap('runit') unless command_exists?('runit')
36
+
37
+ puts "Setup completed successfully."
38
+ end
39
+ desc "start [DIRECTORY]", "Start listening to a directory for changes"
40
+ def start(directory = DEFAULT_DIRECTORY)
41
+ return if @@listener
42
+
43
+ puts "Starting Harbr, listening to #{directory}"
44
+ @@listener = Listen.to(directory) do |modified, added, removed|
45
+ puts "Modified: #{modified}" unless modified.empty?
46
+ puts "Added: #{added}" unless added.empty?
47
+ puts "Removed: #{removed}" unless removed.empty?
48
+ # Add your logic here for handling these changes
49
+ end
50
+ @@listener.start # not blocking
51
+ sleep
52
+ end
53
+
54
+ desc "stop", "Stop Harbr"
55
+ def stop
56
+ if @@listener
57
+ @@listener.stop
58
+ @@listener = nil
59
+ puts "Harbr has been stopped."
60
+ else
61
+ puts "Harbr is not running."
62
+ end
63
+ end
64
+
65
+ desc "pause", "Pause Harbr"
66
+ def pause
67
+ if @@listener
68
+ @@listener.pause
69
+ puts "Harbr has been paused."
70
+ else
71
+ puts "Harbr is not running or already paused."
72
+ end
73
+ end
74
+
75
+ desc "resume", "Resume Harbr"
76
+ def resume
77
+ if @@listener
78
+ @@listener.start
79
+ puts "Harbr has been resumed."
80
+ else
81
+ puts "Harbr is not running or already active."
82
+ end
83
+ end
84
+ end
85
+
86
+ HarbrCLI.start(ARGV)
87
+
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.0"
4
+ VERSION = "0.0.1"
5
5
  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.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delaney Kuldvee Burke
@@ -9,13 +9,42 @@ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
11
  date: 2023-12-02 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: listen
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.8'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: thor
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.3'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.3'
13
41
  description: Harbr is a versatile tool designed to streamline the deployment, management,
14
42
  and scaling of Rack-based applications. It integrates with version control and process
15
43
  supervision systems to ensure smooth and consistent application delivery.
16
44
  email:
17
45
  - delaney@zero2one.ee
18
- executables: []
46
+ executables:
47
+ - harbr
19
48
  extensions: []
20
49
  extra_rdoc_files: []
21
50
  files:
@@ -26,6 +55,7 @@ files:
26
55
  - LICENSE.txt
27
56
  - README.md
28
57
  - Rakefile
58
+ - exe/harbr
29
59
  - hero.png
30
60
  - lib/harbr.rb
31
61
  - lib/harbr/version.rb