mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-31 08:29:33 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| # Copyright © 2023 OpenIM. All rights reserved.
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License");
 | |
| # you may not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #     http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| 
 | |
| DEFAULT_DIRS=(
 | |
|     "pkg"
 | |
|     "internal/pkg"
 | |
| )
 | |
| BASE_URL="github.com/OpenIMSDK/Open-IM-Server"
 | |
| 
 | |
| usage() {
 | |
|     echo "Usage: $0 [OPTIONS]"
 | |
|     echo
 | |
|     echo "This script iterates over directories and generates doc.go if necessary."
 | |
|     echo "By default, it processes 'pkg' and 'internal/pkg' directories."
 | |
|     echo
 | |
|     echo "Options:"
 | |
|     echo "  -d DIRS, --dirs DIRS    Specify the directories to be processed, separated by commas. E.g., 'pkg,internal/pkg'."
 | |
|     echo "  -u URL,  --url URL     Set the base URL for the import path. Default is '$BASE_URL'."
 | |
|     echo "  -h,      --help        Show this help message."
 | |
|     echo
 | |
| }
 | |
| 
 | |
| process_dir() {
 | |
|     local dir=$1
 | |
|     local base_url=$2
 | |
| 
 | |
|     for d in $(find $dir -type d); do
 | |
|         if [ ! -f $d/doc.go ]; then
 | |
|             if ls $d/*.go > /dev/null 2>&1; then
 | |
|                 echo $d/doc.go
 | |
|                 echo "package $(basename $d) // import \"$base_url/$d\"" > $d/doc.go
 | |
|             fi
 | |
|         fi
 | |
|     done
 | |
| }
 | |
| 
 | |
| while [[ $# -gt 0 ]]; do
 | |
|     key="$1"
 | |
| 
 | |
|     case $key in
 | |
|         -d|--dirs)
 | |
|             IFS=',' read -ra DIRS <<< "$2"
 | |
|             shift # shift past argument
 | |
|             shift # shift past value
 | |
|             ;;
 | |
|         -u|--url)
 | |
|             BASE_URL="$2"
 | |
|             shift # shift past argument
 | |
|             shift # shift past value
 | |
|             ;;
 | |
|         -h|--help)
 | |
|             usage
 | |
|             exit 0
 | |
|             ;;
 | |
|         *)
 | |
|             usage
 | |
|             exit 1
 | |
|             ;;
 | |
|     esac
 | |
| done
 | |
| 
 | |
| DIRS=${DIRS:-${DEFAULT_DIRS[@]}}
 | |
| 
 | |
| for dir in "${DIRS[@]}"; do
 | |
|     process_dir $dir $BASE_URL
 | |
| done
 |