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 |
|
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
# |
|
# Filename: 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. |
|
# --- SDE-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 |
|
} |
|
|
|
|