diff --git a/packages/wyatt_analysis/new_version.sh b/packages/wyatt_analysis/new_version.sh new file mode 100755 index 00000000..f92f9421 --- /dev/null +++ b/packages/wyatt_analysis/new_version.sh @@ -0,0 +1,114 @@ +#!/usr/bin/env sh + +# Copyright (C) 2022 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 . + +usage=" +usage: + $(basename "$0") -- create new analyzer files. + +where: + previous_version: last version, for example \`2.2.1\` + new_version: new version, for example \`2.2.3\`" + +old=$1 +new=$2 + +if [ -z "$old" ]; then + echo "previous_version cannot be null" + echo "${usage}" + exit 1 +fi + +if [ -z "$new" ]; then + echo "new_version cannot be null" + echo "${usage}" + exit 1 +fi + +SCRIPT_PATH="${BASH_SOURCE:-$0}" +ABS_SCRIPT_PATH="$(realpath "${SCRIPT_PATH}")" +ABS_DIRECTORY="$(dirname "${ABS_SCRIPT_PATH}")" + +OPTIONS="${ABS_DIRECTORY}/lib/analysis_options.yaml" +OLD_OPTIONS="${ABS_DIRECTORY}/lib/analysis_options.${old}.yaml" +NEW_OPTIONS="${ABS_DIRECTORY}/lib/analysis_options.${new}.yaml" + +OPTIONS_FLUTTER="${ABS_DIRECTORY}/lib/analysis_options.flutter.yaml" +OLD_OPTIONS_FLUTTER="${ABS_DIRECTORY}/lib/analysis_options.flutter.${old}.yaml" +NEW_OPTIONS_FLUTTER="${ABS_DIRECTORY}/lib/analysis_options.flutter.${new}.yaml" + +if [ ! -e "$OLD_OPTIONS" ]; then + echo "analysis_options.${old}.yaml doesn't exists" + echo "${usage}" + exit 1 +fi + +if [ ! -e "$OLD_OPTIONS_FLUTTER" ]; then + echo "analysis_options.flutter.${old}.yaml doesn't exists" + echo "${usage}" + exit 1 +fi + +# Copy previous version files +cp "${OLD_OPTIONS}" "${NEW_OPTIONS}" +cp "${OLD_OPTIONS_FLUTTER}" "${NEW_OPTIONS_FLUTTER}" + +# Search and replace old version string occurences in new files +sed -e "s/${old}/${new}/g" "${NEW_OPTIONS_FLUTTER}" > tempfile.tmp +mv -f tempfile.tmp "${NEW_OPTIONS_FLUTTER}" + +echo " +# Copyright (C) 2022 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 . + +include: package:wyatt_analysis/analysis_options.${new}.yaml +" > "${OPTIONS}" + +echo " +# Copyright (C) 2022 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 . + +include: package:wyatt_analysis/analysis_options.flutter.${new}.yaml +" > "${OPTIONS_FLUTTER}" + +exit 0