harbr 0.0.0 → 0.0.2

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 +93 -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: 0c991fd2045838caeae3e665daa792d2b9abd0fefd57cb342e3cd05c9909c1d1
4
+ data.tar.gz: 92aa2478278e376959b3ac822c8444ae61d8292cd35347bda5f9fc6dd91bfa5e
5
5
  SHA512:
6
- metadata.gz: 1f1217ef9b4e4a9d39d6166cfd452342a1da29238792dba9c1c36caf11999c2e7f1196e1f4ea1bf09ee8efbeb3fc63cd7cbc6e5be6139755b0038886ae711b0f
7
- data.tar.gz: ee2170e944dd81038451c80b0ee0d470b61c9bfaf26f81d50f56ff956c4a89b38f5df65208e69dde6df1444194b160c141900a73deb8023ed1a4497561d39bd5
6
+ metadata.gz: 78be47972c8676ff7f02182338c66be136ea2446ca338d15d8b46abdc9d8cc08075cc1089dc8e6e944adeed9ac5d3037160b9c27020cb3e5b9fd5c983df9a212
7
+ data.tar.gz: 113c3d9f83e5a0b8519b9ed79cd83081830067290250647d5b08028313a1af34a1168366c3d35397a8a58dbac6f1c47e7d7e8113d48b3e74ca4d59a8dedc8b18
data/exe/harbr ADDED
@@ -0,0 +1,93 @@
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
+
26
+ def install_with_apt(package)
27
+ puts "Installing #{package} using apt..."
28
+ system("sudo apt install #{package}") or raise "Failed to install #{package}"
29
+ end
30
+
31
+ end
32
+
33
+ desc "setup", "Set up Harbr environment"
34
+ def setup
35
+ # Check and create /var/harbr directory
36
+ check_and_create_directory('/var/harbr')
37
+
38
+ # Check for Ruby, Traefik, and runit, and install if necessary
39
+ install_with_snap('ruby') unless command_exists?('ruby')
40
+ install_with_snap('traefik') unless command_exists?('traefik')
41
+ install_with_apt('runit') unless command_exists?('runit')
42
+
43
+ puts "Setup completed successfully."
44
+ end
45
+ desc "start [DIRECTORY]", "Start listening to a directory for changes"
46
+ def start(directory = DEFAULT_DIRECTORY)
47
+ return if @@listener
48
+
49
+ puts "Starting Harbr, listening to #{directory}"
50
+ @@listener = Listen.to(directory) do |modified, added, removed|
51
+ puts "Modified: #{modified}" unless modified.empty?
52
+ puts "Added: #{added}" unless added.empty?
53
+ puts "Removed: #{removed}" unless removed.empty?
54
+ # Add your logic here for handling these changes
55
+ end
56
+ @@listener.start # not blocking
57
+ sleep
58
+ end
59
+
60
+ desc "stop", "Stop Harbr"
61
+ def stop
62
+ if @@listener
63
+ @@listener.stop
64
+ @@listener = nil
65
+ puts "Harbr has been stopped."
66
+ else
67
+ puts "Harbr is not running."
68
+ end
69
+ end
70
+
71
+ desc "pause", "Pause Harbr"
72
+ def pause
73
+ if @@listener
74
+ @@listener.pause
75
+ puts "Harbr has been paused."
76
+ else
77
+ puts "Harbr is not running or already paused."
78
+ end
79
+ end
80
+
81
+ desc "resume", "Resume Harbr"
82
+ def resume
83
+ if @@listener
84
+ @@listener.start
85
+ puts "Harbr has been resumed."
86
+ else
87
+ puts "Harbr is not running or already active."
88
+ end
89
+ end
90
+ end
91
+
92
+ HarbrCLI.start(ARGV)
93
+
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.2"
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.2
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