1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #!/bin/bash
- # Version validation regex pattern
- VALID_VERSION_REGEX='^v?[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9\.]+)?$'
- # Prompt for version input
- while true; do
- read -p "Enter version number: " VERSION
- # Remove 'v' prefix for validation
- if [[ "${VERSION#v}" =~ $VALID_VERSION_REGEX ]]; then
- # Show confirmation prompt with original input
- echo "You entered version: ${VERSION}"
- read -p "Is this correct? [Y/n] " confirm
- case ${confirm,,} in
- y|yes|"") break ;;
- n|no)
- echo "Restarting version input..."
- continue
- ;;
- *)
- echo "Invalid input, please answer Y/n"
- continue
- ;;
- esac
- else
- echo "Error: Invalid version format. Please use semantic versioning (e.g. 2.0.0, v2.0.1-beta.1)"
- fi
- done
- # Cross-platform compatible sed command
- if [[ "$OSTYPE" == "darwin"* ]]; then
- sed -i '' "s/\"version\": \".*\"/\"version\": \"${VERSION#v}\"/" app/package.json
- else
- sed -i "s/\"version\": \".*\"/\"version\": \"${VERSION#v}\"/" app/package.json
- fi
- echo "Updated package.json to version ${VERSION#v}"
- # Build app
- echo "Building app..."
- cd app && pnpm build
- if [ $? -ne 0 ]; then
- echo "Error: Build failed"
- exit 1
- fi
- cd ..
- # Run go generate
- echo "Generating Go code..."
- go generate
- if [ $? -ne 0 ]; then
- echo "Error: go generate failed"
- exit 1
- fi
- echo "Version update and generation completed successfully"
|