themer/cli/scripts/scope-package.zsh
2020-04-25 06:57:40 -06:00

60 lines
1.6 KiB
Bash
Executable File

#!/bin/zsh
set -euo pipefail
OLD_NAME="themer-$1"
NEW_NAME="@themer/$1"
echo Renaming $OLD_NAME package to $NEW_NAME...
PACKAGES_DIR="$(realpath "$(dirname $0:A)/../packages")"
OLD_PACKAGE_DIR="$PACKAGES_DIR/$OLD_NAME"
NEW_PACKAGE_DIR="$PACKAGES_DIR/$1"
mv $OLD_PACKAGE_DIR $NEW_PACKAGE_DIR
# package.json -> fix name and homepage fields
sed -i '' -E 's|"name": "'$OLD_NAME'"|"name": "'$NEW_NAME'"|' $NEW_PACKAGE_DIR/package.json
sed -i '' -E 's|"homepage": "(.+)'$OLD_NAME'(.+)"|"homepage": "\1'$1'\2"|' $NEW_PACKAGE_DIR/package.json
# .yarnrc -> find/replace
sed -i '' -E "s|$OLD_NAME|$NEW_NAME|g" $NEW_PACKAGE_DIR/.yarnrc
# README.md -> find/replace
sed -i '' -E "s|$OLD_NAME|$NEW_NAME|g" $NEW_PACKAGE_DIR/README.md
# Root README.md -> find/replace
ROOT_README="$(realpath "$(dirname $0:A)/../../README.md")"
sed -i '' -E "s|\[$OLD_NAME\]|\[$NEW_NAME\]|" $ROOT_README
sed -i '' -E "s|packages/$OLD_NAME|packages/$1|" $ROOT_README
sed -i '' -E "s|$OLD_NAME dark preview|$NEW_NAME dark preview|" $ROOT_README
sed -i '' -E "s|$OLD_NAME light preview|$NEW_NAME light preview|" $ROOT_README
# Misc
echo "TODO (manual tasks):"
echo " - see if any tests need to be renamed"
echo " - find other instances of $OLD_NAME in the repo"
echo " - Review diffs and stage changes (next step is commit)"
read "?Ready to proceed? "
# Test - assumes pwd is cli/
yarn
yarn test
# Commit, publish, and tag
read "HUMAN_NAME?Human readable name: "
git commit -m "Scope $HUMAN_NAME package"
npm publish $NEW_PACKAGE_DIR --access public
read "VERSION?Version published: "
git tag "$NEW_NAME-v$VERSION"