You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.1 KiB
79 lines
2.1 KiB
1 year ago
|
#!/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
|