File:  [ELWIX - Embedded LightWeight unIX -] / elwix / config / rc.subr
Revision 1.6.2.1: download - view: text, annotated - select for diffs - revision graph
Wed Jul 31 15:53:43 2013 UTC (11 years, 3 months ago) by misho
Branches: elwix1_9
Diff to: branchpoint 1.6: preferred, unified
add new api func

#
# ELWIX project build helper subroutines
#
# (C) AITNET ltd - Sofia/Bulgaria <office@aitnet.org>
#    by Michael Pounov <misho@elwix.org>
#
# $Id: rc.subr,v 1.6.2.1 2013/07/31 15:53:43 misho Exp $
#

### Dont edit this file !!!

CheckVer()
{
	[ -z "$1" -o ! -r "$1" ] && return 1

	cat $1 | awk '($1 == "ELWIX") { split($3, arr, ":"); printf("%s", arr[2]); }'
	return 0
}

SnitVer()
{
	install -d ${TOPDIR}

	V=$(CheckVer $1)

	if [ $? -ne 0 ]; then
# file not found
		return 1
	elif [ X"$V" != X"${VERSION}" ]; then
# different ELWIX version
		return 2
	fi

# already present file with same version
	return 0
}

# $1 = fs/elwix
# $2 = config/etc/default
MakeFS_var()
{
	cd $1

	install -d altroot;
	install -d altroot/var;
	install -d altroot/var/account;
	install -d altroot/var/at;
	install -d altroot/var/at/jobs;
	install -d altroot/var/at/spool;
	install -d -g 63 -m 0770 altroot/var/authpf;
	install -d -m 0750 altroot/var/cron;
	install -d -m 0700 altroot/var/cron/tabs;
	install -d altroot/var/db;
	install -d -m 0555 altroot/var/empty;
	install -d altroot/var/log;
	install -d -o 101 -g 101 altroot/var/log/quagga;
	install -d -o 883 -g 883 altroot/var/mqtt;
	install -d altroot/var/named;
	install -d altroot/var/run;
	install -d altroot/var/sys;
	install -d -o 53 -g 53 altroot/var/run/named;
	install -d -o 101 -g 101 altroot/var/run/quagga;
	install -d altroot/var/spool;
	install -d -o 66 -g 68 -m 0775 altroot/var/spool/lock;
	install -d -g 1 altroot/var/spool/lpd;
	install -d -g 1 altroot/var/spool/output;
	install -d -g 1 altroot/var/spool/output/lpd;

	ln -fs /tmp altroot/var/tmp;

	touch altroot/var/run/utmp

	touch altroot/var/account/acct

	touch altroot/var/log/elwix
	touch altroot/var/log/lastlog
	touch altroot/var/log/wifi.log
	touch altroot/var/log/utx.log

	touch altroot/var/log/auth.log
	touch altroot/var/log/cron
	touch altroot/var/log/console.log
	touch altroot/var/log/debug.log
	touch altroot/var/log/init.log
	touch altroot/var/log/lpd-errs
	touch altroot/var/log/maillog
	touch altroot/var/log/messages
	touch altroot/var/log/security
	touch altroot/var/log/xferlog
	touch altroot/var/log/ppp.log
	chgrp 69 altroot/var/log/ppp.log

	InstallDir ${WORLD}/var/named $1/altroot/var/named
	InstallList ${ELWIX_BSDSRC} ${BSDSRC} $1/altroot/var/named
	install -v $2/resolv.safe altroot/var/run/resolv.conf

	chown -hR root:wheel .
	cd -
}

# $1 = ELWIX install list config
# $2 = From World dir
# $3 = To Dest dir
InstallList()
{
	local TMPFILE=$(mktemp -q /tmp/instlist.XXXXXX)
	if [ $? -ne 0 ]; then
		echo "Error:: Can't create temp file, exiting..."
		exit 1
	fi

	sed -nE -e 's/^ *([^ #]+) */\1/p' < $1 | tr ':' '\n' >$TMPFILE
	cd $2
	for i in $(cat $TMPFILE); do
		if [ -x $i ]; then
			echo "Strip '$i'"
			strip -s $i
		fi
	done
	cd -
	tar -C $2 -cvf - -T $TMPFILE | tar -C $3 -x -f -
	rm -f $TMPFILE
}

# $1 = From dir
# $2 = To dir
InstallDir()
{
	cd $1
	pax -rw -pe -X . $2
	cd -
}

# $* = Program arguments for install tool
InstallProg()
{
	install -c $*
}

# $1 = file_pattern
# $2 = From dir
# $3 = To dir
InstallFiles()
{
	if [ -d "$2" ]; then
		cd $2
		find . -type f -name "$1" | 
			tar -cvf - -T - | tar -C $3 -xf -
		cd -
	fi
}

# $1 = Directory for clean
CleanCVS()
{
	find $1 -type d -name CVS -exec rm -rf {} \; >/dev/null 2>&1
	find $1 -type f -name .#\* -exec rm -f {} \; >/dev/null 2>&1
}

# $1 = file_pattern
# $2 = From dir
StripFiles()
{
	if [ -d "$2" ]; then
		local TMPFILE=$(mktemp -q /tmp/instlist.XXXXXX)
		if [ $? -ne 0 ]; then
			echo "Error:: Can't create temp file, exiting..."
			exit 1
		fi

		cd $2
		find . -type f -name "$1" >$TMPFILE
		for i in $(cat $TMPFILE); do
			if [ -x $i ]; then
				echo "Strip '$i'"
				strip -s $i
			fi
		done
		cd -
		rm -f $TMPFILE
	fi
}

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>