Gracefully handle changes in yadm.cygwin-copy
This commit is contained in:
parent
f8e0bd593d
commit
7538851fe3
2 changed files with 32 additions and 0 deletions
|
@ -1,5 +1,6 @@
|
|||
load common
|
||||
load_fixtures
|
||||
status=;output=; #; populated by bats run()
|
||||
|
||||
IN_REPO=(alt*)
|
||||
export TEST_TREE_WITH_CYGWIN=1
|
||||
|
@ -14,6 +15,7 @@ test_alt() {
|
|||
local cygwin_copy="$1"
|
||||
local is_cygwin="$2"
|
||||
local expect_link="$3"
|
||||
local preexisting_link="$4"
|
||||
|
||||
case "$cygwin_copy" in
|
||||
true|false)
|
||||
|
@ -30,8 +32,17 @@ test_alt() {
|
|||
local expected_content
|
||||
expected_content="$T_DIR_WORK/alt-test##$(PATH="$T_TMP:$PATH" uname -s)"
|
||||
|
||||
if [ "$preexisting_link" = 'symlink' ]; then
|
||||
ln -s "$expected_content" "$T_DIR_WORK/alt-test"
|
||||
elif [ "$preexisting_link" = 'file' ]; then
|
||||
touch "$T_DIR_WORK/alt-test"
|
||||
fi
|
||||
|
||||
PATH="$T_TMP:$PATH" run "${T_YADM_Y[@]}" alt
|
||||
|
||||
echo "Alt output:$output"
|
||||
echo "Alt status:$status"
|
||||
|
||||
if [ -L "$T_DIR_WORK/alt-test" ] && [ "$expect_link" != 'true' ] ; then
|
||||
echo "ERROR: Alt should be a simple file, but isn't"
|
||||
return 1
|
||||
|
@ -100,3 +111,21 @@ test_alt() {
|
|||
"
|
||||
test_alt 'false' 'true' 'true'
|
||||
}
|
||||
|
||||
@test "Option 'yadm.cygwin-copy' (preexisting symlink) " {
|
||||
echo "
|
||||
When the option 'yadm.cygwin-copy' is true
|
||||
and the OS is CYGWIN
|
||||
Verify alternate is a copy
|
||||
"
|
||||
test_alt 'true' 'true' 'false' 'symlink'
|
||||
}
|
||||
|
||||
@test "Option 'yadm.cygwin-copy' (preexisting file) " {
|
||||
echo "
|
||||
When the option 'yadm.cygwin-copy' is true
|
||||
and the OS is CYGWIN
|
||||
Verify alternate is a copy
|
||||
"
|
||||
test_alt 'true' 'true' 'false' 'file'
|
||||
}
|
||||
|
|
3
yadm
3
yadm
|
@ -199,6 +199,9 @@ function alt() {
|
|||
debug "Linking $alt_path to $new_link"
|
||||
[ -n "$loud" ] && echo "Linking $alt_path to $new_link"
|
||||
if [ "$do_copy" -eq 1 ]; then
|
||||
if [ -L "$new_link" ]; then
|
||||
rm -f "$new_link"
|
||||
fi
|
||||
cp -f "$alt_path" "$new_link"
|
||||
else
|
||||
ln -nfs "$alt_path" "$new_link"
|
||||
|
|
Loading…
Reference in a new issue