starship related

This commit is contained in:
2026-01-26 14:25:36 +08:00
parent b5f7f2caed
commit 0a230f59f9
3 changed files with 25 additions and 21 deletions

View File

@@ -1,24 +1,27 @@
function starship_polyjuice() {
if [ ! -n "${ZSH_POLYJUICE_STARSHIP_CONFIG_FILE}" ]; then
echo "STARSHIP_CONFIG_FILE is not set. Please source `\$HOME/.zshrc` first."
return
fi
starship_config_file="$HOME/.config/starship.toml"
if [ -f $starship_config_file ]; then
if $(file "$starship_config_file" | grep -q "symbolic link") ; then
if [[ $(readlink "$starship_config_file") != $(realpath "$ZSH_POLYJUICE_STARSHIP_CONFIG_FILE") ]]; then
ln -sf "$ZSH_POLYJUICE_STARSHIP_CONFIG_FILE" "$starship_config_file"
fi
local config_file_dir="$(dirname "$ZSH_POLYJUICE_STARSHIP_CONFIG_FILE")"
case "$1" in
list)
ls $config_file_dir
;;
set)
local _target="$config_file_dir/starship_$2.toml"
if [ -f "$_target" ]; then
export STARSHIP_CONFIG=$_target
echo "Starship config set to '$_target'"
else
if [ ! -f "$starship_config_file.bkp" ]; then
mv "$starship_config_file" "$starship_config_file.bkp"
ln -s "$ZSH_POLYJUICE_STARSHIP_CONFIG_FILE" "$starship_config_file"
else
echo "Backup file already exists. Please remove $starship_config_file.bkp and try again."
return
fi
fi
else
ln -sf "$ZSH_POLYJUICE_STARSHIP_CONFIG_FILE" "$starship_config_file"
echo "Config '$_target' does not exist."
fi
;;
reset)
export STARSHIP_CONFIG="$ZSH_POLYJUICE_STARSHIP_CONFIG_FILE"
;;
*)
echo "Usage: starship_polyjuice <command> [args]"
echo "Commands:"
echo " list List available Starship configs in the polyjuice directory."
echo " set <name> Select a config by base name (omit the .toml extension)."
echo " reset Reset the Starship configuration to the default polyjuice configuration."
;;
esac
}

View File

@@ -20,7 +20,7 @@ export ZSH_POLYJUICE_PLUGINS_PATH="$ZSH_POLYJUICE_PATH/plugins"
export ZSH_POLYJUICE_ALIAS_PATH="$ZSH_POLYJUICE_PATH/alias"
export ZSH_POLYJUICE_SETTINGS_PATH="$ZSH_POLYJUICE_PATH/settings"
export ZSH_POLYJUICE_FUNCTIONS_PATH="$ZSH_POLYJUICE_PATH/functions"
export ZSH_POLYJUICE_STARSHIP_CONFIG_FILE="$ZSH_POLYJUICE_PATH/../starship/starship.toml"
export ZSH_POLYJUICE_STARSHIP_CONFIG_FILE="$ZSH_POLYJUICE_PATH/../starship/starship_default.toml"
# Load basic settings `zsh/settings`
for _file in "$ZSH_POLYJUICE_SETTINGS_PATH"/*.sh; do
@@ -59,6 +59,7 @@ fi
# using starship as prompt
if (( $+commands[starship] )); then
export STARSHIP_CONFIG="$ZSH_POLYJUICE_STARSHIP_CONFIG_FILE"
eval "$(starship init zsh)"
else
echo '[starship] not found, please install it.'