#!/bin/bash

CONFIG=config.mk

function help () {
	echo Options:
	grep -- -- $0  | grep -v "sed\|pkg-config" | sed -r "s@[=*)]+@@ ; s@\t@@ ; s@--prefix@--prefix=DESTDIR@" | tr "\n" " " | fold -s ; echo
}

function swapvalue () {
	sed -i "s@\(${1}=\).*@\1${2}@g" $CONFIG
}	

function print_default () {
cat << default_end
CFLAGS=-O3 -march=i686 -fomit-frame-pointer -pipe
P_CMD=1
P_CPU=1
P_DISKS=1
P_MBOX=1
P_MEM=1
# under developing...
# P_MOC=1
P_MPD=1
P_NET=1
P_NEWS=1
P_SENSOR=1
P_SND=1
P_TIME=1
P_UPTIME=1
ifeq (\$(P_CMD),1)
	PLUGINS+=-DPLUGIN_CMD
endif
ifeq (\$(P_CPU),1)
	PLUGINS+=-DPLUGIN_CPU
endif
ifeq (\$(P_DISKS),1)
	PLUGINS+=-DPLUGIN_DISKS
endif	
ifeq (\$(P_MBOX),1)
        PLUGINS+=-DPLUGIN_MBOX
endif        
ifeq (\$(P_MEM),1)
	PLUGINS+=-DPLUGIN_MEM
endif
#ifeq (\$(P_MOC),1)
#	PLUGINS+=-DPLUGIN_MOC
#endif	
ifeq (\$(P_MPD),1)
	PLUGINS+=-DPLUGIN_MPD
endif	
ifeq (\$(P_NET),1)
	PLUGINS+=-DPLUGIN_NET
endif
ifeq (\$(P_NEWS),1)
        PLUGINS+=-DPLUGIN_NEWS
        LD_OPTS+=\`pkg-config --libs sqlite3\`
        CFLAGS+=\`pkg-config --cflags sqlite3\`
endif
ifeq (\$(P_SENSOR),1)
	PLUGINS+=-DPLUGIN_SENSORS
endif	
ifeq (\$(P_SND),1)
	PLUGINS+=-DPLUGIN_SOUND
	LD_OPTS+=\`pkg-config --libs alsa\`
	CFLAGS+=\`pkg-config --cflags alsa\`
endif
ifeq (\$(P_TIME),1)
	PLUGINS+=-DPLUGIN_TIME
endif
ifeq (\$(P_UPTIME),1)
	PLUGINS+=-DPLUGIN_UPTIME
endif	

DESTDIR=/usr/
default_end
}	


while [ -n "$1" ]; do
	case "$1" in
	--help)
		help
		exit 0
		;;
	--print-default-config)
		print_default
		exit 0
		;;
	--prefix=*)
		swapvalue DESTDIR $(echo $1 | sed "s@--prefix=@@")
		shift
		;;
        --disable-cmd)
                swapvalue P_CMD 0
                shift
                ;;
	--disable-cpu)
		swapvalue P_CPU 0
		shift
		;;
	--disable-disks)
		swapvalue P_DISK 0
                shift
		;;
        --disable-mbox)
                swapvalue P_MBOX 0
                shift
                ;;
	--disable-mem)
		swapvalue P_MEM 0
		shift
		;;
	--disable-mpd)
		swapvalue P_MPD 0
		shift
		;;
	--disable-net)
		swapvalue P_NET 0
		shift
		;;
        --disable-news)
                swapvalue P_NEWS 0
                shift
                ;;
	--disable-sensor)
		swapvalue P_SENSOR 0
		shift
		;;
	--disable-snd)
		swapvalue P_SND 0
		shift
		;;
	--disable-time)
		swapvalue P_TIME 0
		shift
		;;
	--disable-uptime)
		swapvalue P_UPTIME 0
		shift
		;;
	*)
		echo Invalid option: $1 >&2
		exit 1
		;;
	esac	
done	

if [ -n "$CFLAGS" ]; then
	swapvalue CFLAGS "${CFLAGS}"
fi	
