1 #!/bin/bash 2 c=false 3 C=false 4 java=false 5 function usage 6 { 7 cat << EOF 8 usage: $0 options 9 This script generate tag files for C, C++ and JAVA files. 10 OPTIONS: 11 -h Show this message 12 -c generate tags for C files 13 -C generate tags for C++ files 14 -j generate tags for JAVA files 15 EOF 16 } 17 18 if [ $# = 0 ] 19 then 20 usage 21 fi 22 23 while getopts "hcCj" opt; 24 do 25 case "$opt" in 26 c) c=true 27 ;; 28 C) C=true 29 ;; 30 j) java=true 31 ;; 32 h) usage 33 exit 34 ;; 35 *) echo 1>&2; 36 usage 37 exit 1 38 ;; 39 esac 40 done 41 42 if [ $c = true ] 43 then 44 rm c.tags 45 rm c.cscope* 46 find . -name .svn -prune -o -name .repo -prune -o -name .git -prune -o ! -type l -type f -name '*.c' -o ! -type l -name '*.h' > c_files 47 ctags -f c.tags -L c_files & 48 cscope -bkq -i c_files -f c.cscope & 49 fi 50 if [ $C = true ] 51 then 52 rm cc.tags 53 rm cc.cscope* 54 find . -name .svn -prune -o -name .repo -prune -o -name .git -prune -o ! -type l -type f -name '*.cc' -o ! -type l -name '*.cpp' > cc_files 55 ctags -f cc.tags -L cc_files & 56 cscope -bkq -i cc_files -f cc.cscope & 57 fi 58 59 if [ $java = true ] 60 then 61 rm java.tags 62 rm java.cscope* 63 find . -name .svn -prune -o -name .repo -prune -o -name .git -prune -o ! -type l -type f -name "*.java" > java_files 64 ctags -f java.tags -L java_files & 65 cscope -bkq -i java_files -f java.cscope & 66 fi 67 68 cat c_files > all_files 69 cat cc_files >> all_files 70 cat java_files >> all_files 71 gtags -f all_files & 72 for job in `jobs -p` 73 do 74 wait $job 75 done 76 echo "TAGS GENERATED" 77
2012年11月12日 星期一
簡單的ctags/cscope/gtags script
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言