他人から引き継いだ古いVB6プロジェクトが、使っていないライブラリまみれで見通しが悪かったので書いた。目的も使用方法が限定されているので、得する人は居ないと思う。
#!/bin/bash
# find up the not required classes for msvb6proj
# usage: `bash nrc.sh srcdir | xargs rm`
dir=$@;
dir=${$@:-"."};
# if [ $# -lt 1 ]; then
# dir=".";
# else
# dir=$@;
# fi
classes=`find $dir -name '*.cls'`;
files=`find $dir -name '*.bas' -or -name '*.frm'`;
for filename in $classes ; do
classname=`grep "VB_Name =" "$filename" | sed -e 's/Attribute VB_Name = "//i' -e 's/"//gi'`;
flag=0;
for target in $files $classes; do
[ $target == $filename ] && continue;
m=`grep -e " As $classname\>" -e " New $classname\>" -e "Implements $classname\>" "$target" | wc -l`;
echo Found $m $classname in $target 1>&2;
if [ $m -gt 0 ]; then
echo "---next-->" 1>&2;
flag=1;
break;
fi
done
if [ $flag -eq 0 ] ; then
echo "*** HIT ***" 1>&2;
echo $filename;
fi
done
exit;
品質無保証。
※ 2020/07/02 度重なるブログ移転・ブログシステムのアップデートにより崩れた記事を校正。
※ 2024/06/25 <pre> な HTML ブロックになっていたコード部分をコードブロックに変更、修正。