rename.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/env bash
  2. # https://gist.github.com/vncsna/64825d5609c146e80de8b1fd623011ca
  3. set -euo pipefail
  4. # Define the input vars
  5. GITHUB_REPOSITORY=${1?Error: Please pass username/repo, e.g. prb/foundry-template}
  6. GITHUB_REPOSITORY_OWNER=${2?Error: Please pass username, e.g. prb}
  7. GITHUB_REPOSITORY_DESCRIPTION=${3:-""} # If null then replace with empty string
  8. echo "GITHUB_REPOSITORY: $GITHUB_REPOSITORY"
  9. echo "GITHUB_REPOSITORY_OWNER: $GITHUB_REPOSITORY_OWNER"
  10. echo "GITHUB_REPOSITORY_DESCRIPTION: $GITHUB_REPOSITORY_DESCRIPTION"
  11. # jq is like sed for JSON data
  12. JQ_OUTPUT=`jq \
  13. --arg NAME "@$GITHUB_REPOSITORY" \
  14. --arg AUTHOR_NAME "$GITHUB_REPOSITORY_OWNER" \
  15. --arg URL "https://github.com/$GITHUB_REPOSITORY_OWNER" \
  16. --arg DESCRIPTION "$GITHUB_REPOSITORY_DESCRIPTION" \
  17. '.name = $NAME | .description = $DESCRIPTION | .author |= ( .name = $AUTHOR_NAME | .url = $URL )' \
  18. package.json
  19. `
  20. # Overwrite package.json
  21. echo "$JQ_OUTPUT" > package.json
  22. # Make sed command compatible in both Mac and Linux environments
  23. # Reference: https://stackoverflow.com/a/38595160/8696958
  24. sedi () {
  25. sed --version >/dev/null 2>&1 && sed -i -- "$@" || sed -i "" "$@"
  26. }
  27. # Rename instances of "PaulRBerg/foundry-template" to the new repo name in README.md for badges only
  28. sedi "/gitpod/ s|PaulRBerg/foundry-template|"${GITHUB_REPOSITORY}"|;" "README.md"
  29. sedi "/gitpod-badge/ s|PaulRBerg/foundry-template|"${GITHUB_REPOSITORY}"|;" "README.md"
  30. sedi "/gha/ s|PaulRBerg/foundry-template|"${GITHUB_REPOSITORY}"|;" "README.md"
  31. sedi "/gha-badge/ s|PaulRBerg/foundry-template|"${GITHUB_REPOSITORY}"|;" "README.md"