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 度重なるブログ移転・ブログシステムのアップデートにより崩れた記事を校正。

※ 2024/06/25 <pre> な HTML ブロックになっていたコード部分をコードブロックに変更、修正。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください