feat(install-script): check command to verify linked target

This commit is contained in:
TheK4n 2023-10-11 22:11:04 +03:00
parent 52ad61ed16
commit 4ce56ce9e0

21
install
View File

@ -2,7 +2,7 @@
set -ue set -ue
readonly SANDBOX_PATH="/tmp/.dotfiles-install-$(date +%H-%M-%s)" readonly SANDBOX_PATH="$(mktemp -d)"
readonly TARGET_PATH="$HOME" readonly TARGET_PATH="$HOME"
@ -38,7 +38,6 @@ _die_if_installed() {
} }
_link_files_in_sandbox() { _link_files_in_sandbox() {
mkdir "$SANDBOX_PATH"
for target in "$@"; do for target in "$@"; do
echo "installing: $target" echo "installing: $target"
if [ ! "$(dirname "$target")" = "." ]; then if [ ! "$(dirname "$target")" = "." ]; then
@ -109,7 +108,6 @@ cmd_nvim() {
_link_files_in_sandbox ${TARGETS["nvim"]} _link_files_in_sandbox ${TARGETS["nvim"]}
__install_from_sandbox __install_from_sandbox
nvim +Lazy
} }
cmd_ssh() { cmd_ssh() {
@ -191,13 +189,7 @@ cmd_docker() {
__install_from_sandbox __install_from_sandbox
} }
is_target_exists() {
test " ${!TARGETS[@]} " =~ " $1 "
}
cmd_unlink() { cmd_unlink() {
is_target_exists "$1" || _die "target not exists" 1
local target local target
for target in ${TARGETS["$1"]} for target in ${TARGETS["$1"]}
do do
@ -211,6 +203,16 @@ cmd_no_target() {
_die "TARGET not exists" 1 _die "TARGET not exists" 1
} }
cmd_check() {
local target
for target in ${TARGETS["$1"]}
do
if [ ! -e "$TARGET_PATH/$target" ]; then
echo "$target not linked"
fi
done
}
cmd_install() { cmd_install() {
for target in "$@"; do for target in "$@"; do
case "$target" in case "$target" in
@ -246,6 +248,7 @@ Usage: ./install.sh check TARGET"
case "$1" in case "$1" in
install) shift; cmd_install "$@" ;; install) shift; cmd_install "$@" ;;
unlink) shift; cmd_unlink "$@" ;; unlink) shift; cmd_unlink "$@" ;;
check) shift; cmd_check "$@" ;;
help) shift; cmd_help "$@" ;; help) shift; cmd_help "$@" ;;
*) shift; cmd_help "$@" ;; *) shift; cmd_help "$@" ;;
esac esac