diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-01-24 04:41:19 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-01-24 04:41:19 +0800 |
| commit | 2b41209f2b76d4067867be466bdcfed478ff3f39 (patch) | |
| tree | 7f232e5f468ceb4b40f0c1506a167c4de6236657 /scripts | |
| parent | 4c77a05993d40c42ebe78c1d3a72f8049f360982 (diff) | |
Move setup scripts to scripts/setup directory
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/setup/linux/inst.sh | 88 | ||||
| -rw-r--r-- | scripts/setup/windows/inst.ps1 | 19 | ||||
| -rw-r--r-- | scripts/setup/windows/uninst.ps1 | 39 |
3 files changed, 146 insertions, 0 deletions
diff --git a/scripts/setup/linux/inst.sh b/scripts/setup/linux/inst.sh new file mode 100644 index 0000000..ec609fc --- /dev/null +++ b/scripts/setup/linux/inst.sh @@ -0,0 +1,88 @@ +# Check if required tools are installed +echo "Checking for required tools..." +if ! command -v cargo &> /dev/null; then + echo "Error: cargo is not installed. Please install Rust and Cargo first." + exit 1 +fi +if ! command -v git &> /dev/null; then + echo "Error: git is not installed. Please install git first." + exit 1 +fi + +# Set installation directory to current directory +echo "Installation directory set to current directory: $(pwd)" +install_dir="$(pwd)" + +# Clone or update repos +echo "Cloning or updating repositories..." +mkdir -p "$install_dir" +cd "$install_dir" + +# Function to clone or pull repository +clone_or_pull() { + local repo_url="$1" + local repo_name=$(basename "$repo_url") + + if [ -d "$repo_name" ]; then + echo "Repository $repo_name already exists, pulling latest changes..." + cd "$repo_name" + git pull origin main + cd .. + else + echo "Cloning $repo_name..." + git clone "$repo_url" + fi +} + +# Clone or update repositories +clone_or_pull https://github.com/JustEnoughVCS/CommandLine +clone_or_pull https://github.com/JustEnoughVCS/VersionControl + +# Setup VersionControl repo +echo "Setting up VersionControl..." +cd VersionControl +chmod +x setup.sh +./setup.sh + +# Build CLI +echo "Building CLI..." +cd ../CommandLine +chmod +x deploy.sh +./scripts/dev/deploy.sh + +# Configure shell to include CLI in PATH +echo "Now adding JustEnoughVCS CLI to your environment. Please select your target shell:" +echo "1) ~/.zshrc (Zsh)" +echo "2) ~/.bashrc (Bash)" +echo "3) ~/.config/fish/config.fish (Fish)" +echo "4) Skip shell configuration" +echo -n "Enter your choice (1-4): " +read choice + +case $choice in + 1) + config_file="$HOME/.zshrc" + ;; + 2) + config_file="$HOME/.bashrc" + ;; + 3) + config_file="$HOME/.config/fish/config.fish" + ;; + 4) + echo "Skipping shell configuration." + echo "Installation completed! You can manually add the CLI to your PATH later." + exit 0 + ;; + *) + echo "Invalid choice. Skipping shell configuration." + exit 0 + ;; +esac + +cli_path="$(pwd)/export/jv_cli.sh" +echo "# JustEnoughVCS CLI" >> "$config_file" +echo "source \"$cli_path\"" >> "$config_file" +echo "CLI has been added to $config_file" +echo "Please restart your shell or run: source $config_file" +echo "Installation completed successfully!" diff --git a/scripts/setup/windows/inst.ps1 b/scripts/setup/windows/inst.ps1 new file mode 100644 index 0000000..4cb4772 --- /dev/null +++ b/scripts/setup/windows/inst.ps1 @@ -0,0 +1,19 @@ +# Execute uninstall script, attempt to remove leftover PROFILE entries +. ".\uninst.ps1" + +# Calculate directories +$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path +$parentDir = Split-Path -Parent $scriptDir + +# Write configuration to PROFILE +Add-Content -Path $PROFILE -Value "# JustEnoughVCS - Begin #" +Add-Content -Path $PROFILE -Value ". `"$parentDir\jv_cli.ps1`"" +Add-Content -Path $PROFILE -Value "# JustEnoughVCS - End #" + +# Check dependencies, if OpenSSL is not found, show a prompt +try { + $null = Get-Command openssl -ErrorAction Stop +} catch { + $wshell = New-Object -ComObject Wscript.Shell + $wshell.Popup("OpenSSL was not found on your computer. JustEnoughVCS key generation depends on OpenSSL.", 0, "JustEnoughVCS Installation", 0x0 + 0x30) +} diff --git a/scripts/setup/windows/uninst.ps1 b/scripts/setup/windows/uninst.ps1 new file mode 100644 index 0000000..d5c898d --- /dev/null +++ b/scripts/setup/windows/uninst.ps1 @@ -0,0 +1,39 @@ +$profileContent = Get-Content $PROFILE -ErrorAction SilentlyContinue +if ($profileContent) { + $startMarker = "# JustEnoughVCS - Begin #" + $endMarker = "# JustEnoughVCS - End #" + $newContent = @() + $insideBlock = $false + $foundStart = $false + + foreach ($line in $profileContent) { + if ($line.Trim() -eq $startMarker) { + $insideBlock = $true + $foundStart = $true + continue + } + if ($line.Trim() -eq $endMarker) { + $insideBlock = $false + continue + } + if (-not $insideBlock) { + $newContent += $line + } + } + + if ($foundStart -and $insideBlock) { + $newContent = @() + $insideBlock = $false + foreach ($line in $profileContent) { + if ($line.Trim() -eq $startMarker) { + $insideBlock = $true + continue + } + if (-not $insideBlock) { + $newContent += $line + } + } + } + + $newContent | Set-Content $PROFILE +} |
