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.
		
		
		
		
		
			
		
			
				
					
					
						
							165 lines
						
					
					
						
							4.0 KiB
						
					
					
				
			
		
		
	
	
							165 lines
						
					
					
						
							4.0 KiB
						
					
					
				#!/bin/sh | 
						|
# --- T2-COPYRIGHT-NOTE-BEGIN --- | 
						|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. | 
						|
#  | 
						|
# T2 SDE: package/.../runit/djb-config | 
						|
# Copyright (C) 2004 - 2006 The T2 SDE Project | 
						|
# Copyright (C) 1998 - 2003 Clifford Wolf | 
						|
#  | 
						|
# More information can be found in the files COPYING and README. | 
						|
#  | 
						|
# This program is free software; you can redistribute it and/or modify | 
						|
# it under the terms of the GNU General Public License as published by | 
						|
# the Free Software Foundation; version 2 of the License. A copy of the | 
						|
# GNU General Public License can be found in the file COPYING. | 
						|
# --- T2-COPYRIGHT-NOTE-END --- | 
						|
 | 
						|
# e.g. $1: admin mail net ... | 
						|
#      $2: $sbindir $bindir | 
						|
# | 
						|
pkg_djb_hierarchy=$1 | 
						|
pkg_djb_altdir=${2:-$bindir} | 
						|
 | 
						|
# $logdir | 
						|
if [ "${localstatedir%$pkg}" != "$localstatedir" ]; then | 
						|
	logdir=$localstatedir/log | 
						|
else | 
						|
	logdir=$localstatedir/log/$pkg | 
						|
fi | 
						|
 | 
						|
# $sysconfdir | 
						|
if [ "${sysconfdir%$pkg}" == "$sysconfdir" ]; then | 
						|
	sysconfdir=$sysconfdir/$pkg | 
						|
fi | 
						|
 | 
						|
if [ -z "$pkg_djb_hierarchy" ]; then | 
						|
	abort "djb-config: must specify hierarchy /package/\$hierarchy." | 
						|
fi | 
						|
 | 
						|
srcdir="$pkg_djb_hierarchy/$pkg-$ver" | 
						|
 | 
						|
if [ "$createdocs" != "0" ]; then | 
						|
	createdocs=0 | 
						|
	hook_add postdoc 2 'pkg_djb_installdoc $pkg_djb_hierarchy' | 
						|
fi | 
						|
 | 
						|
# custmain | 
						|
# | 
						|
custmain="pkg_djb_main" | 
						|
pkg_djb_main() { | 
						|
        hook_eval premake | 
						|
        ./package/compile | 
						|
        hook_eval inmake | 
						|
        pkg_djb_installpackage $pkg_djb_hierarchy $pkg_djb_altdir | 
						|
        hook_eval postmake | 
						|
} | 
						|
 | 
						|
pkg_djb_safecopy() { | 
						|
	local source="$( echo "${1#$root}/$3" | tr -s '/' ) " | 
						|
	local target="$( echo "${2#$root}/$3" | tr -s '/' ) " | 
						|
	echo "'$source' -> '$target'" | 
						|
	cp -vfp $source ${root}$target | 
						|
} | 
						|
 | 
						|
pkg_djb_safelink() { | 
						|
	local source="$( echo "${1#$root}/$3" | tr -s '/' ) " | 
						|
	local target="$( echo "${2#$root}/$3" | tr -s '/' ) " | 
						|
	echo "create symbolic link '$source' to '$target'" | 
						|
	ln -snvf $source ${root}$target | 
						|
} | 
						|
 | 
						|
pkg_djb_substitute() { | 
						|
	sed \ | 
						|
	    -e "s,D_commanddir,$pkg_djb_commanddir,g" \ | 
						|
	    -e "s,D_servicedir,$pkg_djb_servicedir,g" \ | 
						|
	    -e "s,D_logdir,$logdir,g" \ | 
						|
	    $1 | 
						|
} | 
						|
 | 
						|
# installs the package in DJB way if requested | 
						|
# | 
						|
pkg_djb_installpackage() { | 
						|
	# requires ./package/commands | 
						|
	# and files in ./command | 
						|
 | 
						|
	local x= y= | 
						|
	local package=$1 | 
						|
	local altdir=$2 | 
						|
 | 
						|
	if [ "$pkg_djb_packagedir" ]; then | 
						|
		echo 'Copying commands to package directory...' | 
						|
		mkdir -p $pkg_djb_packagedir/$package/$pkg-$ver/command | 
						|
		for x in `cat ./package/commands`; do | 
						|
			pkg_djb_safecopy ./command \ | 
						|
				$pkg_djb_packagedir/$package/$pkg-$ver/command $x | 
						|
		done | 
						|
 | 
						|
		echo "Creating symlink $pkg -> $pkg-$ver..." | 
						|
		ln -svnf $pkg-$ver $pkg_djb_packagedir/$package/$pkg | 
						|
	fi | 
						|
 | 
						|
	if [ "$pkg_djb_commanddir" ]; then | 
						|
		echo "Making command links in $pkg_djb_commanddir..." | 
						|
		y=pkg_djb_safelink | 
						|
	else | 
						|
		echo 'Copying commands to $altdir...' | 
						|
		pkg_djb_commanddir=$altdir | 
						|
		y=pkg_djb_safecopy | 
						|
	fi | 
						|
	mkdir -p $pkg_djb_commanddir | 
						|
	for x in `cat package/commands`; do | 
						|
		$y $pkg_djb_packagedir/$package/$pkg-$ver/command \ | 
						|
			$pkg_djb_commanddir $x | 
						|
	done | 
						|
	 | 
						|
	# usr/local is evil :) | 
						|
	#if [ "$pkg_djb_compatdir" ]; then	 | 
						|
	#	echo "Making compatibility links in $pkg_djb_compatdir..." | 
						|
	#	mkdir -p $pkg_djb_compatdir | 
						|
	#	for i in `cat package/commands`; do | 
						|
	#		pkg_djb_safelink $pkg_djb_packagedir/$package/$pkg-$ver/command \ | 
						|
	#			$pkg_djb_compatdir $i | 
						|
	#	done | 
						|
	#fi | 
						|
} | 
						|
 | 
						|
# installs documentation to package directory or $docdir as requested | 
						|
# | 
						|
pkg_djb_installdoc() { | 
						|
	local x package=$1 | 
						|
	local docpkg | 
						|
 | 
						|
	echo 'Copying documentation....' | 
						|
	if [ "$pkg_djb_packagedir" ]; then | 
						|
		docpkg=$pkg_djb_packagedir/$package/$pkg-$ver/package | 
						|
		docdir=$pkg_djb_packagedir/$package/$pkg-$ver/doc | 
						|
	else | 
						|
		# $pkg_djb_* includes $root, $docdir doesn't. | 
						|
		docpkg=$root/$docdir | 
						|
	fi | 
						|
	mkdir -p $docpkg $docdir | 
						|
 | 
						|
	# ./package | 
						|
	for x in `ls ./package`; do | 
						|
		case $x in | 
						|
			compile|install*|upgrade) | 
						|
				/bin/true ;; | 
						|
			*)	cp -vf ./package/$x $docpkg ;; | 
						|
		esac | 
						|
	done | 
						|
 | 
						|
	# ./doc | 
						|
	if [ -d doc ]; then | 
						|
		cp -rLv ./doc/* $docdir | 
						|
	fi | 
						|
 | 
						|
	# ./man | 
						|
	if [ -d man ]; then | 
						|
		echo "Installing man pages ... " | 
						|
		for x in $( cd man; ls -1 *.[1-9] | sed -e 's,.*\.\([1-9]\),\1,g' | sort -u ); do | 
						|
			gzip -9 ./man/*.$x | 
						|
			cp -vf ./man/*.$x.gz $root/$mandir/man$x/ | 
						|
		done | 
						|
	fi | 
						|
} | 
						|
 | 
						|
 |