mirror of
https://github.com/jimeh/dotify.git
synced 2026-02-19 10:06:39 +00:00
Basic working root link setup
This commit is contained in:
@@ -5,6 +5,13 @@ dotify-get-source-path() {
|
|||||||
echo "$(dirname "$dotfile")"
|
echo "$(dirname "$dotfile")"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dotify-get-absolute-source-path() {
|
||||||
|
local dotfile="$(dotify-get-dotfile-path)"
|
||||||
|
if [ "$?" != "0" ]; then return 1; fi
|
||||||
|
|
||||||
|
echo "$(abs_dirname "$dotfile")"
|
||||||
|
}
|
||||||
|
|
||||||
dotify-valid-source-path() {
|
dotify-valid-source-path() {
|
||||||
dotify-get-source-path >/dev/null 2>&1
|
dotify-get-source-path >/dev/null 2>&1
|
||||||
return "$?"
|
return "$?"
|
||||||
|
|||||||
@@ -1,3 +1,14 @@
|
|||||||
dotify-setup-root-link() {
|
dotify-setup-root-link() {
|
||||||
return 0
|
if [ -n "$DOTIFY_ROOT_LINK_IS_SETUP" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
local source="$(dotify-get-absolute-source-path)"
|
||||||
|
local target="$(dotify-get-target-path)/$(dotify-get-root-link)"
|
||||||
|
|
||||||
|
if [ "$source" != "$(abs_path "$target")" ]; then
|
||||||
|
dotify-create-symlink "$source" "$target"
|
||||||
|
fi
|
||||||
|
|
||||||
|
DOTIFY_ROOT_LINK_IS_SETUP="1"
|
||||||
}
|
}
|
||||||
|
|||||||
31
test/integration/root-link.test.sh
Executable file
31
test/integration/root-link.test.sh
Executable file
@@ -0,0 +1,31 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
source "../test-helper.sh"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Integration test: root link
|
||||||
|
#
|
||||||
|
|
||||||
|
# Create temp files/folders used for tests.
|
||||||
|
TEST_SOURCE="tmp/source"
|
||||||
|
TEST_TARGET="tmp/target"
|
||||||
|
ABS_TEST_SOURCE="$(pwd)/$TEST_SOURCE"
|
||||||
|
MY_DOTFILE="$TEST_SOURCE/Dotfile"
|
||||||
|
mkdir -p "$TEST_SOURCE" "$TEST_TARGET"
|
||||||
|
|
||||||
|
PROFILE_TXT="# I am a .profile file"
|
||||||
|
echo "$PROFILE_TXT" > "$TEST_SOURCE/profile"
|
||||||
|
|
||||||
|
# Creates root link.
|
||||||
|
echo -e "profile -> .profile" > "$MY_DOTFILE"
|
||||||
|
assert "dotify -f '$MY_DOTFILE' -t '$TEST_TARGET' | head -n 1" \
|
||||||
|
" create: $TEST_TARGET/.dotfiles --> $ABS_TEST_SOURCE"
|
||||||
|
assert "readlink '$TEST_TARGET/.dotfiles'" "$ABS_TEST_SOURCE"
|
||||||
|
rm "$TEST_TARGET/.dotfiles"
|
||||||
|
rm "$TEST_TARGET/.profile"
|
||||||
|
rm "$MY_DOTFILE"
|
||||||
|
|
||||||
|
# Remove temp files/folders used for locate-dotfile() tests.
|
||||||
|
rm "$TEST_SOURCE/profile"
|
||||||
|
rmdir "$TEST_SOURCE" "$TEST_TARGET" "tmp"
|
||||||
|
|
||||||
|
assert_end 'Integration: root link'
|
||||||
Reference in New Issue
Block a user