#! /bin/sh # # $OpenBSD: check-license,v 1.5 2003/06/12 22:30:28 marc Exp $ # # PUBLIC DOMAIN -- Marco S Hyman -- # # This script verifies that all files in a given directory are # mentioned in the ports LICENSE file as Distribution allowed. # Output is three lists: # # Missing files: files that should be in the directory (if the # intent is to obtain all files that can be # re-distributed) but are not. # # Bad files: files that must NOT be in a distribution # directory. These are listed in the form # of a shell `mv -f xxx ../licensed' command so # they can be fed to the shell (after manual # verification) to move them into a directory # that will not be copied to any CD-ROM. # # Unknown files: files that are noted in the LICENSE file but # do not have a distribution flag of either Y or N. # # Extra files: Files that are in the given directory that are # not mentioned in the ports LICENSE file. # # The ports base directory. Note: this may be supplied from the environment # using the standard bsd.port.mk name of PORTSDIR # LICENCE=${PORTSDIR:-/usr/ports}/LICENSE # Our name and a function to spit out the usage. Exit. # prog=`basename $0` usage () { if [ ! -z "$1" ]; then echo "$prog: $1" fi echo "usage: $prog distribution-directory" exit 1 } # Verify we have one param and that it is the name of a directory. # If not spit out our usage and exit # if [ $# -eq 1 ]; then if [ -d $1 ]; then DIST=$1 else usage "$1 is not a directory" fi else usage fi # This awk script matches the license file against an `ls' of the given # distribution directory and spits instructions out to stdout. # /bin/ls $DIST | awk -v L=$LICENCE ' BEGIN { # Process license file # while ( getline 0 ) { print "The following files/dirs are extra and " \ "should probably be removed:" print for ( i = 0; i < extra_count; i += 1 ) { print "/bin/rm -rf", extra_files[ i ] } print } } ' exit 0