10d025badSMasatake YAMATO#!/bin/sh 293c4b724Sviccuad# 393c4b724Sviccuad# Copyright (C) 2014 Masatake YAMATO 493c4b724Sviccuad# 593c4b724Sviccuad# This program is free software; you can redistribute it and/or modify 693c4b724Sviccuad# it under the terms of the GNU General Public License as published by 7d0383dc4Sviccuad# the Free Software Foundation; either version 2 of the License, or 893c4b724Sviccuad# (at your option) any later version. 993c4b724Sviccuad# 1093c4b724Sviccuad# This program is distributed in the hope that it will be useful, 1193c4b724Sviccuad# but WITHOUT ANY WARRANTY; without even the implied warranty of 1293c4b724Sviccuad# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1393c4b724Sviccuad# GNU General Public License for more details. 1493c4b724Sviccuad# 1593c4b724Sviccuad# You should have received a copy of the GNU General Public License 1693c4b724Sviccuad# along with this program. If not, see <http://www.gnu.org/licenses/>. 1793c4b724Sviccuad# 180d025badSMasatake YAMATO# ---------------------------------------------------------------------------------------- 190d025badSMasatake YAMATO# Show the ratio of the number of files handled by ctags to the number of all files of ctags source directory. 200d025badSMasatake YAMATO# ----------------------------------------------------------------------------------------- 210d025badSMasatake YAMATO: ${CTAGS_TEST:=./ctags} 220d025badSMasatake YAMATO 230d025badSMasatake YAMATO# 240d025badSMasatake YAMATO# Report all unsupported files 250d025badSMasatake YAMATO# 260d025badSMasatake YAMATOVERBOSE=0 270d025badSMasatake YAMATO 280d025badSMasatake YAMATOprint_help() 290d025badSMasatake YAMATO{ 300d025badSMasatake YAMATO echo "Usage:" 310d025badSMasatake YAMATO echo " $0 -h|--help" 320d025badSMasatake YAMATO echo " $0 [-v|--verbose [-v|--verbose]]" 330d025badSMasatake YAMATO exit $1 340d025badSMasatake YAMATO} 350d025badSMasatake YAMATO 360d025badSMasatake YAMATOwhile [ $# -gt 0 ]; do 370d025badSMasatake YAMATO case $1 in 380d025badSMasatake YAMATO -h|--help) 390d025badSMasatake YAMATO print_help 0 400d025badSMasatake YAMATO ;; 410d025badSMasatake YAMATO -v|--verbose) 420d025badSMasatake YAMATO VERBOSE=`expr $VERBOSE + 1` 430d025badSMasatake YAMATO ;; 440d025badSMasatake YAMATO -*) 450d025badSMasatake YAMATO echo "unknown option: $1" 460d025badSMasatake YAMATO print_help 1 470d025badSMasatake YAMATO ;; 480d025badSMasatake YAMATO *) 490d025badSMasatake YAMATO echo "unknown expected argument: $1" 500d025badSMasatake YAMATO print_help 1 510d025badSMasatake YAMATO ;; 520d025badSMasatake YAMATO esac 530d025badSMasatake YAMATO shift 540d025badSMasatake YAMATOdone 550d025badSMasatake YAMATO 56*7e45c1dfSMasatake YAMATOCMDLINE="${CTAGS_TEST} --quiet --options=NONE -G --options-maybe=./.ctags.d --languages=all --options-maybe=misc/budge.ctags -R --print-language" 570d025badSMasatake YAMATOALL_FILES=$(git ls-files) 580d025badSMasatake YAMATO 590d025badSMasatake YAMATOTOTAL=0 600d025badSMasatake YAMATOHAS_PARSER=0 610d025badSMasatake YAMATOmember() 620d025badSMasatake YAMATO{ 630d025badSMasatake YAMATO local input=$1 640d025badSMasatake YAMATO local f 650d025badSMasatake YAMATO for f in $ALL_FILES; do 660d025badSMasatake YAMATO if [ "$f" = "$input" ]; then 670d025badSMasatake YAMATO return 0 680d025badSMasatake YAMATO fi 690d025badSMasatake YAMATO done 700d025badSMasatake YAMATO return 1 710d025badSMasatake YAMATO} 720d025badSMasatake YAMATO 730d025badSMasatake YAMATOINPUT= 740d025badSMasatake YAMATOLANG= 750d025badSMasatake YAMATO${CMDLINE} | { while IFS=': ' read INPUT LANG; do 760d025badSMasatake YAMATO if member "$INPUT"; then 770d025badSMasatake YAMATO if [ "$LANG" != NONE ]; then 780d025badSMasatake YAMATO if [ "$VERBOSE" -gt 1 ]; then 790d025badSMasatake YAMATO printf "%-60s %s\n" $INPUT $LANG 800d025badSMasatake YAMATO fi 810d025badSMasatake YAMATO HAS_PARSER=$(( HAS_PARSER + 1 )) 820d025badSMasatake YAMATO else 830d025badSMasatake YAMATO if [ "${VERBOSE}" -gt 0 ]; then 840d025badSMasatake YAMATO printf "%-60s %s\n" $INPUT NONE 850d025badSMasatake YAMATO fi 860d025badSMasatake YAMATO fi 870d025badSMasatake YAMATO TOTAL=$(( TOTAL + 1 )) 880d025badSMasatake YAMATO fi 890d025badSMasatake YAMATO done 900d025badSMasatake YAMATO echo "[ctags|$(expr 100 '*' $HAS_PARSER / $TOTAL)%]" 910d025badSMasatake YAMATO} 92