90 lines
2.6 KiB
Makefile
90 lines
2.6 KiB
Makefile
#!/bin/sh
|
|
#-*- mode: makefile; tab-width: 4; -*-
|
|
# ex:ts=4
|
|
# $FreeBSD$
|
|
|
|
# Set strict file and directory permissions.
|
|
# Idea taken from nagvis install.sh
|
|
# 2010-12-30 olli hauer
|
|
|
|
OWNER=%%WWW_OWNER%%:%%WWW_GROUP%%
|
|
DIRMODE=%%DIRMODE%%
|
|
FILEMODE=%%FILEMODE%%
|
|
|
|
set_perm() {
|
|
# create missing directories
|
|
[ "${2#${2%?}}" != '*' ] && /bin/mkdir -p ${2}
|
|
|
|
if [ -d "$2" -o -f "$2" -o "${2#${2%?}}" = '*' ]; then
|
|
# Don't do anything when called with globbing and directory is empty
|
|
if [ "${2#${2%?}}" = '*' -a -z "$(/bin/ls "${2%/*}/")" ]; then
|
|
return 0
|
|
else
|
|
if [ -z $3 ]; then
|
|
# echo "chown -R $OWNER $2"
|
|
chown -R $OWNER $2
|
|
else
|
|
# echo "chown $OWNER $2"
|
|
chown $OWNER $2
|
|
|
|
fi
|
|
# echo "chmod $1 $2"
|
|
chmod $1 $2
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# handle single files
|
|
set_file_perm() {
|
|
# echo "chown $OWNER $2"
|
|
chown $OWNER $2
|
|
|
|
# echo "chmod $1 $2"
|
|
chmod $1 $2
|
|
}
|
|
|
|
# fix directory owner if installed via package
|
|
if [ "$2" = "POST-INSTALL" ]; then
|
|
|
|
# honor PREFIX if installed from package
|
|
if [ ! -z $PKG_PREFIX ]; then
|
|
NAGVIS_PATH=${PKG_PREFIX%/}/www/nagvis
|
|
else
|
|
NAGVIS_PATH=%%WWWDIR%%
|
|
fi
|
|
|
|
echo "==========================================================="
|
|
echo "Set access rights on ${NAGVIS_PATH} ..."
|
|
|
|
# Set more strict access rights for save keeping. There is no need
|
|
# to grant WWW_OWNER:WWW_GROUP general ownership and write permission.
|
|
chown root:%%WWW_GROUP%% "$NAGVIS_PATH"
|
|
chmod $DIRMODE "$NAGVIS_PATH"
|
|
|
|
# from nagvis source install.sh (with some modifications)
|
|
set_perm $DIRMODE "$NAGVIS_PATH/etc" non_recursive
|
|
set_perm $DIRMODE "$NAGVIS_PATH/etc/automaps"
|
|
set_perm $FILEMODE "$NAGVIS_PATH/etc/automaps/*"
|
|
set_perm $DIRMODE "$NAGVIS_PATH/etc/geomap"
|
|
set_perm $FILEMODE "$NAGVIS_PATH/etc/geomap/*"
|
|
set_perm $DIRMODE "$NAGVIS_PATH/etc/maps"
|
|
set_perm $FILEMODE "$NAGVIS_PATH/etc/maps/*"
|
|
|
|
set_perm $DIRMODE "$NAGVIS_PATH/share/userfiles/images/maps"
|
|
set_perm $FILEMODE "$NAGVIS_PATH/share/userfiles/images/maps/*"
|
|
set_perm $DIRMODE "$NAGVIS_PATH/share/userfiles/images/shapes"
|
|
set_perm $FILEMODE "$NAGVIS_PATH/share/userfiles/images/shapes/*"
|
|
set_perm $DIRMODE "$NAGVIS_PATH/var"
|
|
set_perm $FILEMODE "$NAGVIS_PATH/var/*"
|
|
set_perm $DIRMODE "$NAGVIS_PATH/var/tmpl"
|
|
set_perm $DIRMODE "$NAGVIS_PATH/var/tmpl/cache"
|
|
set_perm $DIRMODE "$NAGVIS_PATH/var/tmpl/compile"
|
|
set_perm $DIRMODE "$NAGVIS_PATH/share/var"
|
|
set_perm $FILEMODE "$NAGVIS_PATH/share/var/*"
|
|
|
|
# some additional file permission adjustments
|
|
set_file_perm $FILEMODE "$NAGVIS_PATH/etc/nagvis.ini.*"
|
|
[ -f "$NAGVIS_PATH/etc/auth.db" ] && set_file_perm $FILEMODE "$NAGVIS_PATH/etc/auth.db"
|
|
|
|
echo "==========================================================="
|
|
fi
|