chiark / gitweb /
debian/control: Recommend the other build tools we usually need.
[cfd] / mklinks.in
1 #! /bin/sh
2 ### -*-sh-*-
3 ###
4 ### Create links to the repository
5 ###
6 ### (c) 1997 Mark Wooding
7 ###
8
9 ###----- Licensing notice ---------------------------------------------------
10 ###
11 ### This file is part of the Common Files Distribution (`common').
12 ###
13 ### `Common' is free software; you can redistribute it and/or modify
14 ### it under the terms of the GNU General Public License as published by
15 ### the Free Software Foundation; either version 2 of the License, or
16 ### (at your option) any later version.
17 ###
18 ### `Common' is distributed in the hope that it will be useful,
19 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 ### GNU General Public License for more details.
22 ###
23 ### You should have received a copy of the GNU General Public License
24 ### along with `common'; if not, write to the Free Software Foundation,
25 ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26
27 set -e
28
29 pkgdatadir="@pkgdatadir@"
30 VERSION="@VERSION@"
31
32 ###--------------------------------------------------------------------------
33 ### Parse command line arguments.
34
35 while [ $# -gt 0 ]; do
36   case "$1" in
37     -h | --h | --he | --hel | --help)
38       cat <<EOF
39 Usage: mklinks [FILE...]
40
41 The FILEs listed are themselves lists of filenames.  Makes each named file a
42 link to the corresponding file in the shared files repository.  With no
43 arguments, \`mklinks' reads \`.links' from the current directory.
44 EOF
45       exit 0
46       ;;
47     -v | --v | --ve | --ver | --vers | --versi | --versio | --version)
48       echo "mklinks: Common Files Distribution version $VERSION"
49       exit 0
50       ;;
51     --)
52       shift
53       break
54       ;;
55     -)
56       break
57       ;;
58     -*)
59       echo "mklinks: unknown option \`$1'" >&2
60       exit 1
61       ;;
62     *)
63       break
64       ;;
65   esac
66   shift
67 done
68
69 ###--------------------------------------------------------------------------
70 ### Main code.
71
72 [ $# = 0 ] && set .links
73 cat "$@" | while read name; do
74   case "$name" in
75     "" | "#"*) continue ;;
76     *=*) want=${name##*=}; name=${name%=*} ;;
77     *) want=${name##*/} ;;
78   esac
79   dir=${name%/*}
80   if [ -r "$pkgdatadir/$want" ]; then
81     mkdir -p "$dir"
82     rm -f "$name"
83     ln -sf "$pkgdatadir/$want" "$name"
84   fi
85 done
86
87 ###----- That's all, folks --------------------------------------------------