This is scanprefs.sh in view mode; [Download] [Up]
#! /bin/sh #+++ # title: scanprefs # abstract: scan user preferences databases for owners/domains. # author: Tom Hageman <tom@basil.icce.rug.nl> # created: November 1997 # modified: # copyleft: # # Copyright (C) 1997 Tom R. Hageman, but otherwise perfect freeware. # # description: # Usage: scanprefs [<NEXTSTEP-key> [<OPENSTEP-key>]] # # This scans both the NEXTSTEP as the OPENSTEP defaults database. # With no arguments, only the owner/domain names are returned. # With a single argument, this is searched (and returned) in # both NEXTSTEP and OPENSTEP databases. # With two arguments, the first is searched (and returned) in the # NEXTSTEP database, and the second is searched in the OPENSTEP database. # # NEXTSTEP entries are preceded with `N', and OPENSTEP entries are # preceded with `O'. # # bugs: # only understands `simple' non-multiline, non-quoted values. #--- PATH=/usr/ucb:/bin:/usr/bin export PATH err=/dev/null #err=/dev/console case $# in 0) ;; 1) NXPref="$1"; NSPref="$NXPref";; 2) NXPref="$1"; NSPref="$2" ;; *) echo "Usage: `basename $0` [<NEXTSTEP-key> [<OPENSTEP-key>]]" >&2 exit 2 esac { # Just let it silently fail on pre-OPENSTEP.. { case "$NSPref" in ?*) defaults find "$NSPref" | sed "s/.*'\(.*\)': {\(.*\) = \(.*\);.*/\1 \2 \3/" esac defaults domains | tr ' ' '\012' } | sed "s/^/O /" { case "$NXPref" in ?*) dread -n "$NXPref" esac # This heuristic sed filter removes most of the cruft due to multiline values, # as proper multi-line quoted string parsing would be too painful for now. dread -l | sed "/^[a-zA-Z0-9]/!d; /^[^ ][^ ]* [^ ][^ ]* [^ ]/!d; s/ .*//" } | sed "s/^/N /" } 2>$err | sort -uf +1 -2 +0 -1 2>$err
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.