starship related
This commit is contained in:
@@ -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
|
||||
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"
|
||||
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
|
||||
echo "Backup file already exists. Please remove $starship_config_file.bkp and try again."
|
||||
return
|
||||
echo "Config '$_target' does not exist."
|
||||
fi
|
||||
fi
|
||||
else
|
||||
ln -sf "$ZSH_POLYJUICE_STARSHIP_CONFIG_FILE" "$starship_config_file"
|
||||
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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user