Hugo Pointcheval 993c8b60ac
Some checks failed
continuous-integration/drone/pr Build is failing
refactor: rename tools/ to tool/ to follow dart conventions
2023-10-09 22:04:10 +02:00

99 lines
3.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright (C) 2023 WYATT GROUP
# Please see the AUTHORS file for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
basename=$(basename "$0")
basepath=$(dirname "$0")
# Check for arguments, first argument should be wyatt_analysis_version.
if [ $# -eq 0 ]; then
echo "Usage: $basename <wyatt_analysis_version>"
exit 1
fi
wyatt_analysis_version=$1
# Check for dependencies.
if ! command -v yq &>/dev/null; then
echo "yq could not be found. Please install it and try again."
echo "https://github.com/mikefarah/yq"
exit 1
fi
# Read latest version
latest_version=$(yq eval '.version' "${basepath}/../pubspec.yaml")
echo "> latest package version is: $latest_version"
echo "> new package version is: $wyatt_analysis_version"
# Create array with all files that need to exist
files=(
"${basepath}/../pubspec.yaml"
"${basepath}/../README.md"
"${basepath}/../lib/wyatt_analysis.dart"
"${basepath}/../lib/analysis_options.yaml"
"${basepath}/../lib/analysis_options.flutter.yaml"
"${basepath}/../lib/analysis_options.${latest_version}.yaml"
"${basepath}/../lib/analysis_options.flutter.${latest_version}.yaml"
)
# Check if all files exist
for file in "${files[@]}"; do
if [ ! -f "$file" ]; then
echo "File ${file} doesn't exists"
exit 1
fi
done
# Create new analysis_options files
echo "Creating new analysis_options files"
cp "${basepath}/../lib/analysis_options.${latest_version}.yaml" "${basepath}/../lib/analysis_options.${wyatt_analysis_version}.yaml"
cp "${basepath}/../lib/analysis_options.flutter.${latest_version}.yaml" "${basepath}/../lib/analysis_options.flutter.${wyatt_analysis_version}.yaml"
# Update version in new analysis_options files
echo "Updating version in new analysis_options files"
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../lib/analysis_options.${wyatt_analysis_version}.yaml"
rm "${basepath}/../lib/analysis_options.${wyatt_analysis_version}.yaml.bu"
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../lib/analysis_options.flutter.${wyatt_analysis_version}.yaml"
rm "${basepath}/../lib/analysis_options.flutter.${wyatt_analysis_version}.yaml.bu"
# Update version in pubspec.yaml
echo "Updating version in pubspec.yaml"
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../pubspec.yaml"
rm "${basepath}/../pubspec.yaml.bu"
# Update version in README.md
echo "Updating version in README.md"
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../README.md"
rm "${basepath}/../README.md.bu"
# Update version in wyatt_analysis.dart
echo "Updating version in wyatt_analysis.dart"
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../lib/wyatt_analysis.dart"
rm "${basepath}/../lib/wyatt_analysis.dart.bu"
# Update version in analysis_options.yaml
echo "Updating version in analysis_options.yaml"
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../lib/analysis_options.yaml"
rm "${basepath}/../lib/analysis_options.yaml.bu"
# Update version in analysis_options.flutter.yaml
echo "Updating version in analysis_options.flutter.yaml"
sed -i.bu "s/${latest_version}/${wyatt_analysis_version}/g" "${basepath}/../lib/analysis_options.flutter.yaml"
rm "${basepath}/../lib/analysis_options.flutter.yaml.bu"
exit 0