| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | #!/bin/bash
print_help() {
    echo "Usage: $0 <option>"
    echo "    full, build full image"
    echo "    slim, build slim image"
    exit 1
}
if [ "$#" -ne 1 ]; then
    print_help
fi
docker_version="full"
if [ "$1" == "full" ]; then
    docker_version="full"
elif [ "$1" == "slim" ]; then
    docker_version="slim"
else
    print_help
fi
# update RAGFlow version
# Get the latest tag
last_tag=$(git describe --tags --abbrev=0)
# Get the number of commits from the last tag
commit_count=$(git rev-list --count "$last_tag..HEAD")
# Get the short commit id
last_commit=$(git rev-parse --short HEAD)
version_info=""
if [ "$commit_count" -eq 0 ]; then
    version_info=$last_tag
else
    printf -v version_info "%s(%s~%d)" "$last_commit" "$last_tag" $commit_count
fi
# Replace the version in the versions.py file
sed -i "s/\"dev\"/\"$version_info\"/" api/versions.py
if [ "$docker_version" == "full" ]; then
    docker build -f Dockerfile -t infiniflow/ragflow:dev .
else
    docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim .
fi
git restore api/versions.py
 |