sshman 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sshman/sshman.rb +22 -15
- data/lib/sshman/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 247fe150bd53e1caf0e599d074cce532df14da4c2055af26a94de4baf74e9cc1
|
4
|
+
data.tar.gz: 3889aac5b2b664ff32146a625a48fbca2d702b8e8163c20f99ff0c367753d9f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 470ebb35db7788190c13a9f5cd4c78c454a43fdbd9333899e6efe5c1ea40263e16277911af3498772790bea5ad273ec2d6334e2d167dd2188a8ddb47a804c4f2
|
7
|
+
data.tar.gz: b1a23ef51b01000ca5642b04c2d22910d7c03dd2d29b13aef9cd4678acd348a479b74862249560888da4068085ae48224938d019622b7ec3e9ab2663c53f6bc1
|
data/lib/sshman/sshman.rb
CHANGED
@@ -1,10 +1,19 @@
|
|
1
|
-
# lib/sshman/sshman.rb
|
2
1
|
require 'csv'
|
3
2
|
require 'io/console'
|
3
|
+
require 'logger'
|
4
4
|
require_relative 'version'
|
5
5
|
|
6
6
|
module Sshman
|
7
|
+
RESET_COLOR = "\033[0m"
|
8
|
+
RED = "\033[31m"
|
9
|
+
GREEN = "\033[32m"
|
10
|
+
YELLOW = "\033[33m"
|
11
|
+
CYAN = "\033[36m"
|
12
|
+
SERVERS_CSV = File.expand_path("~/.sshman_servers.csv")
|
13
|
+
|
7
14
|
class CLI
|
15
|
+
LOGGER = Logger.new(File.expand_path('~/.sshman.log'))
|
16
|
+
|
8
17
|
# This method handles inline commands
|
9
18
|
def self.start(argv)
|
10
19
|
case argv[0]
|
@@ -28,7 +37,6 @@ module Sshman
|
|
28
37
|
end
|
29
38
|
|
30
39
|
# Display the current version
|
31
|
-
|
32
40
|
def version
|
33
41
|
puts "sshman version #{Sshman::VERSION}"
|
34
42
|
end
|
@@ -107,7 +115,7 @@ HELP
|
|
107
115
|
puts "%-15s %-25s %-6s %-15s %-30s" % [row['alias'], row['hostname'], row['port'], row['username'], row['ssh_key']]
|
108
116
|
end
|
109
117
|
end
|
110
|
-
|
118
|
+
|
111
119
|
# Add a new server to the CSV file
|
112
120
|
def add_server
|
113
121
|
puts "#{CYAN}Adding a new server...#{RESET_COLOR}"
|
@@ -194,8 +202,8 @@ HELP
|
|
194
202
|
def connect_to_server(alias_name = nil)
|
195
203
|
# If no alias is provided, ask the user for one
|
196
204
|
if alias_name.nil?
|
197
|
-
|
198
|
-
|
205
|
+
print "Enter alias of the server to connect: "
|
206
|
+
alias_name = gets.chomp.strip
|
199
207
|
end
|
200
208
|
|
201
209
|
# Search for the server in the CSV file
|
@@ -208,6 +216,7 @@ HELP
|
|
208
216
|
end
|
209
217
|
|
210
218
|
unless server
|
219
|
+
LOGGER.error("Failed connection attempt to #{alias_name}: No server found")
|
211
220
|
puts "#{RED}No server found with alias '#{alias_name}'.#{RESET_COLOR}"
|
212
221
|
return
|
213
222
|
end
|
@@ -215,16 +224,14 @@ HELP
|
|
215
224
|
ssh_command = "ssh #{server['username']}@#{server['hostname']} -p #{server['port']}"
|
216
225
|
ssh_command += " -i #{server['ssh_key']}" unless server['ssh_key'].to_s.empty?
|
217
226
|
|
218
|
-
|
219
|
-
|
227
|
+
LOGGER.info("Connecting to #{alias_name}...")
|
228
|
+
|
229
|
+
# Use system to log successful connection
|
230
|
+
if system(ssh_command)
|
231
|
+
LOGGER.info("Successfully connected to #{alias_name}")
|
232
|
+
else
|
233
|
+
LOGGER.error("Failed to connect to #{alias_name}")
|
234
|
+
end
|
220
235
|
end
|
221
|
-
|
222
|
-
# Constants for coloring terminal output
|
223
|
-
RESET_COLOR = "\033[0m"
|
224
|
-
RED = "\033[31m"
|
225
|
-
GREEN = "\033[32m"
|
226
|
-
YELLOW = "\033[33m"
|
227
|
-
CYAN = "\033[36m"
|
228
|
-
SERVERS_CSV = File.expand_path("~/.sshman_servers.csv")
|
229
236
|
end
|
230
237
|
end
|
data/lib/sshman/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sshman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SubnetMasked
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-10-
|
11
|
+
date: 2024-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A simple terminal-based SSH manager to add, list, delete, and connect
|
14
14
|
to SSH servers.
|