You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcpcfg/scripts/initialise

106 lines
2.5 KiB

#!/bin/bash
# Purpose: initialise ngcpcfg setup
################################################################################
set -e
set -u
# support testsuite
FUNCTIONS="${FUNCTIONS:-/usr/share/ngcp-ngcpcfg/functions/}"
HOOKS="${HOOKS:-/usr/share/ngcp-ngcpcfg/hooks/}"
if ! [ -r "${FUNCTIONS}"/main ] ; then
printf "Error: %s/main could not be read. Exiting.\n" "${FUNCTIONS}">&2
exit 1
fi
# shellcheck disable=SC1090
. "${FUNCTIONS}"/main
# main script
while (( "$#" )); do
case "${1}" in
--without-shared)
WITHOUT_SHARED='true'
shift
;;
--without_shared)
# XXX: Remove after mr10.5.
log_warn "the ${1} option is deprecated; use --without-shared instead"
WITHOUT_SHARED='true'
shift
;;
esac
done
log_debug "cd $NGCPCTL_MAIN"
cd "$NGCPCTL_MAIN"
if [ -d .git ] ; then
log_info "Git directory in $NGCPCTL_MAIN exists already, skipping creation."
else
log_debug "git init"
git init >/dev/null
chmod 0700 .git
hook_setup "${NGCPCTL_MAIN}/.git/hooks"
fi
# ignore files we do not consider as valid template files
if ! grep -qs '^# begin section managed by ngcpcfg' .gitignore ; then
echo '# begin section managed by ngcpcfg (do not edit this section by hand)
# new and old versions of conffiles, stored by dpkg
*.dpkg-*
# new and old versions of conffiles, stored by ucf
*.ucf-*
# old versions of files
*.old
# editor temp files
*~
.*.sw?
.sw?
\#*\#
DEADJOE
# multi-site support
sites/current
# end section managed by ngcpcfg' >> .gitignore
fi
log_debug "git add ."
git add .
if ! is_git_clean ; then
log_debug "git commit -a -m \"initial version of ngcpcfg on $HNAME\""
git commit -a -m "initial version of ngcpcfg on $HNAME" >/dev/null
fi
if type -p init_ha &>/dev/null ; then
if ! "${WITHOUT_SHARED:-false}" ; then
log_debug "init_ha function"
init_ha
fi
fi
if ! [ -r /etc/.gitignore ] ; then
log_info "etckeeper not present, ignoring request to add ngcp-config to /etc/.gitignore."
else
log_debug 'grep -q ngcp-config /etc/.gitignore'
if ! grep -q ngcp-config /etc/.gitignore ; then
log_info_n "etckeeper seems to be present, adding \"$NGCPCTL_MAIN\" to ignore list: "
echo "ngcp-config" >> /etc/.gitignore
log_debug 'cd /etc ; git add .gitignore ; git commit -m "add ngcp-config directory to .gitignore"'
cd /etc
git add .gitignore
git commit -m 'add ngcp-config directory to .gitignore' >/dev/null
log_info "OK"
fi
fi
log_info "Successfully finished setup."
## END OF FILE #################################################################