#!/bin/sh # --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: lib/misc/findorphans.sh # Copyright (C) 2008 The OpenSDE Project # Copyright (C) 2006 The T2 SDE Project # # More information can be found in the files COPYING and README. # # This program 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; version 2 of the License. A copy of the # GNU General Public License can be found in the file COPYING. # --- SDE-COPYRIGHT-NOTE-END --- config=default root= folders= usage() { echo "usage: $0 [-cfg |-root |-system]" } while [ $# -gt 0 ]; do case "$1" in -cfg) config="$2" root= ; shift ;; -root) root="$2"; shift ;; -system) root=/ ;; -just) shift; folders="$@"; break ;; -help) usage; exit 0 ;; *) echo "ERROR: unknown argument '$1'" usage; exit 1 ;; esac shift done if [ -z "$root" ]; then if [ ! -f config/$config/config ]; then echo "ERROR: '$config' is not a valid config" exit 2 else root="build/`grep ' SDECFG_ID=' \ config/$config/config | cut -d\' -f2`" fi fi if [ ! -d "$root/var/adm/flists" ]; then echo "ERROR: '$root' is not a valid OpenSDE box/sandbox root" exit 3 fi flists=$( cd "$root"; echo var/adm/flists/* ) realroot=$( cd "$root"; pwd ) findroot= for f in $folders; do findroot="$findroot $realroot/${f#/}" done [ "$findroot" ] || findroot="$realroot" pushd "$realroot" > /dev/null find $findroot -mindepth 1 \ \( -path "$realroot/TOOLCHAIN" -o \ -path "$realroot/proc" -o \ -path "$realroot/tmp" -o \ -path '*/.svn' \) -prune \ -o -print | sed -e "s,^$realroot/,," | while read file; do if ! grep -q -l "^[^ ]*: ${file}\$" $flists; then echo "$file" fi done popd > /dev/null