diff --git a/scripts/Arch/OS/install.fish b/scripts/Arch/OS/install.fish index a965b9d2..0ee4e39d 100644 --- a/scripts/Arch/OS/install.fish +++ b/scripts/Arch/OS/install.fish @@ -53,6 +53,8 @@ begin nvtop \ numbat-bin \ terminal-parrot + + source "$dir/../Software/aliae/main.fish" end end end diff --git a/scripts/Arch/Software/aliae/main.fish b/scripts/Arch/Software/aliae/main.fish new file mode 100644 index 00000000..1fc36bbd --- /dev/null +++ b/scripts/Arch/Software/aliae/main.fish @@ -0,0 +1,13 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + source "$dir/../../../Common/Software/aliae/main.fish" + + function installSW + yayinst \ + aliae-bin + end + + runInstaller $argv +end diff --git a/scripts/Common/Scripts/profile-base.fish b/scripts/Common/Scripts/profile-base.fish new file mode 100644 index 00000000..3638144b --- /dev/null +++ b/scripts/Common/Scripts/profile-base.fish @@ -0,0 +1,23 @@ +#!/bin/env fish +begin + function processContent -a content + echo "$content" + end + + function addProfileStatement -a name title shellBin extension profileRoot content + set -l file (mktemp) + + if [ -z "$content" ] + read -l content + end + + begin + printf %s\n \ + "#!$shellBin" \ + "# $title" \ + (processContent "$content") + end > "$file" + + sudo install -Dm755 "$file" "$profileRoot/$name.$extension" + end +end diff --git a/scripts/Common/Config/aliae/aliae.yml b/scripts/Common/Software/aliae/aliae.yml similarity index 100% rename from scripts/Common/Config/aliae/aliae.yml rename to scripts/Common/Software/aliae/aliae.yml diff --git a/scripts/Common/Software/aliae/main.fish b/scripts/Common/Software/aliae/main.fish new file mode 100644 index 00000000..9261abfa --- /dev/null +++ b/scripts/Common/Software/aliae/main.fish @@ -0,0 +1,35 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/software.fish" + + function installSW + configureSW + end + + function configureSW -V dir + source "$dir/../bash/profile.fish" + source "$dir/../fish/profile.fish" + set -l file /etc/aliae/aliae.yml + sudo install -Dm644 "$dir/aliae.yml" "$file" + + function getBashStatements + echo 'eval "$(aliae init bash)"' + echo 'eval "$(aliae completion bash)"' + end + + begin + echo "export ALIAE_CONFIG=$(string escape "$file")" + end | installBashProfile "aliae" "aliae" + + if type -q fish + begin + printf %s\n \ + "aliae init fish | source" \ + "aliae completion fish | source" + end | installFishProfile "aliae" "aliae" + end + end + + runInstaller $argv +end diff --git a/scripts/Common/Software/bash/profile.fish b/scripts/Common/Software/bash/profile.fish new file mode 100644 index 00000000..54c09588 --- /dev/null +++ b/scripts/Common/Software/bash/profile.fish @@ -0,0 +1,30 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/profile-base.fish" + + function getBashStatements + end + + function processContent -a content + set -l statements (getBashStatements) + echo "$content" + + if [ (echo "$statements" | wc -l) -gt 0 ] + printf %s\n \ + "" \ + 'if test "$BASH"' \ + "then" + + echo "$statements" | while read -l line + echo " $line" + end + + echo "fi" + end + end + + function installBashProfile -a name title + addProfileStatement "$name" "$title" /bin/bash sh /etc/bash/conf.d $argv[3..] + end +end diff --git a/scripts/Common/Software/fish/profile.fish b/scripts/Common/Software/fish/profile.fish new file mode 100644 index 00000000..b0f4153d --- /dev/null +++ b/scripts/Common/Software/fish/profile.fish @@ -0,0 +1,9 @@ +#!/bin/env fish +begin + set -l dir (status dirname) + source "$dir/../../Scripts/profile-base.fish" + + function installFishProfile -a name title + addProfileStatement "$name" "$title" /bin/fish fish /etc/fish/conf.d $argv[3..] + end +end diff --git a/scripts/Unix/Config/aliae/install.sh b/scripts/Unix/Config/aliae/install.sh index 677b41d2..fe8ab8f7 100755 --- a/scripts/Unix/Config/aliae/install.sh +++ b/scripts/Unix/Config/aliae/install.sh @@ -4,7 +4,7 @@ configPath="/etc/aliae/aliae.yml"; . "../../../Common/Config/aliae/install.sh"; . "../../../Common/Config/fish/profile.sh"; -sudo install -Dm644 "../../../Common/Config/aliae/aliae.yml" "$configPath"; +sudo install -Dm644 "../../../Common/Software/aliae/aliae.yml" "$configPath"; function dump_header() { echo "# aliae"; diff --git a/scripts/Windows/Config/aliae/Install.ps1 b/scripts/Windows/Config/aliae/Install.ps1 index 8070d64f..ad1ca6a0 100644 --- a/scripts/Windows/Config/aliae/Install.ps1 +++ b/scripts/Windows/Config/aliae/Install.ps1 @@ -4,5 +4,5 @@ $configFile="$env:ProgramData/aliae/aliae.yml"; Start-BashScript "bash `"$PSScriptRoot/../../../Common/Config/aliae/install.sh`""; $null = New-Item -Force $configFile; -Copy-Item -Force "$PSScriptRoot/../../../Common/Config/aliae/aliae.yml" $configFile; +Copy-Item -Force "$PSScriptRoot/../../../Common/Software/aliae/aliae.yml" $configFile; [Environment]::SetEnvironmentVariable("ALIAE_CONFIG", $configFile, [System.EnvironmentVariableTarget]::Machine)