mirror of
https://gitee.com/johng/gf.git
synced 2024-11-29 10:47:38 +08:00
improve command make version
(#2676)
This commit is contained in:
parent
8cc5338870
commit
9bc9fc4545
53
.set_version.sh
Executable file
53
.set_version.sh
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if [ $# -ne 2 ]; then
|
||||||
|
echo "Parameter exception, please execute in the format of $0 [directory] [version number]"
|
||||||
|
echo "PS:$0 ./ v2.4.0"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$1" ]; then
|
||||||
|
echo "Error: Directory does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$2" != v* ]]; then
|
||||||
|
echo "Error: Version number must start with v"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
workdir=$1
|
||||||
|
newVersion=$2
|
||||||
|
echo "Prepare to replace the GF library version numbers in all go.mod files in the ${workdir} directory with ${newVersion}"
|
||||||
|
|
||||||
|
if [[ true ]]; then
|
||||||
|
echo "package gf" > version.go
|
||||||
|
echo "" >> version.go
|
||||||
|
echo "const (" >> version.go
|
||||||
|
echo -e "\t// VERSION is the current GoFrame version." >> version.go
|
||||||
|
echo -e "\tVERSION = \"${newVersion}\"" >> version.go
|
||||||
|
echo ")" >> version.go
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f "go.work" ]; then
|
||||||
|
mv go.work go.work.version.bak
|
||||||
|
echo "Back up the go.work file to avoid affecting the upgrade"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for file in `find ${workdir} -name go.mod`; do
|
||||||
|
goModPath=$(dirname $file)
|
||||||
|
echo ""
|
||||||
|
echo "processing dir: $goModPath"
|
||||||
|
cd $goModPath
|
||||||
|
go mod tidy
|
||||||
|
# Upgrading only GF related libraries, sometimes even if a version number is specified, it may not be possible to successfully upgrade. Please confirm before submitting the code
|
||||||
|
go list -f "{{if and (not .Indirect) (not .Main)}}{{.Path}}@${newVersion}{{end}}" -m all | grep "^github.com/gogf/gf"
|
||||||
|
go list -f "{{if and (not .Indirect) (not .Main)}}{{.Path}}@${newVersion}{{end}}" -m all | grep "^github.com/gogf/gf" | xargs -L1 go get -v
|
||||||
|
go mod tidy
|
||||||
|
cd -
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -f "go.work.version.bak" ]; then
|
||||||
|
mv go.work.version.bak go.work
|
||||||
|
echo "Restore the go.work file"
|
||||||
|
fi
|
28
Makefile
28
Makefile
@ -18,33 +18,9 @@ lint:
|
|||||||
# make version to=v2.4.0
|
# make version to=v2.4.0
|
||||||
.PHONY: version
|
.PHONY: version
|
||||||
version:
|
version:
|
||||||
$(eval files=$(shell find . -name go.mod))
|
|
||||||
@set -e; \
|
@set -e; \
|
||||||
newVersion=$(to); \
|
newVersion=$(to); \
|
||||||
echo "The version will be set to $$newVersion"; \
|
./.set_version.sh ./ $$newVersion; \
|
||||||
if [[ $$newVersion =~ "v" ]]; then \
|
echo "make version to=$(to) done"
|
||||||
latestVersion=$$newVersion; \
|
|
||||||
echo "package gf" > version.go; \
|
|
||||||
echo "" >> version.go; \
|
|
||||||
echo "const (" >> version.go; \
|
|
||||||
echo -e "\t// VERSION is the current GoFrame version." >> version.go; \
|
|
||||||
echo -e "\tVERSION = \"$$latestVersion\"" >> version.go; \
|
|
||||||
echo ")" >> version.go; \
|
|
||||||
else \
|
|
||||||
latestVersion=latest; \
|
|
||||||
fi; \
|
|
||||||
for file in ${files}; do \
|
|
||||||
goModPath=$$(dirname $$file); \
|
|
||||||
if [[ $$goModPath =~ "./contrib" || $$goModPath =~ "./cmd/gf" || $$goModPath =~ "./example" ]]; then \
|
|
||||||
echo "" ; \
|
|
||||||
echo "processing dir: $$goModPath"; \
|
|
||||||
cd $$goModPath; \
|
|
||||||
go mod tidy; \
|
|
||||||
go list -f "{{if and (not .Indirect) (not .Main)}}{{.Path}}@$$latestVersion{{end}}" -m all | grep "^github.com/gogf/gf/contrib" | xargs -L1 go get -v; \
|
|
||||||
go get -v github.com/gogf/gf/v2@$$latestVersion; \
|
|
||||||
go mod tidy; \
|
|
||||||
cd -; \
|
|
||||||
fi \
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user