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.
- checksums.yaml +4 -4
- data/exe/harbr +87 -0
- data/lib/harbr/version.rb +1 -1
- metadata +33 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 21ab6128c65c6878bdc71e035e0c6d2b61accd4906f3cff99ea01878aa70f463
|
|
4
|
+
data.tar.gz: 7159ac889987e05ac5e28d835c5c3ea0a915ef639a5040b3c111f0f3a72b9336
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
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
|
+
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
|