aboutsummaryrefslogtreecommitdiff
path: root/x11/kde3/scripts/configure.kde3
diff options
context:
space:
mode:
Diffstat (limited to 'x11/kde3/scripts/configure.kde3')
-rw-r--r--x11/kde3/scripts/configure.kde3128
1 files changed, 128 insertions, 0 deletions
diff --git a/x11/kde3/scripts/configure.kde3 b/x11/kde3/scripts/configure.kde3
new file mode 100644
index 000000000000..d7a418ba9cdf
--- /dev/null
+++ b/x11/kde3/scripts/configure.kde3
@@ -0,0 +1,128 @@
+#!/bin/sh
+
+## Create four tempfiles: A tempfile to store the selection from the menu in,
+## one to store the same selection after some transformation (for comm), one to
+## store the contents of ${ALL_MODULES} (also for comm) and one to store
+## the output of pkg_info.
+
+tempselection=`mktemp -t selection`
+tempprocessed=`mktemp -t processed`
+tempallmodules=`mktemp -t allmodules`
+tempinstalled=`mktemp -t installed`
+
+## By default, preselect all modules.
+
+for i in `${ECHO} "${ALL_MODULES}" | ${TR} '[:upper:]' '[:lower:]'`
+ do
+ eval status_$i=ON
+ done
+
+## If a configfile exists and has actual content, parse it and un-select
+## modules accordingly (the configfile is supposed to contain WITHOUT_FOO=yes)
+## lines. We don't check what's really in there, it shouldn't do harm when we
+## set bogus shell variables.
+
+if [ -s "${CONFIG_FILE}" ]; then
+ for i in `${CAT} ${CONFIG_FILE} | ${TR} '[:upper:]' '[:lower:]' \
+ | ${SED} -E -e 's/without_//g' -e 's/=yes//g'`
+ do
+ eval status_$i=OFF
+ done
+
+ ## Try to be ubersmart: Check for all installed packages and preselect
+ ## them. This catches the case where people have added ports without the
+ ## the metaport, run the metaport again and wonder why they have parts
+ ## of KDE installed afterwards that were not selected.
+ ##
+ ## Bugs: This metaport can check for existing packages, but it cannot
+ ## remove packages the user explicitly unselects, but which are
+ ## already installed.
+
+ if [ -f $tempinstalled ];then
+ ${ECHO_MSG}
+ ${ECHO_MSG} -n " Looking for installed modules."
+
+ for i in `${ECHO} "${ALL_MODULES}" | ${TR} '[:upper:]' '[:lower:]'`
+ do
+ ${PKG_INFO} | ${GREP} $i | ${SED} -e 's/-.*//g' >> $tempinstalled
+ ${ECHO_MSG} -n "."
+ done
+
+ for i in `${CAT} $tempinstalled`
+ do
+ eval status_$i=ON
+ done
+ fi
+fi
+
+## Run the menu dialog, except BATCH is defined. We define BATCH automatically
+## if people have WITH_FOO* set in their make.conf or on the commandline.
+## Actually, we don't even run this whole script at all if BATCH is defined...
+## But I'll leave it in just in case, and also as a reference to andreas@
+## who came up with this kind of configuration magic first and from whose ports
+## I've stolen it all. Save the results in the tempselection tempfile.
+
+if [ -z "${BATCH}" ]; then
+ /usr/bin/dialog --title "K Desktop Environment Customized Installation" --clear \
+ --checklist "\n\
+Please select what additional KDE modules you would like to install.\n\n" \
+-1 -1 15 \
+"KDEADDONS" "Additional plugins and scripts for some KDE applications" "$status_kdeaddons" \
+"KDEADMIN" "KDE applications related to system administration" "$status_kdeadmin" \
+"KDEARTWORK" "Additional themes, sounds, wallpapers and window styles" "$status_kdeartwork" \
+"KDEVELOP" "Powerful IDE for developing KDE/Qt-based applications" "$status_kdevelop" \
+"KDEEDU" "Collection of entertaining, educational programs" "$status_kdeedu" \
+"KDEGAMES" "Games like kolf, patience, atlantik, etc" "$status_kdegames" \
+"KDEGRAPHICS" "Graphics utilities like kview, kpaint, kghostview, etc" "$status_kdegraphics" \
+"KDEMULTIMEDIA" "Multimedia utilities like noatun, kmix, etc" "$status_kdemultimedia" \
+"KDENETWORK" "Network-related programs like kmail, knode, kppp, etc" "$status_kdenetwork" \
+"KOFFICE" "Office Suite including wordprocessor, spreadsheet, etc" "$status_koffice" \
+"KDEPIM" "Personal Information Management" "$status_kdepim" \
+"KDESDK" "KDE software development kit" "$status_kdesdk" \
+"KDETOYS" "Miscellaneous small applications" "$status_kdetoys" \
+"KDEUTILS" "Utilities like kcalc, kcharselect, ark, kedit, etc" "$status_kdeutils" \
+"QUANTA" "Comprehensive website development environment" "$status_quanta" \
+2> $tempselection
+
+ ## Save the return value from dialog.
+
+ retval=$?
+
+ ## Write out all the module names into a newline-delimited list...
+
+ if [ -f $tempallmodules ]; then
+ ${ECHO} "$ALL_MODULES" | ${SED} -E -e 's/[[:space:]]+/ /g' | ${TR} '[:space:]' '\n' > $tempallmodules
+ fi
+
+ ## ...do the same for the selection made in the dialog, comm -23 the
+ ## two files to get the delta and set that as shell variables.
+
+ if [ -s $tempselection ]; then
+ ${CAT} $tempselection | ${SED} -E -e 's/[[:space:]]+/ /g' \
+ -e 's/"//g' | ${TR} '[:space:]' '\n' > $tempprocessed
+ set `/usr/bin/comm -23 $tempallmodules $tempprocessed`
+ fi
+
+ ## Clean out the tempfiles.
+
+ rm -f $tempselection $tempprocessed $tempallmodules $tempinstalled
+
+ ## If the user selected "Cancel" in the dialog, exit.
+
+ if [ $retval = 1 ]; then
+ ${ECHO_MSG} "Aborting"
+ exit 1
+ fi
+fi
+
+## Create Makefile.inc
+
+${MKDIR} -p ${WRKDIRPREFIX}${CURDIR}
+${TOUCH} ${WRKDIRPREFIX}${CURDIR}/Makefile.inc
+
+## Populate Makefile.inc by writing out the delta we saved above.
+
+while [ $1 ]; do
+ ${ECHO} "WITHOUT_$1=yes" >> ${WRKDIRPREFIX}${CURDIR}/Makefile.inc;
+ shift
+done