Home | History | Annotate | Line # | Download | only in file
      1 #! /bin/sh
      2 #
      3 #	$NetBSD: file2netbsd,v 1.5 2013/01/04 15:34:47 christos Exp $
      4 #
      5 # Copyright (c) 2003, 2011 The NetBSD Foundation, Inc.
      6 # All rights reserved.
      7 #
      8 # Redistribution and use in source and binary forms, with or without
      9 # modification, are permitted provided that the following conditions
     10 # are met:
     11 # 1. Redistributions of source code must retain the above copyright
     12 #    notice, this list of conditions and the following disclaimer.
     13 # 2. Redistributions in binary form must reproduce the above copyright
     14 #    notice, this list of conditions and the following disclaimer in the
     15 #    documentation and/or other materials provided with the distribution.
     16 #
     17 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     18 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     19 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     20 # PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     21 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     22 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     23 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     24 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     25 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     26 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     27 # POSSIBILITY OF SUCH DAMAGE.
     28 #
     29 # file2netbsd:  convert a file source tree into a
     30 # format suitable for import.  Works on current dir.
     31 # You can run this only once if you want it to work.
     32 #
     33 # based on texinfo2netbsd
     34 #
     35 PROG="$(basename "$0")"
     36 
     37 if [ -z "$1" ]
     38 then
     39 	echo "Usage: $PROG <directory>" 1>&2
     40 	exit 1
     41 fi
     42 FILE="$1"
     43 
     44 file_vers="$(awk -F',' '/AC_INIT\(/ { print $2 }' "$FILE/configure.ac" | tr -d '[' | tr -d ']' | tr -d ' ')"
     45 
     46 case $file_vers in
     47 [0-9].[0-9][0-9]) ;;
     48 *)	echo "$PROG: Cannot determine file version: $file_vers" 1>&2
     49 	exit 1;;
     50 esac
     51 
     52 ### Wipe out stuff we don't want
     53 find "$FILE" -name .cvsignore -delete
     54 
     55 ### Remove the $'s around RCS tags
     56 cleantags "$FILE"
     57 
     58 ### Add NetBSD RCS Id
     59 find "$FILE" -type f -name '*.[chly]' -print | while read c; do
     60 	sed -e '1{/$NetBSD/!{i\
     61 /*	\$NetBSD\$	*/\
     62 
     63 };}
     64 /#ifndef[ 	]lint/{N;/FILE_RCSID/s/\n/\
     65 #if 0\
     66 /
     67 a\
     68 #else\
     69 __RCSID("\$NetBSD\$");\
     70 #endif
     71 }' $c > /tmp/file3$$
     72 mv /tmp/file3$$ $c && echo did source mods for $c
     73 done
     74 
     75 #### Move files to proper names
     76 mv -f $FILE/doc/file.man $FILE/doc/file.1
     77 mv -f $FILE/doc/libmagic.man $FILE/doc/libmagic.3
     78 mv -f $FILE/doc/magic.man $FILE/doc/magic.5
     79 
     80 #### Add RCS tags to man pages
     81 find "$FILE" -type f -name '*.[0-9]' -print | while read m; do
     82 	sed -e '1{/$NetBSD/!i\
     83 .\\"	\$NetBSD\$\
     84 .\\"
     85 
     86 }'	    -e 's/__CSECTION__/1/g' \
     87 	    -e 's/__FSECTION__/5/g' \
     88 	    -e 's/__VERSION__/'"${file_vers}/g" \
     89 	    -e 's,__MAGIC__,/usr/share/misc/magic,g' \
     90 	    $m > /tmp/file4$$
     91 mv /tmp/file4$$ $m && echo did manpage mods for $m
     92 done
     93 
     94 #### de-"capsize" the magdir
     95 mv $FILE/magic/Magdir $FILE/magic/magdir
     96 
     97 #### Make building easier, don't build magic and doc
     98 echo '/^SUBDIRS/
     99 t.
    100 s/^/#/
    101 -
    102 s/ magic.*//
    103 wq' | ed Makefile.in > /dev/null 2>&1
    104 
    105 echo done
    106 
    107 echo You can import now.  Use the following command:
    108 echo cvs -d cvs.netbsd.org:/cvsroot import src/external/bsd/file/dist CHRISTOS FILE${file_vers%.*}_${file_vers#*.}
    109 
    110 exit 0
    111