1.在Mac上给golang代码添加注释信息
给go项目中的所有函数和结构体代码定义的上一行添加注释信息,默认添加的注释信息为函数名称或者结构体名称
mac 中的sed和Linux中的sed使用方式略有区别,可下载 gsed,gsed和Linux中的sed使用方式一致
brew install gsed
2.示例
drwxr-xr-x 2 root root 4096 Sep 17 19:02 zwibserve
[root@virgosnail zwibserve-master]# ./addComment.sh zwibserve/
[root@virgosnail zwibserve-master]# vim zwibserve/encoder.go:q
// initMessage initMessage
type initMessage struct {
MessageType uint8
More uint8
ProtocolVersion uint16
MaxMessageSize uint32
CreationMode uint8
Offset uint64
DocIDLength uint8
DocID string
Data []byte
}
3. 源代码
#!/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=$'\n'
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=$'\n'
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
|
请发表评论