VB6プロジェクト内で利用されていないクラスファイルをリストアップするスクリプト。

他人から引き継いだ古い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;

品質無保証。

投稿者:

dyama

システムエンジニアです。佐世保に住んでいます。

コメントを残す

メールアドレスが公開されることはありません。