harbr 0.0.0 → 0.0.1

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.
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