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;
品質無保証。
※ 2020/07/02 度重なるブログ移転・ブログシステムのアップデートにより崩れた記事を校正。