mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-02-06 06:46:47 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ab34c148a6 | |||
|
|
910b29ed9f | ||
| 3fb0a75a62 | |||
|
|
f73abb508b | ||
|
|
1dd3d952cf |
@@ -48,7 +48,7 @@ repos:
|
|||||||
- id: actionlint
|
- id: actionlint
|
||||||
|
|
||||||
- repo: https://github.com/renovatebot/pre-commit-hooks
|
- repo: https://github.com/renovatebot/pre-commit-hooks
|
||||||
rev: 39.75.1
|
rev: 39.82.3
|
||||||
hooks:
|
hooks:
|
||||||
- id: renovate-config-validator
|
- id: renovate-config-validator
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,21 @@
|
|||||||
asdf-plugin-manager 1.4.0
|
asdf-plugin-manager 1.4.0
|
||||||
golang 1.23.3
|
golang 1.23.4
|
||||||
ruby 3.3.4
|
|
||||||
rust 1.82.0
|
rust 1.82.0
|
||||||
direnv 2.35.0
|
direnv 2.35.0
|
||||||
fd 10.2.0
|
fd 10.2.0
|
||||||
1password-cli 2.30.3
|
1password-cli 2.30.3
|
||||||
age 1.2.0
|
age 1.2.1
|
||||||
bottom 0.10.2
|
bottom 0.10.2
|
||||||
dotenv-linter 3.3.0
|
dotenv-linter 3.3.0
|
||||||
editorconfig-checker 2.8.0
|
editorconfig-checker 2.8.0
|
||||||
github-cli 2.61.0
|
github-cli 2.64.0
|
||||||
hadolint 2.12.0
|
hadolint 2.12.0
|
||||||
kubectl 1.31.2
|
kubectl 1.32.0
|
||||||
pre-commit 4.0.1
|
pre-commit 4.0.1
|
||||||
ripgrep 14.1.1
|
ripgrep 14.1.1
|
||||||
shellcheck 0.10.0
|
shellcheck 0.10.0
|
||||||
shfmt 3.10.0
|
shfmt 3.10.0
|
||||||
terragrunt 0.68.8
|
terragrunt 0.68.8
|
||||||
tf-summarize 0.3.13
|
tf-summarize 0.3.14
|
||||||
yamllint 1.35.1
|
yamllint 1.35.1
|
||||||
yq 4.44.3
|
yq 4.44.6
|
||||||
bats 1.11.0
|
|
||||||
gitleaks 8.18.4
|
|
||||||
delta 0.18.1
|
|
||||||
eza 0.20.8
|
|
||||||
sops 3.9.1
|
|
||||||
|
|||||||
@@ -1,27 +1,20 @@
|
|||||||
1password-cli https://github.com/NeoHsu/asdf-1password-cli.git f5d5aab
|
1password-cli https://github.com/NeoHsu/asdf-1password-cli.git f5d5aab
|
||||||
age https://github.com/threkk/asdf-age.git 396bdf6
|
age https://github.com/threkk/asdf-age.git 396bdf6
|
||||||
asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git b5862c1
|
asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git b5862c1
|
||||||
bats https://github.com/timgluz/asdf-bats.git 299551f
|
|
||||||
bottom https://github.com/carbonteq/asdf-btm.git fd8a55a
|
|
||||||
delta https://github.com/andweeb/asdf-delta.git 501318b
|
|
||||||
direnv https://github.com/asdf-community/asdf-direnv.git 6ff3dbe
|
direnv https://github.com/asdf-community/asdf-direnv.git 6ff3dbe
|
||||||
dotenv-linter https://github.com/wesleimp/asdf-dotenv-linter.git 1369f53
|
dotenv-linter https://github.com/wesleimp/asdf-dotenv-linter.git 1369f53
|
||||||
editorconfig-checker https://github.com/gabitchov/asdf-editorconfig-checker.git 585c1d5
|
editorconfig-checker https://github.com/gabitchov/asdf-editorconfig-checker.git 585c1d5
|
||||||
eza https://github.com/lwiechec/asdf-eza.git 11f578d
|
|
||||||
fd https://gitlab.com/wt0f/asdf-fd.git 17d56e0
|
fd https://gitlab.com/wt0f/asdf-fd.git 17d56e0
|
||||||
github-cli https://github.com/bartlomiejdanek/asdf-github-cli.git e0605b7
|
github-cli https://github.com/bartlomiejdanek/asdf-github-cli.git e0605b7
|
||||||
gitleaks https://github.com/jmcvetta/asdf-gitleaks.git 0cc0d7e
|
|
||||||
golang https://github.com/asdf-community/asdf-golang.git e2527a3
|
golang https://github.com/asdf-community/asdf-golang.git e2527a3
|
||||||
hadolint https://github.com/devlincashman/asdf-hadolint.git 335e230
|
hadolint https://github.com/devlincashman/asdf-hadolint.git c8eb88b
|
||||||
kubectl https://github.com/asdf-community/asdf-kubectl.git 2fb3b57
|
kubectl https://github.com/asdf-community/asdf-kubectl.git 2fb3b57
|
||||||
pre-commit https://github.com/jonathanmorley/asdf-pre-commit.git 26bfc42
|
pre-commit https://github.com/jonathanmorley/asdf-pre-commit.git 26bfc42
|
||||||
ripgrep https://gitlab.com/wt0f/asdf-ripgrep.git e836665
|
ripgrep https://gitlab.com/wt0f/asdf-ripgrep.git e836665
|
||||||
ruby https://github.com/asdf-vm/asdf-ruby.git 194fe45
|
|
||||||
rust https://github.com/code-lever/asdf-rust.git 95acf4f
|
rust https://github.com/code-lever/asdf-rust.git 95acf4f
|
||||||
shellcheck https://github.com/luizm/asdf-shellcheck.git 66200ff
|
shellcheck https://github.com/luizm/asdf-shellcheck.git 66200ff
|
||||||
shfmt https://github.com/luizm/asdf-shfmt.git a42c5ff
|
shfmt https://github.com/luizm/asdf-shfmt.git a42c5ff
|
||||||
sops https://github.com/feniix/asdf-sops.git 5c7a2fb
|
terragrunt https://github.com/ohmer/asdf-terragrunt.git 29f2935
|
||||||
terragrunt https://github.com/ohmer/asdf-terragrunt.git 4a6651a
|
|
||||||
tf-summarize https://github.com/adamcrews/asdf-tf-summarize.git 880ad26
|
tf-summarize https://github.com/adamcrews/asdf-tf-summarize.git 880ad26
|
||||||
yamllint https://github.com/ericcornelissen/asdf-yamllint.git bc2813e
|
yamllint https://github.com/ericcornelissen/asdf-yamllint.git e4cfb17
|
||||||
yq https://github.com/sudermanjr/asdf-yq.git 772992f
|
yq https://github.com/sudermanjr/asdf-yq.git 772992f
|
||||||
|
|||||||
@@ -11,3 +11,5 @@
|
|||||||
[include]
|
[include]
|
||||||
path = ~/.config/git/overrides/config
|
path = ~/.config/git/overrides/config
|
||||||
|
|
||||||
|
[advice]
|
||||||
|
detachedHead = false
|
||||||
|
|||||||
184
local/bin/a
Executable file
184
local/bin/a
Executable file
@@ -0,0 +1,184 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# A script for encrypting and decrypting files or directories with age and SSH keys
|
||||||
|
|
||||||
|
VERSION="1.0.0"
|
||||||
|
|
||||||
|
# Default ENV values
|
||||||
|
KEYS_FILE="${AGE_KEYSFILE:-$HOME/.ssh/keys.txt}"
|
||||||
|
KEYS_SOURCE="${AGE_KEYSSOURCE:-https://github.com/ivuorinen.keys}"
|
||||||
|
LOG_FILE="${AGE_LOGFILE:-$HOME/.cache/a.log}"
|
||||||
|
|
||||||
|
VERBOSE=false
|
||||||
|
|
||||||
|
# Parse flags for verbosity
|
||||||
|
for arg in "$@"; do
|
||||||
|
if [[ "$arg" == "-v" || "$arg" == "--verbose" ]]; then
|
||||||
|
VERBOSE=true
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Ensure log directory and file exist with correct permissions
|
||||||
|
prepare_log_file() {
|
||||||
|
local log_dir
|
||||||
|
log_dir=$(dirname "$LOG_FILE")
|
||||||
|
|
||||||
|
# Create log directory if it does not exist
|
||||||
|
if [[ ! -d "$log_dir" ]]; then
|
||||||
|
mkdir -p "$log_dir"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create log file if it does not exist
|
||||||
|
if [[ ! -f "$LOG_FILE" ]]; then
|
||||||
|
touch "$LOG_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set permissions to 0600
|
||||||
|
chmod 0600 "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare_log_file
|
||||||
|
|
||||||
|
# Logging function
|
||||||
|
log_message() {
|
||||||
|
local message="$1"
|
||||||
|
echo "$(date +'%Y-%m-%d %H:%M:%S') - $message" >> "$LOG_FILE"
|
||||||
|
|
||||||
|
# Print to user if verbose flag is set
|
||||||
|
if [[ "$VERBOSE" == true ]]; then
|
||||||
|
echo "$message"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to print usage
|
||||||
|
print_help() {
|
||||||
|
cat <<EOF
|
||||||
|
Usage: a [command] [file_or_directory] [options]
|
||||||
|
|
||||||
|
Commands:
|
||||||
|
e, enc, encrypt Encrypt the specified file or directory
|
||||||
|
d, dec, decrypt Decrypt the specified file or directory
|
||||||
|
help, --help Show this help message
|
||||||
|
version, --version Show version information
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-v, --verbose Print log messages to console in addition to writing to log file
|
||||||
|
|
||||||
|
Environment Variables:
|
||||||
|
AGE_KEYSFILE Path to the SSH keys file (default: $HOME/.ssh/keys.txt)
|
||||||
|
AGE_KEYSSOURCE URL to fetch SSH keys if keys file does not exist
|
||||||
|
AGE_LOGFILE Path to the log file (default: $HOME/.cache/a.log)
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
Encrypt a file:
|
||||||
|
a e file.txt
|
||||||
|
|
||||||
|
Encrypt a directory:
|
||||||
|
a e /path/to/directory
|
||||||
|
|
||||||
|
Decrypt a file:
|
||||||
|
a d file.txt.age
|
||||||
|
|
||||||
|
Specify a custom keys file:
|
||||||
|
AGE_KEYSFILE=/path/to/keys.txt a e file.txt
|
||||||
|
|
||||||
|
Specify a custom keys source and log file:
|
||||||
|
AGE_KEYSSOURCE=https://example.com/keys.txt AGE_LOGFILE=/tmp/a.log a d file.txt.age
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to print version
|
||||||
|
print_version() {
|
||||||
|
echo "a version $VERSION"
|
||||||
|
echo "Created by Ismo Vuorinen <https://github.com/ivuorinen>"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to fetch keys if missing
|
||||||
|
fetch_keys_if_missing() {
|
||||||
|
if [[ ! -f "$KEYS_FILE" ]]; then
|
||||||
|
log_message "Keys file '$KEYS_FILE' not found. Attempting to fetch from $KEYS_SOURCE..."
|
||||||
|
mkdir -p "$(dirname "$KEYS_FILE")"
|
||||||
|
curl -s "$KEYS_SOURCE" -o "$KEYS_FILE"
|
||||||
|
|
||||||
|
if [[ $? -ne 0 || ! -s "$KEYS_FILE" ]]; then
|
||||||
|
log_message "Error: Failed to fetch keys from $KEYS_SOURCE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
chmod 0400 "$KEYS_FILE"
|
||||||
|
log_message "Keys file fetched and permissions set to 0400."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to encrypt files or directories
|
||||||
|
encrypt_file_or_directory() {
|
||||||
|
local file="$1"
|
||||||
|
if [[ -d "$file" ]]; then
|
||||||
|
for f in "$file"/*; do
|
||||||
|
encrypt_file_or_directory "$f"
|
||||||
|
done
|
||||||
|
elif [[ -f "$file" ]]; then
|
||||||
|
fetch_keys_if_missing
|
||||||
|
local output_file="${file}.age"
|
||||||
|
age -R "$KEYS_FILE" "$file" >"$output_file"
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
log_message "File encrypted successfully: $output_file"
|
||||||
|
else
|
||||||
|
log_message "Error: Failed to encrypt file '$file'."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to decrypt files or directories
|
||||||
|
decrypt_file_or_directory() {
|
||||||
|
local file="$1"
|
||||||
|
if [[ -d "$file" ]]; then
|
||||||
|
for f in "$file"/*.age; do
|
||||||
|
decrypt_file_or_directory "$f"
|
||||||
|
done
|
||||||
|
elif [[ -f "$file" ]]; then
|
||||||
|
fetch_keys_if_missing
|
||||||
|
local output_file="${file%.age}"
|
||||||
|
age -d -i "$KEYS_FILE" "$file" >"$output_file"
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
log_message "File decrypted successfully: $output_file"
|
||||||
|
else
|
||||||
|
log_message "Error: Failed to decrypt file '$file'."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main logic
|
||||||
|
case "$1" in
|
||||||
|
e|enc|encrypt)
|
||||||
|
if [[ $# -lt 2 ]]; then
|
||||||
|
log_message "Error: No file or directory specified for encryption."
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
encrypt_file_or_directory "$2"
|
||||||
|
;;
|
||||||
|
d|dec|decrypt)
|
||||||
|
if [[ $# -lt 2 ]]; then
|
||||||
|
log_message "Error: No file or directory specified for decryption."
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
decrypt_file_or_directory "$2"
|
||||||
|
;;
|
||||||
|
help|--help)
|
||||||
|
print_help
|
||||||
|
;;
|
||||||
|
version|--version)
|
||||||
|
print_version
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
log_message "Error: Unknown command '$1'"
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# vim: ft=bash:syn=sh:ts=2:sw=2:et:ai:nowrap
|
||||||
62
local/bin/ad
Executable file
62
local/bin/ad
Executable file
@@ -0,0 +1,62 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# age decrypt file with github keys
|
||||||
|
|
||||||
|
# Use ENV or default values for keys file and source
|
||||||
|
KEYS_FILE="${AGE_KEYSFILE:-$HOME/.ssh/keys.txt}"
|
||||||
|
KEYS_SOURCE="${AGE_KEYSSOURCE:-https://github.com/ivuorinen.keys}"
|
||||||
|
|
||||||
|
# Check for required commands
|
||||||
|
if ! command -v age &>/dev/null; then
|
||||||
|
echo "Error: age is not installed. Please install it to continue."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v curl &>/dev/null; then
|
||||||
|
echo "Error: curl is not installed. Please install it to continue."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure a file is provided
|
||||||
|
if [[ $# -lt 1 ]]; then
|
||||||
|
echo "Usage: $0 <file-to-decrypt>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
FILE="$1"
|
||||||
|
if [[ ! -f "$FILE" ]]; then
|
||||||
|
echo "Error: File '$FILE' does not exist."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Check if keys file exists, otherwise fetch it
|
||||||
|
if [[ ! -f "$KEYS_FILE" ]]; then
|
||||||
|
echo "Keys file '$KEYS_FILE' not found. Attempting to fetch from $KEYS_SOURCE..."
|
||||||
|
|
||||||
|
# Create the directory if it doesn't exist
|
||||||
|
mkdir -p "$(dirname "$KEYS_FILE")"
|
||||||
|
|
||||||
|
# Fetch the keys and save to the file
|
||||||
|
curl -s "$KEYS_SOURCE" -o "$KEYS_FILE"
|
||||||
|
|
||||||
|
if [[ $? -ne 0 || ! -s "$KEYS_FILE" ]]; then
|
||||||
|
echo "Error: Failed to fetch keys from $KEYS_SOURCE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set permissions to 0400
|
||||||
|
chmod 0400 "$KEYS_FILE"
|
||||||
|
echo "Keys file fetched and permissions set to 0400."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Decrypt the file
|
||||||
|
OUTPUT_FILE="${FILE%.age}"
|
||||||
|
age -d -i "$KEYS_FILE" "$FILE" >"$OUTPUT_FILE"
|
||||||
|
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo "File decrypted successfully: $OUTPUT_FILE"
|
||||||
|
else
|
||||||
|
echo "Error: Failed to decrypt file."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
60
local/bin/ae
Executable file
60
local/bin/ae
Executable file
@@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# age encrypt file with github keys
|
||||||
|
|
||||||
|
# Use ENV or default values for keys file and source
|
||||||
|
KEYS_FILE="${AGE_KEYSFILE:-$HOME/.ssh/keys.txt}"
|
||||||
|
KEYS_SOURCE="${AGE_KEYSSOURCE:-https://github.com/ivuorinen.keys}"
|
||||||
|
|
||||||
|
# Check for required commands
|
||||||
|
if ! command -v age &>/dev/null; then
|
||||||
|
echo "Error: age is not installed. Please install it to continue."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! command -v curl &>/dev/null; then
|
||||||
|
echo "Error: curl is not installed. Please install it to continue."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure a file is provided
|
||||||
|
if [[ $# -lt 1 ]]; then
|
||||||
|
echo "Usage: $0 <file-to-encrypt>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
FILE="$1"
|
||||||
|
if [[ ! -f "$FILE" ]]; then
|
||||||
|
echo "Error: File '$FILE' does not exist."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if keys file exists, otherwise fetch it
|
||||||
|
if [[ ! -f "$KEYS_FILE" ]]; then
|
||||||
|
echo "Keys file '$KEYS_FILE' not found. Attempting to fetch from $KEYS_SOURCE..."
|
||||||
|
|
||||||
|
# Create the directory if it doesn't exist
|
||||||
|
mkdir -p "$(dirname "$KEYS_FILE")"
|
||||||
|
|
||||||
|
# Fetch the keys and save to the file
|
||||||
|
curl -s "$KEYS_SOURCE" -o "$KEYS_FILE"
|
||||||
|
|
||||||
|
if [[ $? -ne 0 || ! -s "$KEYS_FILE" ]]; then
|
||||||
|
echo "Error: Failed to fetch keys from $KEYS_SOURCE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set permissions to 0400
|
||||||
|
chmod 0400 "$KEYS_FILE"
|
||||||
|
echo "Keys file fetched and permissions set to 0400."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Encrypt the file
|
||||||
|
OUTPUT_FILE="${FILE}.age"
|
||||||
|
age -R "$KEYS_FILE" "$FILE" >"$OUTPUT_FILE"
|
||||||
|
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo "File encrypted successfully: $OUTPUT_FILE"
|
||||||
|
else
|
||||||
|
echo "Error: Failed to encrypt file."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
102
local/bin/dfm
102
local/bin/dfm
@@ -169,7 +169,7 @@ section_install()
|
|||||||
;;
|
;;
|
||||||
asdf)
|
asdf)
|
||||||
msg "Installing asdf..."
|
msg "Installing asdf..."
|
||||||
bash "$DOTFILES/scripts/install-asdf.sh both" \
|
$0 asdf plugins-add \
|
||||||
&& msg_yay "asdf installed!"
|
&& msg_yay "asdf installed!"
|
||||||
;;
|
;;
|
||||||
cargo)
|
cargo)
|
||||||
@@ -371,21 +371,111 @@ section_asdf()
|
|||||||
{
|
{
|
||||||
USAGE_PREFIX="$SCRIPT asdf <command>"
|
USAGE_PREFIX="$SCRIPT asdf <command>"
|
||||||
MENU=(
|
MENU=(
|
||||||
"install:Install asdf"
|
|
||||||
"current:Show asdf current versions"
|
"current:Show asdf current versions"
|
||||||
"global:Show asdf global versions"
|
"global:Show asdf global versions"
|
||||||
"installed:Show asdf installed versions"
|
"installed:Show asdf installed versions"
|
||||||
"local:Show asdf local versions"
|
"local:Show asdf local versions"
|
||||||
|
"plugins-add:Add and update direnv and asdf-plugin-manager, and all other plugins"
|
||||||
|
"plugins-update:Update all asdf plugins"
|
||||||
|
"reset:Reset asdf plugins"
|
||||||
"versions:Show asdf versions"
|
"versions:Show asdf versions"
|
||||||
"where:Show asdf where"
|
"where:Show asdf where"
|
||||||
"which:Show asdf which"
|
"which:Show asdf which"
|
||||||
)
|
)
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
install)
|
plugins-update)
|
||||||
msg "Installing asdf..."
|
APM_BIN="$(asdf where asdf-plugin-manager)/bin/asdf-plugin-manager"
|
||||||
bash "$DOTFILES/scripts/install-asdf.sh both" \
|
|
||||||
&& msg_yay "asdf installed!"
|
msgr run "Updating all asdf plugins"
|
||||||
|
$APM_BIN update-all
|
||||||
|
$APM_BIN export > "$ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME"
|
||||||
|
msgr run_done "Updated all plugins"
|
||||||
|
;;
|
||||||
|
plugins-add)
|
||||||
|
X_GH_BIN="$DOTFILES/local/bin/x-gh-get-latest-version"
|
||||||
|
LATEST_APM="$($X_GH_BIN asdf-community/asdf-plugin-manager | sed 's/^v//')"
|
||||||
|
LATEST_DIRENV="$($X_GH_BIN asdf-community/asdf-direnv)"
|
||||||
|
PLUGIN_VERSIONS="$DOTFILES/config/asdf/plugin-versions"
|
||||||
|
APM_BIN="$HOME/.local/bin/asdf/shims/asdf-plugin-manager"
|
||||||
|
|
||||||
|
msgr run "Adding and updating direnv and asdf-plugin-manager"
|
||||||
|
asdf plugin add direnv https://github.com/asdf-community/asdf-direnv.git
|
||||||
|
asdf global direnv "$LATEST_DIRENV"
|
||||||
|
asdf install direnv "$LATEST_DIRENV"
|
||||||
|
|
||||||
|
asdf plugin add asdf-plugin-manager https://github.com/asdf-community/asdf-plugin-manager.git
|
||||||
|
asdf global asdf-plugin-manager "$LATEST_APM"
|
||||||
|
asdf install asdf-plugin-manager "$LATEST_APM"
|
||||||
|
asdf reshim
|
||||||
|
msgr run_done "direnv and asdf-plugin-manager added and updated"
|
||||||
|
|
||||||
|
msgr run "Reset plugin-versions file to the original using git"
|
||||||
|
if git ls-files --error-unmatch "$PLUGIN_VERSIONS" > /dev/null 2>&1; then
|
||||||
|
git checkout -- "$PLUGIN_VERSIONS"
|
||||||
|
fi
|
||||||
|
msgr run_done "Reset plugin-versions file"
|
||||||
|
|
||||||
|
msgr run "Adding all plugins with asdf-plugin-manager"
|
||||||
|
"$APM_BIN" add-all
|
||||||
|
msgr run_done "Added all plugins with asdf-plugin-manager"
|
||||||
|
|
||||||
|
msgr run "Install all plugins"
|
||||||
|
PLUGINS=$($APM_BIN list | awk -F ' ' '{print $1}' | sort)
|
||||||
|
for P in $PLUGINS; do
|
||||||
|
msgr run "Installing $P"
|
||||||
|
asdf install "$P" latest
|
||||||
|
asdf global "$P" latest
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
msgr run_done "Installed all plugins"
|
||||||
|
|
||||||
|
msgr run "Reshimming"
|
||||||
|
asdf reshim
|
||||||
|
msgr run_done "Reshimmed"
|
||||||
|
;;
|
||||||
|
plugins-remove)
|
||||||
|
PLUGIN_VERSIONS="$DOTFILES/config/asdf/plugin-versions"
|
||||||
|
|
||||||
|
msgr run "Remove installed plugins"
|
||||||
|
INSTALLED_ASDF_PLUGINS=$(asdf list | grep -vE "direnv|asdf-plugin-manager" | grep -v "^ ")
|
||||||
|
for P in $INSTALLED_ASDF_PLUGINS; do
|
||||||
|
asdf plugin remove "$P"
|
||||||
|
msgr nested_done "Removed $P"
|
||||||
|
done
|
||||||
|
|
||||||
|
msgr run "Reset plugin-versions file to the original using git"
|
||||||
|
if git ls-files --error-unmatch "$PLUGIN_VERSIONS" > /dev/null 2>&1; then
|
||||||
|
git checkout -- "$PLUGIN_VERSIONS"
|
||||||
|
fi
|
||||||
|
msgr run_done "Reset plugin-versions file"
|
||||||
|
|
||||||
|
msgr run_done "Remove plugins done!"
|
||||||
|
;;
|
||||||
|
reset)
|
||||||
|
APM_BIN="$(asdf where asdf-plugin-manager)/bin/asdf-plugin-manager"
|
||||||
|
|
||||||
|
msgr run "Get currently installed plugins, remove those that are not defined"
|
||||||
|
$0 asdf plugins-remove
|
||||||
|
$0 asdf plugins-add
|
||||||
|
$0 asdf fixtoolversions
|
||||||
|
asdf reshim
|
||||||
|
msgr yay "Reset asdf plugins done!"
|
||||||
|
;;
|
||||||
|
fixtoolversions)
|
||||||
|
ASDF_TOOL_VERSIONS_FILE="$DOTFILES/base/tool-versions"
|
||||||
|
ASDF_TOOL_FILE_PLUGINS=$(awk '{print $1 " " $2}' "$ASDF_TOOL_VERSIONS_FILE")
|
||||||
|
APM_BIN="$(asdf where asdf-plugin-manager)/bin/asdf-plugin-manager"
|
||||||
|
|
||||||
|
msgr run "Loading $ASDF_TOOL_VERSIONS_FILE and collecting installed"
|
||||||
|
ASDF_PLUGINS_DEFINED=$($APM_BIN list | awk -F ' ' '{print $1}')
|
||||||
|
|
||||||
|
echo "$ASDF_TOOL_FILE_PLUGINS" | \
|
||||||
|
grep -Fxv -f <(echo "$ASDF_PLUGINS_DEFINED") > tmp && \
|
||||||
|
mv tmp "$ASDF_TOOL_VERSIONS_FILE"
|
||||||
|
|
||||||
|
msgr run_done "Fixed $ASDF_TOOL_VERSIONS_FILE"
|
||||||
;;
|
;;
|
||||||
current)
|
current)
|
||||||
asdf current
|
asdf current
|
||||||
|
|||||||
Reference in New Issue
Block a user