From a90ae0e8460bfb43da87a6d296823a50a3e3f604 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 14 Dec 2008 17:09:23 +0100 Subject: Add exit1 function to mkldapdb. --- ldap/mkldapdb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'ldap/mkldapdb') diff --git a/ldap/mkldapdb b/ldap/mkldapdb index 77cb6d5..229abc9 100755 --- a/ldap/mkldapdb +++ b/ldap/mkldapdb @@ -15,11 +15,16 @@ fi # config defaults as of slapd 2.4.10-3 backend="hdb" +exit1() { + echo >&2 "Error: $1" + echo >&2 "Exiting..." + exit 1 +} + # Ensure all required values are properly resolved for var in basedn dnsdomain orgname backend; do if [ -z "`eval echo '$'$var`" ]; then - echo 1>&2 "ERROR: Required variable '$var' missing. Exiting...!" - exit 1 + exit1 "Required variable '$var' missing. Exiting...!" fi done -- cgit v1.2.3 From 2edca013de8ec1a6e32cff62fafe28383c291d6e Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Sun, 14 Dec 2008 17:21:23 +0100 Subject: Add getopt option parsing to mkldapdb. --- ldap/mkldapdb | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 92 insertions(+), 7 deletions(-) (limited to 'ldap/mkldapdb') diff --git a/ldap/mkldapdb b/ldap/mkldapdb index 229abc9..8ae9f24 100755 --- a/ldap/mkldapdb +++ b/ldap/mkldapdb @@ -4,23 +4,108 @@ set -e umask 066 -# Resolve some defaults from other system config -basedn="`grep '^BASE\b' /etc/ldap/ldap.conf | sed -e 's/^BASE[[:space:]]\+//' -e 's/,[[:space:]]\+/,/g'`" -dnsdomain="`dnsdomainname`" -orgname="" -if [ -r /etc/local-ORG/orgname ]; then - orgname="$(head -n 1 /etc/local-ORG/orgname)" -fi +PRG=$(basename "$0") + +TEMP=$(getopt -s sh -o b:e:d:fh -l basedn:,enable:,disable:,force,help -n "$PRG" -- "$@") +if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi +eval set -- "$TEMP" + +getbasedn() { + grep '^BASE\b' /etc/ldap/ldap.conf | sed -e 's/^BASE[[:space:]]\+//' -e 's/,[[:space:]]\+/,/g' +} +getdnsdomain() { + dnsdomainname +} +getorgname() { + if [ -r /etc/local-ORG/orgname ]; then + head -n 1 /etc/local-ORG/orgname + fi +} # config defaults as of slapd 2.4.10-3 backend="hdb" +# extension default states (enabled/disabled) +cipux=1 +horde= + +# strings above, and either functions above or strings right below, +# can be overrided locally through this config file +if [ -f /etc/local/mkldapdb.cfg ]; then + . /etc/local/mkldapdb.cfg +fi + +basedn="${basedn:-$(getbasedn)}" +dnsdomain="${dnsdomain:-$(getdnsdomain)}" +orgname="${orgname:-$(getorgname)}" + +showhelp() { + cat <&2 "Error: $1" echo >&2 "Exiting..." exit 1 } +while true ; do + case "$1" in + -b|--basedn) basedn="$2"; shift 2;; + -e|--enable-extension) + case "$2" in + cipux|horde) eval "$2=1";; + *) exit1 "Unknown extension \"$2\"" + esac + shift 2 + ;; + -d|--disable-extension) + case "$2" in + cipux|horde) eval "$2=";; + *) exit1 "Unknown extension \"$2\"" + esac + shift 2 + ;; + -f|--force) force="1"; shift;; + -h|--help) showhelp; exit 0;; + --) shift; break;; + *) exit1 "Internal error!";; + esac +done + # Ensure all required values are properly resolved for var in basedn dnsdomain orgname backend; do if [ -z "`eval echo '$'$var`" ]; then -- cgit v1.2.3 From 5c38134be1197388e316bb0a17558560ef33a15c Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Mon, 15 Dec 2008 15:31:12 +0100 Subject: Add licensing header. Fix type. --- ldap/mkldapdb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'ldap/mkldapdb') diff --git a/ldap/mkldapdb b/ldap/mkldapdb index 8ae9f24..fbbdb09 100755 --- a/ldap/mkldapdb +++ b/ldap/mkldapdb @@ -1,4 +1,9 @@ #!/bin/sh +# +# /etc/local-COMMON/ldap/mkldapdb +# Copyright 2008 Jonas Smedegaard +# +# Setup LDAP database from skeleton files set -e @@ -145,7 +150,7 @@ spacecat $snippets | sed >>"$tempdir/slapd.conf" \ -e "s/@SUFFIX@/$basedn/g" \ -e "s/@ADMIN@/cn=admin,$basedn/g" -# TODO: Better separate core from normal lif files than "below 100"... +# TODO: Better separate core from normal ldif files than "below 100"... file=99 for section in core base cipux horde; do sed <"$masterdir/db/$section.ldif.in" >"$tempdir/${file}_$section.ldif" \ -- cgit v1.2.3