代码添加注释信息

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
原文地址:https://www.cnblogs.com/virgosnail/p/14192028.html