1. 程式人生 > 實用技巧 >程式碼添加註釋資訊

程式碼添加註釋資訊

golang程式碼添加註釋資訊

#!/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