From cc76b514a96331ca852d5a6cb1efabb72163722d Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Fri, 7 Aug 2026 16:41:08 +0800 Subject: build: replace cargo install with local release build in scripts Update install scripts to build from manifest and copy binaries manually instead of using `cargo install`. Add load scripts for bash, zsh, fish, and PowerShell to set up PATH and source completion scripts from external packages. --- mingling_cli/scripts/load_mling.fish | 23 +++++++++++++++++++++++ mingling_cli/scripts/load_mling.ps1 | 21 +++++++++++++++++++++ mingling_cli/scripts/load_mling.sh | 22 ++++++++++++++++++++++ mingling_cli/scripts/load_mling.zsh | 22 ++++++++++++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 mingling_cli/scripts/load_mling.fish create mode 100644 mingling_cli/scripts/load_mling.ps1 create mode 100644 mingling_cli/scripts/load_mling.sh create mode 100644 mingling_cli/scripts/load_mling.zsh (limited to 'mingling_cli/scripts') diff --git a/mingling_cli/scripts/load_mling.fish b/mingling_cli/scripts/load_mling.fish new file mode 100644 index 0000000..ea8f1ff --- /dev/null +++ b/mingling_cli/scripts/load_mling.fish @@ -0,0 +1,23 @@ +#!/usr/bin/env fish + +set -g MLING_SCRIPT_DIR (path dirname (path resolve (status --current-filename))) + +if not contains -- "$MLING_SCRIPT_DIR/bin" $PATH + set -gx PATH "$MLING_SCRIPT_DIR/bin" $PATH +end + +if test -f "$MLING_SCRIPT_DIR/scripts/mling_comp.fish" + source "$MLING_SCRIPT_DIR/scripts/mling_comp.fish" +end + +for pkg_dir in (mingling-cli __loadpkgs_path 2>/dev/null | string split '\n' | string match -rv '^$') + if test -d "$pkg_dir"; and not contains -- "$pkg_dir" $PATH + set -gx PATH "$pkg_dir" $PATH + end +end + +for script in (mingling-cli __loadpkgs_comp_scripts 2>/dev/null | string split '\n' | string match -rv '^$') + if string match -q '*.fish' -- "$script"; and test -f "$script" + source "$script" + end +end diff --git a/mingling_cli/scripts/load_mling.ps1 b/mingling_cli/scripts/load_mling.ps1 new file mode 100644 index 0000000..e3989a6 --- /dev/null +++ b/mingling_cli/scripts/load_mling.ps1 @@ -0,0 +1,21 @@ +$ScriptDir = if ($PSScriptRoot) { $PSScriptRoot } else { Split-Path -Parent $MyInvocation.MyCommand.Path } + +$env:PATH = "$ScriptDir\bin;$env:PATH" + +if (Test-Path -PathType Leaf "$ScriptDir\scripts\mling_comp.ps1") { + . "$ScriptDir\scripts\mling_comp.ps1" +} + +foreach ($pkgDir in (& mingling-cli __loadpkgs_path 2>$null)) { + if (-not [string]::IsNullOrWhiteSpace($pkgDir) -and (Test-Path -PathType Container $pkgDir)) { + if ($env:PATH -notmatch [regex]::Escape($pkgDir)) { + $env:PATH = "$pkgDir;$env:PATH" + } + } +} + +foreach ($script in (& mingling-cli __loadpkgs_comp_scripts 2>$null)) { + if ($script -like '*.ps1' -and (Test-Path -PathType Leaf $script)) { + . $script + } +} diff --git a/mingling_cli/scripts/load_mling.sh b/mingling_cli/scripts/load_mling.sh new file mode 100644 index 0000000..db0d79e --- /dev/null +++ b/mingling_cli/scripts/load_mling.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +MLING_SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" + +export PATH="$MLING_SCRIPT_DIR/bin:$PATH" + +if [[ -f "$MLING_SCRIPT_DIR/scripts/mling_comp.sh" ]]; then + source "$MLING_SCRIPT_DIR/scripts/mling_comp.sh" +fi + +while IFS= read -r pkg_dir; do + [[ -z "$pkg_dir" || ! -d "$pkg_dir" ]] && continue + case ":$PATH:" in + *":$pkg_dir:"*) ;; + *) export PATH="$pkg_dir:$PATH" ;; + esac +done < <(mingling-cli __loadpkgs_path 2>/dev/null) + +while IFS= read -r script; do + [[ "$script" == *.sh && -f "$script" ]] || continue + source "$script" +done < <(mingling-cli __loadpkgs_comp_scripts 2>/dev/null) diff --git a/mingling_cli/scripts/load_mling.zsh b/mingling_cli/scripts/load_mling.zsh new file mode 100644 index 0000000..b434e83 --- /dev/null +++ b/mingling_cli/scripts/load_mling.zsh @@ -0,0 +1,22 @@ +#!/bin/bash + +MLING_SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" + +export PATH="$MLING_SCRIPT_DIR/bin:$PATH" + +if [[ -f "$MLING_SCRIPT_DIR/scripts/mling_comp.zsh" ]]; then + source "$MLING_SCRIPT_DIR/scripts/mling_comp.zsh" +fi + +while IFS= read -r pkg_dir; do + [[ -z "$pkg_dir" || ! -d "$pkg_dir" ]] && continue + case ":$PATH:" in + *":$pkg_dir:"*) ;; + *) export PATH="$pkg_dir:$PATH" ;; + esac +done < <(mingling-cli __loadpkgs_path 2>/dev/null) + +while IFS= read -r script; do + [[ "$script" == *.zsh && -f "$script" ]] || continue + source "$script" +done < <(mingling-cli __loadpkgs_comp_scripts 2>/dev/null) -- cgit