File: //var/packages/Perl/scripts/common
#!/bin/sh
# Copyright (C) 2000-2016 Synology Inc. All rights reserved.
CHECK_AND_LINK_FILE()
{
local LINK=$1
local LINK_TARGET=$(realpath /var/packages/Perl/target/$LINK)
local LINK_BASE=$(dirname $LINK)
if [ ! -d "$LINK_BASE" ]; then
mkdir -p $LINK_BASE
fi
if [ -e "$LINK" ]; then
rm -rf $LINK
fi
if [ ! -e "$LINK" ]; then
ln -sf $LINK_TARGET $LINK
fi
}
CHECK_AND_REMOVE()
{
[ -L $1 ] && rm $1
}
CHECK_LINK_TARGET()
{
LINK=$1
LINK_TARGET_REAL=$(readlink $LINK)
LINK_TARGET=$(realpath /var/packages/Perl/target/$LINK)
if [ -z "$LINK_TARGET_REAL" ]; then
return 1
fi
if [ "$LINK_TARGET_REAL" != "$LINK_TARGET" ]; then
return 1
fi
return 0
}
EACH()
{
for file in $(cd /var/packages/Perl/target/ && find "$2" -mindepth 1 -maxdepth 1); do
$1 /$file || return $?
done
}
ALL()
{
EACH $1 "usr/local/bin" || return $?
EACH $1 "usr/local/sbin" || return $?
EACH $1 "usr/local/share" || return $?
EACH $1 "usr/local/lib" || return $?
EACH $1 "usr/bin" || return $?
EACH $1 "usr/lib" || return $?
}
DO_LINK()
{
ALL CHECK_AND_LINK_FILE
}
DO_REMOVE()
{
ALL CHECK_AND_REMOVE
}
CHECK_LINK()
{
ALL CHECK_LINK_TARGET
}