Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .check/UpdateFunctionIndex.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,10 +145,12 @@ def process_file(filepath):
# Combine the updated comment block with the rest of the file
new_contents = updated_block + remainder

# Write back to the file
# Write back to the file, preserving original permissions
try:
original_mode = os.stat(filepath).st_mode
with open(filepath, "w", encoding="utf-8") as f:
f.writelines(new_contents)
os.chmod(filepath, original_mode)
return True
except Exception as e:
print(f"\nCould not write to file '{filepath}': {e}")
Expand Down
4 changes: 3 additions & 1 deletion .check/VerifySourceCalls.py
Original file line number Diff line number Diff line change
Expand Up @@ -396,9 +396,11 @@ def fix_script(
if insertion_index == len(lines) and lines_to_insert:
new_lines.extend(lines_to_insert)

# 4) Write updated file
# 4) Write updated file, preserving original permissions
original_mode = os.stat(script_path).st_mode
with open(script_path, "w", encoding="utf-8") as f:
f.writelines(new_lines)
os.chmod(script_path, original_mode)

def should_remove_source_line(line, remove_lines, remove_lines_dot):
"""
Expand Down
Empty file modified .check/_RunChecks.sh
100644 → 100755
Empty file.
Empty file modified .docs/GenerateContentDiff.sh
100644 → 100755
Empty file.
Empty file modified .docs/UpdatePVEGuide.sh
100644 → 100755
Empty file.
Empty file modified .site/serve.sh
100644 → 100755
Empty file.
Empty file modified CCPVE.sh
100644 → 100755
Empty file.
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.1.9] - 2026-02-24

Remote execution cancellation, live output streaming, and custom port support improvements

### Fixed
- **Script Cancellation** - Ctrl+C now kills the remote script process via SSH
- Tracks remote PID and sends targeted SIGTERM/SIGKILL on interrupt
- Replaced unsafe `killall`/`pkill` with process-specific cleanup
- **ArgumentParser Hyphenated Flags** - Flag names with hyphens now map correctly to variable names
- Converts hyphens to underscores in variable names (e.g. `--my-flag` -> `MY_FLAG`)
- **Custom Port Passthrough** - Fixed port not being passed through in manual node entry and IP/VMID range flows

### Changed
- **Live Remote Output** - Remote script output now streams directly to terminal
- Replaced deferred log download with real-time `tee`-based streaming
- Output log still saved locally for review
- **Git File Modes** - All `.sh` files tracked as executable (100755)

### Technical Details
- Added `REMOTE_CURRENT_*` tracking globals and `remote_pid_file` for targeted cleanup in `__remote_cleanup__`
- `__add_remote_target__` and `__clear_remote_targets__` now handle port parameter
- Manual node entry prompts for SSH port in GUI single-remote, multi-IP, and multi-VMID flows
- Node selection prompts for SSH port in `__select_nodes__`

## [2.1.8] - 2026-01-08

Critical bug fixes for bulk operations and performance optimizations
Expand Down
Empty file modified Cluster/AddNodes.sh
100644 → 100755
Empty file.
Empty file modified Cluster/CreateCluster.sh
100644 → 100755
Empty file.
Empty file modified Cluster/DeleteCluster.sh
100644 → 100755
Empty file.
Empty file modified Cluster/RemoveClusterNode.sh
100644 → 100755
Empty file.
Empty file modified Firewall/BulkAddFirewallLXCVM.sh
100644 → 100755
Empty file.
Empty file modified Firewall/EnableFirewallSetup.sh
100644 → 100755
Empty file.
49 changes: 31 additions & 18 deletions GUI.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -467,15 +467,17 @@ configure_single_remote() {
read -rp "Enter node name: " manual_name
read -rp "Enter username (default: root): " manual_user
manual_user="${manual_user:-root}"
read -rp "Enter SSH port (default: 22): " manual_port
manual_port="${manual_port:-22}"

# Check for SSH key auth automatically (test since not in nodes.json)
local has_keys=$(__has_ssh_keys__ "$manual_ip" "$manual_user" "")
local has_keys=$(__has_ssh_keys__ "$manual_ip" "$manual_user" "" "$manual_port")
if [[ "$has_keys" == "true" ]]; then
echo
__line_rgb__ "SSH key authentication detected" 0 255 0
export USE_SSH_KEYS=true
__clear_remote_targets__
__add_remote_target__ "$manual_name" "$manual_ip" "" "$manual_user"
__add_remote_target__ "$manual_name" "$manual_ip" "" "$manual_user" "$manual_port"
__set_execution_mode__ "single-remote"
__success__ "Using SSH key authentication (no password needed)"
sleep 1
Expand All @@ -489,9 +491,9 @@ configure_single_remote() {

# Test connection before proceeding
echo "Testing connection..."
if ! __test_remote_connection__ "$manual_ip" "$manual_pass" "$manual_user" "22"; then
if ! __test_remote_connection__ "$manual_ip" "$manual_pass" "$manual_user" "$manual_port"; then
echo
__line_rgb__ "✗ Connection failed! Please check IP, username, and password." 255 0 0
__line_rgb__ "✗ Connection failed! Please check IP, username, port, and password." 255 0 0
echo "Press Enter to try again..."
read -r
continue
Expand All @@ -500,7 +502,7 @@ configure_single_remote() {
sleep 1

__clear_remote_targets__
__add_remote_target__ "$manual_name" "$manual_ip" "$manual_pass" "$manual_user"
__add_remote_target__ "$manual_name" "$manual_ip" "$manual_pass" "$manual_user" "$manual_port"
__set_execution_mode__ "single-remote"
return 0
fi
Expand All @@ -513,17 +515,22 @@ configure_single_remote() {
node_ip=$(__get_node_ip__ "$node_name")
local node_username
node_username=$(__get_node_username__ "$node_name")
local node_port
node_port=$(__get_node_port__ "$node_name")

# Check if SSH keys work for this node (use cache)
local key_indicator=""
local has_keys=$(__has_ssh_keys__ "$node_ip" "$node_username" "$node_name")
local has_keys=$(__has_ssh_keys__ "$node_ip" "$node_username" "$node_name" "$node_port")
if [[ "$has_keys" == "true" ]]; then
key_indicator=" [SSH Key]"
else
key_indicator=" [No Key]"
fi

__line_rgb__ " $i) $node_name ($node_username@$node_ip) $key_indicator" 0 200 200
local port_indicator=""
[[ "$node_port" != "22" ]] && port_indicator=":${node_port}"

__line_rgb__ " $i) $node_name ($node_username@$node_ip${port_indicator}) $key_indicator" 0 200 200
node_menu[$i]="$node_name:$node_ip"
((i += 1))
done < <(__get_available_nodes__)
Expand Down Expand Up @@ -564,15 +571,17 @@ configure_single_remote() {
read -rp "Enter node name: " manual_name
read -rp "Enter username (default: root): " manual_user
manual_user="${manual_user:-root}"
read -rp "Enter SSH port (default: 22): " manual_port
manual_port="${manual_port:-22}"

# Check for SSH key auth automatically (use cache)
local has_keys=$(__has_ssh_keys__ "$manual_ip" "$manual_user" "")
local has_keys=$(__has_ssh_keys__ "$manual_ip" "$manual_user" "" "$manual_port")
if [[ "$has_keys" == "true" ]]; then
echo
__line_rgb__ "SSH key authentication detected" 0 255 0
export USE_SSH_KEYS=true
__clear_remote_targets__
__add_remote_target__ "$manual_name" "$manual_ip" "" "$manual_user"
__add_remote_target__ "$manual_name" "$manual_ip" "" "$manual_user" "$manual_port"
__set_execution_mode__ "single-remote"
__success__ "Using SSH key authentication (no password needed)"
sleep 1
Expand All @@ -586,7 +595,7 @@ configure_single_remote() {

# Test connection before proceeding
echo "Testing connection..."
if ! __test_remote_connection__ "$manual_ip" "$manual_pass" "$manual_user" "22"; then
if ! __test_remote_connection__ "$manual_ip" "$manual_pass" "$manual_user" "$manual_port"; then
echo
__line_rgb__ "✗ Connection failed! Please check IP, username, and password." 255 0 0
echo "Press Enter to try again..."
Expand All @@ -597,22 +606,24 @@ configure_single_remote() {
sleep 1

__clear_remote_targets__
__add_remote_target__ "$manual_name" "$manual_ip" "$manual_pass" "$manual_user"
__add_remote_target__ "$manual_name" "$manual_ip" "$manual_pass" "$manual_user" "$manual_port"
__set_execution_mode__ "single-remote"
return 0
elif [[ -n "$node_choice" && -n "${node_menu[$node_choice]:-}" ]]; then
IFS=':' read -r selected_name selected_ip <<<"${node_menu[$node_choice]}"
local selected_username
selected_username=$(__get_node_username__ "$selected_name")
local selected_port
selected_port=$(__get_node_port__ "$selected_name")

# Check for SSH key auth automatically (use cache)
local has_keys=$(__has_ssh_keys__ "$selected_ip" "$selected_username" "$selected_name")
local has_keys=$(__has_ssh_keys__ "$selected_ip" "$selected_username" "$selected_name" "$selected_port")
if [[ "$has_keys" == "true" ]]; then
echo
__line_rgb__ "SSH key authentication detected" 0 255 0
export USE_SSH_KEYS=true
__clear_remote_targets__
__add_remote_target__ "$selected_name" "$selected_ip" "" "$selected_username"
__add_remote_target__ "$selected_name" "$selected_ip" "" "$selected_username" "$selected_port"
__set_execution_mode__ "single-remote"
__success__ "Using SSH key authentication (no password needed)"
sleep 1
Expand All @@ -624,10 +635,6 @@ configure_single_remote() {
read -rsp "Enter password for $selected_name: " node_pass
echo

# Get port for this node
local selected_port
selected_port=$(__get_node_port__ "$selected_name")

# Test connection before proceeding
echo "Testing connection to $selected_name..."
if ! __test_remote_connection__ "$selected_ip" "$node_pass" "$selected_username" "$selected_port"; then
Expand All @@ -641,7 +648,7 @@ configure_single_remote() {
sleep 1

__clear_remote_targets__
__add_remote_target__ "$selected_name" "$selected_ip" "$node_pass" "$selected_username"
__add_remote_target__ "$selected_name" "$selected_ip" "$node_pass" "$selected_username" "$selected_port"
__set_execution_mode__ "single-remote"
return 0
else
Expand Down Expand Up @@ -970,6 +977,8 @@ configure_multi_ip_range() {
echo
read -rp "Enter username for all nodes in range (default: root): " shared_user
shared_user="${shared_user:-root}"
read -rp "Enter SSH port for all nodes in range (default: 22): " shared_port
shared_port="${shared_port:-22}"
read -rsp "Enter password for all nodes in range: " shared_pass
echo

Expand All @@ -981,6 +990,7 @@ configure_multi_ip_range() {
REMOTE_TARGETS+=("$node_name:$ip")
NODE_PASSWORDS["$node_name"]="$shared_pass"
NODE_USERNAMES["$node_name"]="$shared_user"
NODE_PORTS["$node_name"]="$shared_port"
done

echo
Expand Down Expand Up @@ -1027,6 +1037,8 @@ configure_multi_vmid_range() {
echo
read -rp "Enter username for all target nodes (default: root): " shared_user
shared_user="${shared_user:-root}"
read -rp "Enter SSH port for all target nodes (default: 22): " shared_port
shared_port="${shared_port:-22}"
read -rsp "Enter password for all target nodes: " shared_pass
echo

Expand All @@ -1049,6 +1061,7 @@ configure_multi_vmid_range() {
REMOTE_TARGETS+=("$node_name:$ip")
NODE_PASSWORDS["$node_name"]="$shared_pass"
NODE_USERNAMES["$node_name"]="$shared_user"
NODE_PORTS["$node_name"]="$shared_port"
echo " Found VMID $vmid: $ip"
((found_count += 1))
fi
Expand Down
Empty file modified HighAvailability/AddResources.sh
100644 → 100755
Empty file.
Empty file modified HighAvailability/CreateHAGroup.sh
100644 → 100755
Empty file.
Empty file modified HighAvailability/DisableHAClusterWide.sh
100644 → 100755
Empty file.
Empty file modified HighAvailability/DisableHighAvailability.sh
100644 → 100755
Empty file.
Empty file modified Host/Bulk/FirstTimeProxmoxSetup.sh
100644 → 100755
Empty file.
Empty file modified Host/Bulk/ProxmoxEnableMicrocode.sh
100644 → 100755
Empty file.
Empty file modified Host/Bulk/SetTimeZone.sh
100644 → 100755
Empty file.
Empty file modified Host/Bulk/UpgradeAllServers.sh
100644 → 100755
Empty file.
Empty file modified Host/Bulk/UpgradeRepositories.sh
100644 → 100755
Empty file.
Empty file modified Host/FanControl/DellIPMIFanControl.sh
100644 → 100755
Empty file.
Empty file modified Host/FanControl/EnablePWMFanControl.sh
100644 → 100755
Empty file.
Empty file modified Host/FixDPKGLock.sh
100644 → 100755
Empty file.
Empty file modified Host/Hardware/EnableCPUScalingGoverner.sh
100644 → 100755
Empty file.
Empty file modified Host/Hardware/EnableGPUPassthroughVM.sh
100644 → 100755
Empty file.
Empty file modified Host/Hardware/EnableIOMMU.sh
100644 → 100755
Empty file.
Empty file modified Host/Hardware/EnablePCIPassthroughLXC.sh
100644 → 100755
Empty file.
Empty file modified Host/Hardware/EnableX3DOptimization.sh
100644 → 100755
Empty file.
Empty file modified Host/Hardware/OnlineMemoryTest.sh
100644 → 100755
Empty file.
Empty file modified Host/Hardware/OptimizeNestedVirtualization.sh
100644 → 100755
Empty file.
Empty file modified Host/HostInfo.sh
100644 → 100755
Empty file.
Empty file modified Host/QuickDiagnostic.sh
100644 → 100755
Empty file.
Empty file modified Host/RemoveLocalLVMAndExpand.sh
100644 → 100755
Empty file.
Empty file modified Host/SeparateNode.sh
100644 → 100755
Empty file.
Empty file modified Host/Storage/ExpandEXT4Partition.sh
100644 → 100755
Empty file.
Empty file modified LXC/Hardware/BulkSetCPU.sh
100644 → 100755
Empty file.
Empty file modified LXC/Hardware/BulkSetMemory.sh
100644 → 100755
Empty file.
Empty file modified LXC/Networking/BulkAddSSHKey.sh
100644 → 100755
Empty file.
Empty file modified LXC/Networking/BulkChangeDNS.sh
100644 → 100755
Empty file.
Empty file modified LXC/Networking/BulkChangeIP.sh
100644 → 100755
Empty file.
Empty file modified LXC/Networking/BulkChangeNetwork.sh
100644 → 100755
Empty file.
Empty file modified LXC/Networking/BulkChangeUserPass.sh
100644 → 100755
Empty file.
Empty file modified LXC/Operations/BulkClone.sh
100644 → 100755
Empty file.
Empty file modified LXC/Operations/BulkDeleteAllLocal.sh
100644 → 100755
Empty file.
Empty file modified LXC/Operations/BulkDeleteRange.sh
100644 → 100755
Empty file.
Empty file modified LXC/Operations/BulkStart.sh
100644 → 100755
Empty file.
Empty file modified LXC/Operations/BulkStop.sh
100644 → 100755
Empty file.
Empty file modified LXC/Operations/BulkUnlock.sh
100644 → 100755
Empty file.
Empty file modified LXC/Options/BulkStartAtBoot.sh
100644 → 100755
Empty file.
Empty file modified LXC/Options/BulkToggleProtectionMode.sh
100644 → 100755
Empty file.
Empty file modified LXC/Storage/BulkChangeStorage.sh
100644 → 100755
Empty file.
Empty file modified LXC/Storage/BulkMoveVolume.sh
100644 → 100755
Empty file.
Empty file modified LXC/Storage/BulkResizeStorage.sh
100644 → 100755
Empty file.
Empty file modified LXC/UpdateAll.sh
100644 → 100755
Empty file.
Empty file modified Networking/AddNetworkBond.sh
100644 → 100755
Empty file.
Empty file modified Networking/BulkPrintVMIDMacAddresses.sh
100644 → 100755
Empty file.
Empty file modified Networking/BulkSetDNS.sh
100644 → 100755
Empty file.
Empty file modified Networking/FindVMFromMacAddress.sh
100644 → 100755
Empty file.
Empty file modified Networking/FindVMIDFromIP.sh
100644 → 100755
Empty file.
Empty file modified Networking/HostIPerfTest.sh
100644 → 100755
Empty file.
Empty file modified Networking/UpdateNetworkInterfaceNames.sh
100644 → 100755
Empty file.
Empty file modified Networking/UplinkSpeedTest.sh
100644 → 100755
Empty file.
Empty file modified Resources/BulkAddIPToNote.sh
100644 → 100755
Empty file.
Empty file modified Resources/ChangeAllMACPrefix.sh
100644 → 100755
Empty file.
Empty file modified Resources/ExportProxmoxResources.sh
100644 → 100755
Empty file.
Empty file modified Resources/FindLinkedClone.sh
100644 → 100755
Empty file.
Empty file modified Resources/InteractiveRestore.sh
100644 → 100755
Empty file.
Empty file modified Security/PenetrationTest.sh
100644 → 100755
Empty file.
Empty file modified Security/PortScan.sh
100644 → 100755
Empty file.
Empty file modified Storage/AddStorage.sh
100644 → 100755
Empty file.
Empty file modified Storage/Benchmark.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Cluster/CreateOSDs.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Cluster/RestartManagers.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Cluster/RestartMetadata.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Cluster/RestartMonitors.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Cluster/RestartOSDs.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Cluster/StartStoppedOSDs.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Host/EditCrushmap.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Host/RestartAllDaemons.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Host/RestartManager.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Host/RestartMetadata.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Host/RestartMonitor.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Host/RestartOSDs.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Host/SingleDrive.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Host/WipeDisk.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Pools/AllowPoolSize1.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Pools/SetPoolMinSize1.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/Pools/SetPoolSize1.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/SetScrubInterval.sh
100644 → 100755
Empty file.
Empty file modified Storage/Ceph/SparsifyDisk.sh
100644 → 100755
Empty file.
Empty file modified Storage/DiskDeleteBulk.sh
100644 → 100755
Empty file.
Empty file modified Storage/DiskDeleteWithSnapshot.sh
100644 → 100755
Empty file.
Empty file modified Storage/FilesystemTrimAll.sh
100644 → 100755
Empty file.
Empty file modified Storage/OptimizeSpindown.sh
100644 → 100755
Empty file.
Empty file modified Storage/PassthroughStorageToLXC.sh
100644 → 100755
Empty file.
Empty file modified Storage/RemoveStorage.sh
100644 → 100755
Empty file.
Empty file modified Storage/UpdateStaleMount.sh
100644 → 100755
Empty file.
Empty file modified ThirdParty/ApacheGuacamole/BulkDeleteConnectionGuacamole.sh
100644 → 100755
Empty file.
Empty file modified ThirdParty/ApacheGuacamole/DebugConnectionTree.sh
100644 → 100755
Empty file.
Empty file.
Empty file.
Empty file modified ThirdParty/ApacheGuacamole/RDP/BulkAddSFTPServer.sh
100644 → 100755
Empty file.
Empty file modified ThirdParty/ApacheGuacamole/RDP/BulkPrintRDPConfiguration.sh
100644 → 100755
Empty file.
Empty file modified ThirdParty/ApacheGuacamole/RDP/BulkRemoveDriveRedirection.sh
100644 → 100755
Empty file.
Empty file modified ThirdParty/ApacheGuacamole/RDP/BulkRemoveRDPConnection.sh
100644 → 100755
Empty file.
Empty file modified ThirdParty/ApacheGuacamole/RDP/BulkRemoveSFTPServer.sh
100644 → 100755
Empty file.
Empty file modified ThirdParty/ApacheGuacamole/RDP/BulkUpdateDriveRedirection.sh
100644 → 100755
Empty file.
Empty file.
9 changes: 5 additions & 4 deletions Utilities/ArgumentParser.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -208,10 +208,11 @@ __parse_args__() {
fi

FLAG_NAMES["--${name}"]="${name^^}"
FLAG_NAMES["--${name}"]="${FLAG_NAMES["--${name}"]//-/_}"
FLAG_TYPES["--${name}"]="$type"

# Check for reserved variable name conflicts
local var_name="${name^^}"
local var_name="${FLAG_NAMES["--${name}"]}"
for reserved in "${CRITICAL_RESERVED[@]}"; do
if [[ "$var_name" == "$reserved" ]]; then
__argparser_log__ "ERROR" "CRITICAL: Argument name '$name' conflicts with reserved variable '$reserved'"
Expand All @@ -222,13 +223,13 @@ __parse_args__() {
fi
done

__argparser_log__ "DEBUG" "Registered flag: --${name} -> ${name^^} (type: $type, optional: $optional)"
__argparser_log__ "DEBUG" "Registered flag: --${name} -> ${var_name} (type: $type, optional: $optional)"

# Initialize variable
if [[ "$type" == "flag" || "$type" == "bool" ]]; then
eval "${name^^}=false"
eval "${var_name}=false"
else
eval "${name^^}='${default}'"
eval "${var_name}='${default}'"
fi
else
# Positional argument
Expand Down
Empty file modified Utilities/BulkOperations.sh
100644 → 100755
Empty file.
Empty file modified Utilities/Cluster.sh
100644 → 100755
Empty file.
Empty file modified Utilities/Colors.sh
100644 → 100755
Empty file.
Empty file modified Utilities/Communication.sh
100644 → 100755
Empty file.
5 changes: 3 additions & 2 deletions Utilities/ConfigManager.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -103,23 +103,24 @@ __set_execution_mode__() {
}

# Add remote target
# Args: node_name node_ip password [username]
# Args: node_name node_ip password [username] [port]
__add_remote_target__() {
local node_name="$1"
local node_ip="$2"
local password="$3"
local username="${4:-$DEFAULT_USERNAME}"
local port="${5:-$DEFAULT_PORT}"

REMOTE_TARGETS+=("$node_name:$node_ip")
NODE_PASSWORDS["$node_name"]="$password"
NODE_USERNAMES["$node_name"]="$username"
NODE_PORTS["$node_name"]="$port"
}

# Clear all remote targets
__clear_remote_targets__() {
REMOTE_TARGETS=()
NODE_PASSWORDS=()
NODE_USERNAMES=()
}

# Get node IP by name
Expand Down
Empty file modified Utilities/Conversion.sh
100644 → 100755
Empty file.
Empty file modified Utilities/Discovery.sh
100644 → 100755
Empty file.
Empty file modified Utilities/Display.sh
100644 → 100755
Empty file.
Empty file modified Utilities/Logger.sh
100644 → 100755
Empty file.
Empty file modified Utilities/ManualViewer.sh
100644 → 100755
Empty file.
Empty file modified Utilities/Menu.sh
100644 → 100755
Empty file.
Empty file modified Utilities/Network.sh
100644 → 100755
Empty file.
6 changes: 6 additions & 0 deletions Utilities/NodeSelection.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,11 @@ __select_nodes__() {
echo
read -rp "Enter node IP manually: " manual_ip
read -rp "Enter node name: " manual_name
read -rp "Enter SSH port (default: 22): " manual_port
manual_port="${manual_port:-22}"

SELECTED_NODES["$manual_name"]="$manual_ip"
NODE_PORTS["$manual_name"]="$manual_port"
__get_node_passwords__ "single" "$manual_name"
return 0
fi
Expand All @@ -146,7 +149,10 @@ __select_nodes__() {
elif [[ "$node_choice" == "m" ]]; then
read -rp "Enter node IP: " manual_ip
read -rp "Enter node name: " manual_name
read -rp "Enter SSH port (default: 22): " manual_port
manual_port="${manual_port:-22}"
SELECTED_NODES["$manual_name"]="$manual_ip"
NODE_PORTS["$manual_name"]="$manual_port"
__get_node_passwords__ "single" "$manual_name"
return 0
elif [[ -n "$node_choice" && -n "${node_menu[$node_choice]:-}" ]]; then
Expand Down
Empty file modified Utilities/Operations.sh
100644 → 100755
Empty file.
Empty file modified Utilities/Prompts.sh
100644 → 100755
Empty file.
Loading