golang代码添加注释信息
mac 中的sed和Linux中的sed使用方式略有区别,可下载 gsed,gsed和Linux中的sed使用方式一致
brew install gsed
#!/bin/sh
main(){
file=$1
if [[ $file == "" ]]
then
echo "please input filename"
exit 1
fi
# 是文件夹则进入文件夹
if [ -d $file ]
then
# 进入目录,否则需要拼接文件地址
cd $file
# 遍历当前目录下所有文件
for i in `ls ./`
do
if [ -r $i ]
then
echo "file $i"
single_type $i
fi
done
else
single_type $file
fi
}
# 给go中的结构体添加注释
single_type(){
file=$1
types=`grep -n struct $file | grep type`
old_ifs=$IFS
IFS=$'
'
num=1
for i in $types
do
line_num=`echo $i | awk -F ':' '{print $1}'`
echo " line_num $line_num"
type_name=`echo $i | awk '{print $2}'`
echo " type_name $type_name"
insert_line=`expr $line_num + $num`
insert_line=`expr $insert_line - 1`
echo " insert_line $insert_line"
comment="// $type_name $type_name"
echo $comment
gsed -i "${insert_line}i${comment}" $file
num=`expr $num + 1`
done
IFS=$old_ifs
}
# 给go中的函数添加注释
single_func(){
file=$1
types=`grep -n func $file`
old_ifs=$IFS
IFS=$'
'
num=1
for i in $types
do
if [[ $i == "./:" ]]
then
continue
fi
echo "content $i"
line_num=`echo $i | awk -F ':' '{print $1}'`
echo " line_num $line_num"
func_name=`echo $i | awk '{print $2}' | awk -F '(' '{print $1}'`
echo " func_name $func_name"
insert_line=`expr $line_num + $num`
insert_line=`expr $insert_line - 1`
echo " insert_line $insert_line"
comment="// $func_name $func_name"
echo $comment
gsed -i "${insert_line}i${comment}" $file
num=`expr $num + 1`
done
IFS=$old_ifs
}
main $1