grim-reaper 1.0.33 → 1.0.34

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf90fc5100b580ffa60500f336ca9133ef028fc34256926c6c275a8701c7f257
4
- data.tar.gz: 0d87a9ec5d696cbf214ecc99778a5e74694cdd9704a05cebb8370e1892f2c89c
3
+ metadata.gz: 3e995dc62a1b7e977043d7356552ca215771c85375621edaaf9b4ee9e62ccdc5
4
+ data.tar.gz: f01964b9bb32a4d6ca739e4f78ed9da9af81638832bd7967cadf441ae415e83b
5
5
  SHA512:
6
- metadata.gz: dbaa23420bd55bfa12531eae985d01bdec6251737922e079a48fd934c1c7c7343e9fb6d1d85dde978fa7ead83deef69890ef08c5cba40563543f606becc187b7
7
- data.tar.gz: 35cbdafb5c311119d9b88f697e669d1a5d99fe3890a9ab6e468f878370e5fb3b745b8df9dc218fb4ef52c2c3e7820e221acef31922b20ee29e13bc1a95d0dba3
6
+ metadata.gz: 9ce86d8d9daee4c5aa4a70d04008bf2608840696b111227c7480535b25208f17766207bd0bf54576896df2ccbb00b9e202797d2ac251eb1267b8c2a6314aa18b
7
+ data.tar.gz: 74b57781c00e33a617a08b86a3a2c4dffd27b25d60fe9e443649711af5c36057b0090d9bcd5e1e45d06bd193cb28aee5355b40e336a12718c9a02c5326ed136f
data/README.md CHANGED
@@ -8,12 +8,117 @@
8
8
 
9
9
  Enterprise-grade data protection platform with AI-powered backup decisions, military-grade encryption, multi-algorithm compression, content-based deduplication, real-time monitoring, and automated threat response.
10
10
 
11
+ ## 🚀 What's New in v1.0.34
12
+
13
+ ### 🆕 **Latest.tar.gz Auto-Download System**
14
+ - **Direct Install**: Now downloads complete Grim system from `get.grim.so/latest.tar.gz`
15
+ - **Smart Extraction**: Properly handles `graveyard/reaper/` structure with `--strip-components=2`
16
+ - **Auto-Environment**: Automatically sets `GRIM_ROOT`, `GRIM_LICENSE=FREE`, `GRIM_REAPER=FALSE`
17
+ - **Intelligent Paths**: Tries `/root/.grim`, `$HOME/.grim`, or local directory
18
+ - **Executable Scripts**: Automatically makes all scripts executable
19
+ - **Bashrc Integration**: Adds environment to `~/.bashrc` for persistence
20
+
21
+ ### 🏗️ **Professional Tier System (July 2025)**
22
+ Complete overhaul of pricing structure with 6-tier system:
23
+
24
+ - **🆓 FREE** ($0) - 1GB storage, 15 commands, encrypted auto-backups
25
+ - **💼 BASIC** ($19) - 25GB cloud, 35 commands, removes encryption friction
26
+ - **🚀 PRO** ($49) - 100GB storage, 60 commands, AI-powered decisions
27
+ - **⚔️ MASTER** ($99) - 1TB storage, 200+ commands, enterprise compliance
28
+ - **💀 REAPER** ($499) - Unlimited storage, custom development, 24/7 support
29
+ - **🏢 ENTERPRISE** (Custom) - Global deployment, source code access, strategic partnership
30
+
31
+ ### 🔧 **Critical Infrastructure Fixes (July 26-27, 2025)**
32
+ - **SSL Certificate Crisis**: Fixed `up.grim.so` SSL mismatch (was `cyberboost.com`)
33
+ - **Port Configuration**: Corrected auto-update service from `4745` → `5001`
34
+ - **Auto-Update Daemon**: Restored background version checking for 5000+ installations
35
+ - **Nginx Proxy**: Fixed proxy configuration for proper request routing
36
+ - **Function Dependencies**: Resolved `log_update` function order bugs
37
+
38
+ ### 🔐 **Enhanced Security Features**
39
+ - **OTP Authentication**: TOTP support with QR codes and backup codes
40
+ - **Environment Protection**: Smart environment variable detection and setup
41
+ - **Secure Downloads**: HTTPS-only downloads with SSL verification
42
+ - **Permission Management**: Automatic executable permissions for all scripts
43
+
11
44
  ## 🚀 Quick Install
12
45
 
13
46
  ```bash
14
47
  gem install grim-reaper
15
48
  ```
16
49
 
50
+ ## 🎯 Quick Start Commands
51
+
52
+ ```bash
53
+ # Download and install complete Grim system
54
+ grim download-latest
55
+
56
+ # Setup complete environment (Python, Go, Shell, Scythe)
57
+ grim setup-complete
58
+
59
+ # Check installation status
60
+ grim check-installation
61
+
62
+ # Health check all modules
63
+ grim health
64
+ ```
65
+
66
+ ## 🔐 Enhanced OTP Authentication
67
+
68
+ Enhanced security with One-Time Password (TOTP) authentication:
69
+
70
+ ```bash
71
+ # Setup OTP authentication
72
+ grim otp-setup
73
+
74
+ # Use OTP with commands
75
+ grim health --otp 123456
76
+ grim setup-complete --otp 789012
77
+
78
+ # Check OTP status
79
+ grim otp-status
80
+
81
+ # Verify OTP code
82
+ grim otp-verify 123456
83
+ ```
84
+
85
+ ## 🎯 Ruby Integration
86
+
87
+ ```ruby
88
+ require 'grim_reaper'
89
+
90
+ # Initialize with auto-download
91
+ grim = GrimReaper.new
92
+
93
+ # Download latest if not installed
94
+ installer = GrimReaper::Installer.new
95
+ installer.download_latest_grim unless installer.find_grim_root
96
+
97
+ # Quick operations
98
+ grim.backup('/important/data')
99
+ grim.monitor('/var/log')
100
+ grim.security
101
+ ```
102
+
103
+ ## 📥 Installation Options
104
+
105
+ ### Option 1: Ruby Gem (Recommended)
106
+ ```bash
107
+ gem install grim-reaper
108
+ grim download-latest
109
+ ```
110
+
111
+ ### Option 2: Direct Download
112
+ ```bash
113
+ curl -sSL get.grim.so | sudo bash
114
+ ```
115
+
116
+ ### Option 3: Manual Setup
117
+ ```bash
118
+ gem install grim-reaper
119
+ grim setup-complete
120
+ ```
121
+
17
122
  ## 🎯 Quick Start
18
123
 
19
124
  ```ruby
data/bin/grim CHANGED
@@ -94,13 +94,92 @@ class GrimCLI < Thor
94
94
 
95
95
  begin
96
96
  installer = GrimReaper::Installer.new
97
- installer.setup_complete_environment
98
- puts "✅ Complete Grim Reaper environment setup finished!".colorize(:green)
97
+ if installer.setup_complete_environment
98
+ puts "✅ Complete Grim Reaper environment setup finished!".colorize(:green)
99
+ puts "📁 Installation directory: #{ENV['GRIM_ROOT']}".colorize(:blue)
100
+ puts "🔧 Run 'source ~/.bashrc' to reload environment".colorize(:yellow)
101
+ else
102
+ puts "❌ Setup failed".colorize(:red)
103
+ exit 1
104
+ end
99
105
  rescue => e
100
106
  puts "❌ Setup failed: #{e.message}".colorize(:red)
101
107
  exit 1
102
108
  end
103
109
  end
110
+
111
+ desc "download-latest", "Download and install latest Grim Reaper from get.grim.so"
112
+ def download_latest
113
+ if options[:otp] && !validate_otp_access
114
+ return
115
+ end
116
+
117
+ puts "📥 Downloading latest Grim Reaper...".colorize(:cyan)
118
+
119
+ begin
120
+ installer = GrimReaper::Installer.new
121
+ if installer.download_latest_grim
122
+ puts "✅ Download and installation complete!".colorize(:green)
123
+ puts "📁 Installation directory: #{ENV['GRIM_ROOT']}".colorize(:blue)
124
+ puts "🔧 Run 'source ~/.bashrc' to reload environment".colorize(:yellow)
125
+ puts ""
126
+ puts "Available commands:".colorize(:blue)
127
+ puts " grim backup <path> - Create backup"
128
+ puts " grim monitor <path> - Start monitoring"
129
+ puts " grim security - Security status"
130
+ puts " grim rb-setup - Setup Ruby environment"
131
+ else
132
+ puts "❌ Download failed".colorize(:red)
133
+ exit 1
134
+ end
135
+ rescue => e
136
+ puts "❌ Download failed: #{e.message}".colorize(:red)
137
+ exit 1
138
+ end
139
+ end
140
+
141
+ desc "check-installation", "Check if Grim Reaper is properly installed"
142
+ def check_installation
143
+ puts "🔍 Checking Grim Reaper installation...".colorize(:cyan)
144
+
145
+ begin
146
+ installer = GrimReaper::Installer.new
147
+ grim_root = ENV["GRIM_ROOT"]
148
+
149
+ if grim_root && Dir.exist?(grim_root)
150
+ puts "✅ GRIM_ROOT found: #{grim_root}".colorize(:green)
151
+
152
+ # Check key components
153
+ components = [
154
+ "throne/grim_throne.sh",
155
+ "install.sh",
156
+ ".rip"
157
+ ]
158
+
159
+ components.each do |component|
160
+ path = File.join(grim_root, component)
161
+ if File.exist?(path)
162
+ puts "✅ #{component}".colorize(:green)
163
+ else
164
+ puts "❌ #{component} - Missing".colorize(:red)
165
+ end
166
+ end
167
+
168
+ puts ""
169
+ puts "Environment Variables:".colorize(:blue)
170
+ puts " GRIM_ROOT=#{ENV['GRIM_ROOT']}".colorize(:blue)
171
+ puts " GRIM_LICENSE=#{ENV['GRIM_LICENSE']}".colorize(:blue)
172
+ puts " GRIM_REAPER=#{ENV['GRIM_REAPER']}".colorize(:blue)
173
+
174
+ else
175
+ puts "❌ Grim Reaper not installed".colorize(:red)
176
+ puts "💡 Run 'grim download-latest' to install".colorize(:yellow)
177
+ end
178
+
179
+ rescue => e
180
+ puts "❌ Check failed: #{e.message}".colorize(:red)
181
+ end
182
+ end
104
183
 
105
184
  desc "health", "Check health of all Grim Reaper modules"
106
185
  def health
@@ -2,6 +2,8 @@
2
2
 
3
3
  require "open3"
4
4
  require "fileutils"
5
+ require "net/http"
6
+ require "uri"
5
7
 
6
8
  module GrimReaper
7
9
  # Ruby-specific installer and dependency manager
@@ -12,6 +14,152 @@ module GrimReaper
12
14
  @grim_root = find_grim_root
13
15
  @backup_dir = ENV["HOME"] + "/.graveyard"
14
16
  @install_dir = ENV["HOME"] + "/reaper"
17
+ setup_environment_variables
18
+ end
19
+
20
+ # Setup environment variables
21
+ def setup_environment_variables
22
+ # Set GRIM_ROOT if not already set
23
+ unless ENV["GRIM_ROOT"]
24
+ if File.writable?("/root/")
25
+ ENV["GRIM_ROOT"] = "/root/.grim"
26
+ elsif File.writable?(ENV["HOME"])
27
+ ENV["GRIM_ROOT"] = ENV["HOME"] + "/.grim"
28
+ else
29
+ ENV["GRIM_ROOT"] = Dir.pwd + "/.grim"
30
+ end
31
+ end
32
+
33
+ # Set default license tier to FREE
34
+ ENV["GRIM_LICENSE"] ||= "FREE"
35
+
36
+ # Set GRIM_REAPER to FALSE for normal install
37
+ ENV["GRIM_REAPER"] ||= "FALSE"
38
+
39
+ puts "🗡️ Grim environment configured:"
40
+ puts " GRIM_ROOT=#{ENV['GRIM_ROOT']}"
41
+ puts " GRIM_LICENSE=#{ENV['GRIM_LICENSE']}"
42
+ puts " GRIM_REAPER=#{ENV['GRIM_REAPER']}"
43
+ end
44
+
45
+ # Download and install latest Grim Reaper from get.grim.so
46
+ def download_latest_grim
47
+ puts "📥 Downloading latest Grim Reaper from get.grim.so..."
48
+
49
+ install_dir = ENV["GRIM_ROOT"] || (ENV["HOME"] + "/.grim")
50
+ FileUtils.mkdir_p(install_dir)
51
+
52
+ temp_file = File.join(install_dir, "grim-latest.tar.gz")
53
+
54
+ begin
55
+ # Download latest.tar.gz
56
+ uri = URI("https://get.grim.so/latest.tar.gz")
57
+ Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
58
+ request = Net::HTTP::Get.new(uri)
59
+ response = http.request(request)
60
+
61
+ if response.code == "200"
62
+ File.open(temp_file, "wb") { |file| file.write(response.body) }
63
+ puts "✅ Download complete"
64
+ else
65
+ raise "Failed to download: HTTP #{response.code}"
66
+ end
67
+ end
68
+
69
+ # Extract with proper graveyard/reaper/ handling (strip 2 components)
70
+ puts "📦 Extracting Grim Reaper..."
71
+ success = system("tar", "-xzf", temp_file, "--strip-components=2", "-C", install_dir)
72
+
73
+ unless success
74
+ raise "Failed to extract tarball"
75
+ end
76
+
77
+ # Remove temp file
78
+ File.delete(temp_file) if File.exist?(temp_file)
79
+
80
+ # Make scripts executable
81
+ make_scripts_executable(install_dir)
82
+
83
+ # Setup environment file
84
+ setup_environment_file(install_dir)
85
+
86
+ puts "✅ Grim Reaper installation complete!"
87
+ puts "📁 Installed to: #{install_dir}"
88
+
89
+ return true
90
+
91
+ rescue => e
92
+ puts "❌ Download failed: #{e.message}"
93
+ File.delete(temp_file) if File.exist?(temp_file)
94
+ return false
95
+ end
96
+ end
97
+
98
+ # Make scripts executable
99
+ def make_scripts_executable(install_dir)
100
+ puts "🔧 Making scripts executable..."
101
+
102
+ scripts = [
103
+ "throne/grim_throne.sh",
104
+ "throne/sh_grim_throne.sh",
105
+ "throne/py_grim_throne.sh",
106
+ "throne/rb_grim_throne.sh",
107
+ "throne/go_grim_throne.sh",
108
+ "install.sh",
109
+ "master-install.sh",
110
+ "sh_grim/*.sh",
111
+ "py_grim/*.py",
112
+ "go_grim/build/*",
113
+ ".rip/*.sh",
114
+ "auto_backups/*.sh"
115
+ ]
116
+
117
+ scripts.each do |script_pattern|
118
+ Dir.glob(File.join(install_dir, script_pattern)).each do |script|
119
+ begin
120
+ File.chmod(0755, script)
121
+ rescue => e
122
+ puts "⚠️ Could not make #{script} executable: #{e.message}"
123
+ end
124
+ end
125
+ end
126
+ end
127
+
128
+ # Setup environment file for persistence
129
+ def setup_environment_file(install_dir)
130
+ puts "📝 Setting up environment file..."
131
+
132
+ env_file = File.join(install_dir, ".grim_env")
133
+
134
+ env_content = <<~ENV
135
+ # Grim Reaper Environment Configuration
136
+ export GRIM_ROOT="#{ENV['GRIM_ROOT']}"
137
+ export GRIM_LICENSE="#{ENV['GRIM_LICENSE']}"
138
+ export GRIM_REAPER="#{ENV['GRIM_REAPER']}"
139
+ export PATH="$PATH:#{install_dir}/throne:#{install_dir}/sh_grim:#{install_dir}/py_grim"
140
+
141
+ # Load Grim functions
142
+ if [ -f "#{install_dir}/throne/grim_throne.sh" ]; then
143
+ source "#{install_dir}/throne/grim_throne.sh"
144
+ fi
145
+ ENV
146
+
147
+ File.write(env_file, env_content)
148
+
149
+ # Add to bashrc if possible
150
+ bashrc_path = ENV["HOME"] + "/.bashrc"
151
+ if File.exist?(bashrc_path) && File.writable?(bashrc_path)
152
+ source_line = "[ -f #{env_file} ] && source #{env_file}"
153
+ bashrc_content = File.read(bashrc_path)
154
+
155
+ unless bashrc_content.include?(source_line)
156
+ File.open(bashrc_path, "a") do |f|
157
+ f.puts "\n# Grim Reaper Environment"
158
+ f.puts source_line
159
+ end
160
+ puts "✅ Added Grim environment to ~/.bashrc"
161
+ end
162
+ end
15
163
  end
16
164
 
17
165
  # Find Grim Reaper root directory
@@ -54,10 +202,16 @@ module GrimReaper
54
202
  raise Error, "Could not find Grim Reaper root directory"
55
203
  end
56
204
 
57
- # Setup complete Grim Reaper environment (like npm/pip packages)
205
+ # Setup complete Grim Reaper environment (installs Python, Go, Shell, Scythe components)
58
206
  def setup_complete_environment
59
207
  puts "🗡️ Setting up complete Grim Reaper environment..."
60
208
 
209
+ # First download the latest version
210
+ unless download_latest_grim
211
+ puts "❌ Failed to download Grim Reaper"
212
+ return false
213
+ end
214
+
61
215
  # Setup Ruby environment
62
216
  setup_ruby_environment
63
217
 
@@ -76,10 +230,8 @@ module GrimReaper
76
230
  # Create necessary directories
77
231
  create_directories
78
232
 
79
- # Setup environment file
80
- setup_environment_file
81
-
82
233
  puts "✅ Complete Grim Reaper environment setup finished"
234
+ return true
83
235
  end
84
236
 
85
237
  # Setup Ruby environment
@@ -400,25 +552,6 @@ module GrimReaper
400
552
  end
401
553
  end
402
554
 
403
- # Setup environment file
404
- def setup_environment_file
405
- env_file = File.join(@grim_root, ".env")
406
- scythe_dir = File.join(@grim_root, ".graveyard", ".rip", ".scythe")
407
- env_content = <<~ENV
408
- # Grim Reaper Environment Configuration
409
- GRIM_ROOT=#{@grim_root}
410
- SCYTHE_DIR=#{scythe_dir}
411
- GRIM_BACKUP_DIR=#{@backup_dir}
412
- GRIM_HOME=#{@install_dir}
413
- GRIM_RUBY_VERSION=#{`ruby -e "puts RUBY_VERSION"`.strip}
414
- GRIM_PYTHON_VERSION=#{`python3 --version 2>/dev/null | cut -d' ' -f2` || 'Not installed'}
415
- GRIM_GO_VERSION=#{`go version 2>/dev/null | cut -d' ' -f3` || 'Not installed'}
416
- ENV
417
-
418
- File.write(env_file, env_content)
419
- puts "📄 Created environment file: #{env_file}"
420
- end
421
-
422
555
  # Verify installation
423
556
  def verify_installation
424
557
  puts "🔍 Verifying installation..."
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GrimReaper
4
- VERSION = "1.0.33"
4
+ VERSION = "1.0.34"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grim-reaper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.33
4
+ version: 1.0.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernie Gengel and his beagle Buddy
@@ -220,7 +220,7 @@ metadata:
220
220
  source_code_uri: https://github.com/cyber-boost/grim
221
221
  changelog_uri: https://github.com/cyber-boost/grim/blob/main/CHANGELOG.md
222
222
  rubygems_mfa_required: 'true'
223
- post_install_message: "\U0001F5E1️ Grim Reaper Ruby Gem v1.0.33 installed successfully!\n\n\U0001F195
223
+ post_install_message: "\U0001F5E1️ Grim Reaper Ruby Gem v1.0.34 installed successfully!\n\n\U0001F195
224
224
  NEW: OTP (One-Time Password) Authentication Support!\nRun 'grim otp-setup' to enable
225
225
  secure two-factor authentication.\n\nThe gem provides a unified interface to all
226
226
  Grim Reaper modules:\n- Python components (scythe, py_grim)\n- Go components (go_grim)\n-