diff options
| -rw-r--r-- | .run/src/bin/install-mling.ps1 | 15 | ||||
| -rwxr-xr-x | .run/src/bin/install-mling.sh | 17 | ||||
| -rw-r--r-- | mingling_cli/scripts/load_mling.fish | 23 | ||||
| -rw-r--r-- | mingling_cli/scripts/load_mling.ps1 | 21 | ||||
| -rw-r--r-- | mingling_cli/scripts/load_mling.sh | 22 | ||||
| -rw-r--r-- | mingling_cli/scripts/load_mling.zsh | 22 |
6 files changed, 111 insertions, 9 deletions
diff --git a/.run/src/bin/install-mling.ps1 b/.run/src/bin/install-mling.ps1 index 7fba62e..5409460 100644 --- a/.run/src/bin/install-mling.ps1 +++ b/.run/src/bin/install-mling.ps1 @@ -1,7 +1,10 @@ -cargo install --path mingling_cli +$ErrorActionPreference = "Stop" -New-Item -ItemType Directory -Force -Path .temp/comp | Out-Null -# Copy all files containing _comp from the debug directory -Get-ChildItem .temp/target/release/*_comp* | ForEach-Object { - Copy-Item $_.FullName .temp/comp/ -} +cargo build --release --manifest-path mingling_cli/Cargo.toml + +New-Item -ItemType Directory -Force -Path .temp/mling/bin, .temp/mling/scripts | Out-Null + +Copy-Item .temp/target/release/mling.exe .temp/mling/bin/ +Copy-Item .temp/target/release/mingling-cli.exe .temp/mling/bin/ +Copy-Item .temp/target/release/mingling-cli_comp.ps1 .temp/mling/scripts/mling_comp.ps1 +Copy-Item mingling_cli/scripts/load_mling.ps1 .temp/mling/ diff --git a/.run/src/bin/install-mling.sh b/.run/src/bin/install-mling.sh index 5b5e7b2..e40121f 100755 --- a/.run/src/bin/install-mling.sh +++ b/.run/src/bin/install-mling.sh @@ -1,6 +1,17 @@ #!/bin/bash -cargo install --path mingling_cli +set -e -mkdir -p .temp/comp -cp .temp/target/release/*_comp.* .temp/comp/ 2>/dev/null || echo "No matching files found" +cargo build --release --manifest-path mingling_cli/Cargo.toml + +mkdir -p .temp/mling/bin .temp/mling/scripts + +cp .temp/target/release/mling .temp/mling/bin/ +cp .temp/target/release/mingling-cli .temp/mling/bin/ + +for comp in zsh sh fish; do + cp ".temp/target/release/mingling-cli_comp.$comp" ".temp/mling/scripts/mling_comp.$comp" +done +cp mingling_cli/scripts/load_mling.zsh .temp/mling/ +cp mingling_cli/scripts/load_mling.sh .temp/mling/ +cp mingling_cli/scripts/load_mling.fish .temp/mling/ 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) |
