
- Add: GitHub API integration for live version checking in taskserv management - Add: HTTP client configuration option (http.use_curl) in config.defaults.toml - Add: Helper function fetch_latest_version with curl/http get support - Fix: Settings path structure for prov_data_dirpath access pattern - Remove: Legacy simulation code for version checking - Update: Core configuration name from "provisioning-system" to "provisioning" - Clean: Remove obsolete example configs and infrastructure files
57 lines
1.9 KiB
Plaintext
Executable File
57 lines
1.9 KiB
Plaintext
Executable File
#!/usr/bin/env nu
|
|
# Info: Prepare for nushell installation on infrastructure servers
|
|
# Author: Generated by Claude Code
|
|
# Release: 1.0.0
|
|
# Date: 2025-09-23
|
|
|
|
use lib_provisioning/cmd/env.nu *
|
|
use lib_provisioning/cmd/lib.nu *
|
|
use lib_provisioning/utils/ui.nu *
|
|
|
|
print $"(_ansi green_bold)Nushell Runtime(_ansi reset) with ($env.PROVISIONING_VARS)"
|
|
|
|
let defs = load_defs
|
|
|
|
# Ensure target environment path exists
|
|
let target_path = $env.PROVISIONING_WK_ENV_PATH
|
|
^mkdir -p $"($target_path)/.config/nushell"
|
|
^mkdir -p $"($target_path)/.local/bin"
|
|
^mkdir -p $"($target_path)/.local/share/nushell"
|
|
|
|
# Create secure directory for Nushell scripts
|
|
^mkdir -p $"($target_path)/nushell/scripts"
|
|
^mkdir -p $"($target_path)/nushell/observability"
|
|
^mkdir -p $"($target_path)/nushell/lib"
|
|
|
|
# Set secure permissions for Nushell directories
|
|
^chmod 750 $"($target_path)/nushell"
|
|
^chmod 700 $"($target_path)/nushell/scripts"
|
|
|
|
# Create plugin directory if plugins are enabled
|
|
if ($defs.taskserv.nushell_plugins? | default false) {
|
|
^mkdir -p $"($target_path)/.local/share/nushell/plugins"
|
|
log_debug "Created Nushell plugins directory"
|
|
}
|
|
|
|
# Copy SSH keys if specified for remote operations
|
|
let ssh_keys = ($defs.taskserv.ssh_keys? | default "" | str replace "~" $env.HOME | str trim)
|
|
if $ssh_keys != "" {
|
|
^mkdir -p $"($target_path)/.ssh"
|
|
for key in ($ssh_keys | split row " ") {
|
|
log_debug $"Setting up SSH key: ($key)"
|
|
if ($key | path exists) {
|
|
cp $key $"($target_path)/.ssh"
|
|
^chmod 600 $"($target_path)/.ssh/($key | path basename)"
|
|
}
|
|
if ($"($key).pub" | path exists) {
|
|
cp $"($key).pub" $"($target_path)/.ssh"
|
|
^chmod 644 $"($target_path)/.ssh/($key | path basename).pub"
|
|
}
|
|
}
|
|
}
|
|
|
|
# Ensure proper ownership for security
|
|
let admin_user = ($defs.taskserv.admin_user? | default "root")
|
|
^chown -R $"($admin_user):($admin_user)" $"($target_path)/nushell"
|
|
|
|
log_info "Nushell environment prepared successfully" |