X-Git-Url: https://git.distorted.org.uk/~mdw/cfd/blobdiff_plain/1f79a056146f0b172111b8379ccc344002848e66..e628825ade3480166013c03f76f6f5081d521e59:/findlinks.in diff --git a/findlinks.in b/findlinks.in index 13380be..2790b92 100755 --- a/findlinks.in +++ b/findlinks.in @@ -1,39 +1,39 @@ #! /bin/sh -# -*-sh-*- -# -# Find files which could be links to the repository -# -# (c) 1997 Mark Wooding -# +### -*-sh-*- +### +### Find files which could be links to the repository +### +### (c) 1997 Mark Wooding +### -#----- Licensing notice ----------------------------------------------------- -# -# This file is part of the Common Files Distribution (`common'). -# -# `Common' 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; either version 2 of the License, or -# (at your option) any later version. -# -# `Common' is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with `common'; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +###----- Licensing notice --------------------------------------------------- +### +### This file is part of the Common Files Distribution (`common'). +### +### `Common' 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; either version 2 of the License, or +### (at your option) any later version. +### +### `Common' is distributed in the hope that it will be useful, +### but WITHOUT ANY WARRANTY; without even the implied warranty of +### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +### GNU General Public License for more details. +### +### You should have received a copy of the GNU General Public License +### along with `common'; if not, write to the Free Software Foundation, +### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# --- Configuration variables --- +set -e -prefix=@prefix@ -datarootdir=@datarootdir@ -datadir=@datadir@/@PACKAGE@ +pkgdatadir="@pkgdatadir@" +VERSION="@VERSION@" -# --- Parse command line arguments --- +###-------------------------------------------------------------------------- +### Parse command line arguments. while [ $# -gt 0 ]; do - case $1 in + case "$1" in -h | --h | --he | --hel | --help) cat < done -# -# I have to stick the whole lot in backticks and echo the result when it's -# all done. Yuk. -# -# Oh, I almost forgot: that colon on the end there, that's to make sure that -# all the entries are surrounded by colons on both sides, which makes the -# pattern match in the `case' below work properly. +###-------------------------------------------------------------------------- +### Read the names of all the files I support. +### +### +### Yes, this is ugly and hacky: well spotted. Shells have a nasty habit of +### spontaneously forking when redirection gets too hard for them to think +### about, so instead of something nice along the lines of +### +### find ... | while read name; do done +### +### I have to stick the whole lot in backticks and echo the result when it's +### all done. Yuk. +### +### Oh, I almost forgot: that colon on the end there, that's to make sure +### that all the entries are surrounded by colons on both sides, which makes +### the pattern match in the `case' below work properly. -files=` +files=$( files="" - find $datadir -type f -print | { while read name; do - files="$files:\`echo $name | sed -e 's;^.*/;;'\`" - done - echo $files; } `: + find "$pkgdatadir" -type f -print | { + while read name; do + files="$files:$(echo "$name" | sed 's;^.*/;;')" + done + echo $files + } +): -# --- Now examine the current directory --- -# -# Remember to include things which are already linked, so that users can say -# `findlinks >.links' without any problems. +###-------------------------------------------------------------------------- +### Now examine the current directory. +### +### Remember to include things which are already linked, so that users can +### say `findlinks >.links' without any problems. find . \( -type f -o -type l \) -print | while read name; do - base="`echo $name | sed -e 's;^.*/;;'`" + base="$(echo "$name" | sed 's;^.*/;;')" case "$files" in *:$base:*) echo $name ;; *) esac -done | sed -e 's,^\./,,' | sort +done | sed 's,^\./,,' | sort + +###----- That's all, folks --------------------------------------------------