From 08089b4e536aab9e7b09680b36b63708deacdb7c Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:42:49 -0600 Subject: [PATCH 01/13] Auto-detect "latest" point release. --- add-cakephp-version | 59 ++++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/add-cakephp-version b/add-cakephp-version index 225e0fc..ce863e9 100755 --- a/add-cakephp-version +++ b/add-cakephp-version @@ -5,21 +5,22 @@ usage () { cat </dev/null 2>&1 && pwd )"; @@ -45,7 +45,7 @@ if [ "$2" = '-f' ]; then fi -# Just a little precaution since this script comes bundled in the +# Just a little precaution since this script comes bundled in the # CakePHP-Skeleton's bin/ folder, but should't be used from there. if [ "${DIR##*/}" = 'bin' ]; then echo "!!! The script has detected you are trying to run it from the bin/ folder." @@ -58,15 +58,6 @@ if [ -n "$1" ]; then else usage fi -DESTDIR="${DIR}/cake_${TAG}" - -# Automatically replace an existing copy of the version. -if [ -d "${DESTDIR}" ]; then - echo "## Recreating Cake core v${TAG}" >&2 - rm -rf ${DESTDIR} -else - echo "## Creating Cake core v${TAG}" >&2 -fi # If configured, reuse the existing temp folder (if present). if [ $REUSE_REPO -gt 0 ] && [ -d "${TMPDIR}" ]; then @@ -87,13 +78,31 @@ echo "## Fetching updates from remote." >&2 cd ${TMPDIR} git fetch +# "Fill in" the full version number if we were only given a major and minor. +NUM_DOTS=$( tr -dc '.' <<<"$TAG" | awk '{ print length; }' ) +if [ $NUM_DOTS -lt 2 ]; then + echo "## Determining latest point release." >&2 + POINTRELEASE=$( git tag -l | grep "^${TAG}[0-9\.]*$" | sed "s/${TAG}\.//" | sort -n | tail -1 ) + TAG="${TAG}.${POINTRELEASE}" +fi + echo "## Verifying requested tag: ${TAG}" >&2 -git show-ref --tags --quiet --verify -- "refs/tags/$1" +git show-ref --tags --quiet --verify -- "refs/tags/${TAG}" if [ $? -ne 0 ]; then - echo "!! Tag does not exist in the repo. Please check your input and try again." + echo "!! Tag '$TAG' does not exist in the repo. Please check your input and try again." exit 1 fi +DESTDIR="${DIR}/cake_${TAG}" + +# Automatically replace an existing copy of the version. +if [ -d "${DESTDIR}" ]; then + echo "## Recreating Cake core v${TAG}" >&2 + rm -rf ${DESTDIR} +else + echo "## Creating Cake core v${TAG}" >&2 +fi + echo "## Staging snapshot." >&2 mkdir ${DESTDIR} git archive $TAG --format=zip > archive.zip From b0d3fde15cdbaf74f479b0bacf9b4f3dbb93c7db Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:44:15 -0600 Subject: [PATCH 02/13] Set config dir separately. (easier to convert between 1.3/2.x projects.) --- db-backup | 3 ++- db-loadschema | 3 ++- db-login | 4 ++-- db-showupdates | 7 ++++--- updatewritedirs | 5 +++-- writedirs | 12 ++++++++---- 6 files changed, 21 insertions(+), 13 deletions(-) diff --git a/db-backup b/db-backup index 303731e..e3364c0 100755 --- a/db-backup +++ b/db-backup @@ -30,7 +30,8 @@ if (isset($argv[1]) && $argv[1] == '-h') { // Set up variables. $dir = getcwd(); $backupDir = $dir . '/backups'; -$dbConfigFile = $dir . '/Config/database.php'; +$configDir = $dir . '/Config'; +$dbConfigFile = $configDir . '/database.php'; $date = date('Ymd-His'); if (!is_readable($dbConfigFile)) { echo "!! Failed to read database config file: '{$dbConfigFile}'" . PHP_EOL; diff --git a/db-loadschema b/db-loadschema index 2bce4be..27d0bb7 100755 --- a/db-loadschema +++ b/db-loadschema @@ -26,8 +26,9 @@ fi # Variable initialization. DIR="$( cd -P "$( dirname "$0" )"/.. >/dev/null 2>&1 && pwd )" +APP_DIR="$DIR" BIN_DIR="$DIR/bin" -CONFIG_DIR="$DIR/Config" +CONFIG_DIR="$APP_DIR/Config" MIGRATION_DIR="$CONFIG_DIR/Migration" CAKE_SHELL="$DIR/Console/cake" DEFAULT_SCHEMAPHP="$CONFIG_DIR/Schema/schema.php" diff --git a/db-login b/db-login index 68c115e..e3e137c 100755 --- a/db-login +++ b/db-login @@ -24,10 +24,10 @@ fi DIR="$( cd -P "$( dirname "$0" )"/.. >/dev/null 2>&1 && pwd )" -BINDIR="${DIR}/bin" +BIN_DIR="$DIR/bin" # Holy yuck, but nothing else works! -eval $( ${BINDIR}/db-credentials ) +eval $( ${BIN_DIR}/db-credentials ) CMD="mysql --host=${DB_HOST} --database=${DB_NAME} --user=${DB_USER}" PATTERN=" |'" diff --git a/db-showupdates b/db-showupdates index f7fdc92..43c31a8 100755 --- a/db-showupdates +++ b/db-showupdates @@ -28,9 +28,10 @@ if [ "$1" = '-h' ]; then fi DIR="$( cd -P "$( dirname "$0" )"/.. >/dev/null 2>&1 && pwd )" -SQLFILE="$DIR/Config/sql/db_updates.sql" -TMP_A="$DIR/tmp/db_updates.a.sql" -TMP_B="$DIR/tmp/db_updates.b.sql" +APP_DIR="." # Must be relative to git root. +SQLFILE="$APP_DIR/Config/sql/db_updates.sql" +TMP_A="$APP_DIR/tmp/db_updates.a.sql" +TMP_B="$APP_DIR/tmp/db_updates.b.sql" #@TODO: Add a -s (silent) flag for db-apply-updates.sh to use to suppress all "for humans" output. diff --git a/updatewritedirs b/updatewritedirs index 6b0c081..6fed44d 100755 --- a/updatewritedirs +++ b/updatewritedirs @@ -28,8 +28,9 @@ DIRLISTFILE=writedirs.txt #TODO: In future versions, the script could look for an argument ($1) or an environment variable to control which file to read from instead of the hardcoded value above. This would make it more compatible with the updatewritedirs script. -DIR="$( cd -P "$( dirname "$0" )"/.. >/dev/null 2>&1 && pwd )"; -CONFIG_DIR="$DIR/Config"; +DIR="$( cd -P "$( dirname "$0" )"/.. >/dev/null 2>&1 && pwd )" +APP_DIR="$DIR" +CONFIG_DIR="$APP_DIR/Config" # Find any writeable dirs (only root dirs) and append them (for now) to the writedirs.txt file. echo "## Locating writable directories within the project folder." diff --git a/writedirs b/writedirs index d13efe0..00c51ff 100755 --- a/writedirs +++ b/writedirs @@ -34,20 +34,24 @@ DIRLISTFILE=writedirs.txt #TODO: In future versions, the script could look for an argument ($1) or an environment variable to control which file to read from instead of the hardcoded value above. This would make it more compatible with the updatewritedirs script. DIR="$( cd -P "$( dirname "$0" )"/.. >/dev/null 2>&1 && pwd )"; -CONFIG_DIR="$DIR/Config"; +APP_DIR="$DIR" +CONFIG_DIR="$APP_DIR/Config"; if [ -s "$CONFIG_DIR/$DIRLISTFILE" ] then echo "## Processing '${DIRLISTFILE}' for writable directories." while read F ; do #echo $F # Debugging. - chmod -R 777 $DIR/$F + # Skip and lines that are blank, otherwise the chmod will act on $DIR by itself. + if [ -n "$F" ]; then + chmod -R 777 $DIR/$F + fi done < $CONFIG_DIR/$DIRLISTFILE else echo "## Config file ${DIRLISTFILE} not found. Creating it and generating a list of writable directories." # The writedirs.txt file is empty or can't be read. At least set the tmp dir as writeable. - chmod -R 777 $DIR/tmp - + chmod -R 777 $APP_DIR/tmp + # Also try to auto-correct the situation by creating the writedirs.txt file and populating it with the existing writeable dirs in the folder structure. touch $CONFIG_DIR/$DIRLISTFILE chmod -R 777 $CONFIG_DIR/$DIRLISTFILE From a8e1c6e5880bbd914aa476c9f3b7a56562b8accd Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:44:43 -0600 Subject: [PATCH 03/13] Comment cleanup. --- paths | 8 ++++++++ run-in-vagrant | 5 +++++ update | 6 ------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/paths b/paths index a4d573f..488d58c 100755 --- a/paths +++ b/paths @@ -40,3 +40,11 @@ fi echo "!! @TODO: Write the script!" exit 1 + +# core (cake or Lib/Cake) +# app +# backups +# config +# tmp +# webroot +# lib diff --git a/run-in-vagrant b/run-in-vagrant index 6fbd535..c85f893 100755 --- a/run-in-vagrant +++ b/run-in-vagrant @@ -32,6 +32,11 @@ else eval "$@" fi +# It is important that the last command is either the `vagrant ssh` +# or the `eval ...` so that the exit code of **this** script +# is the exit code from those calls. + + # Logic matrix: # vagrant installed + outside vm (no /vagrant mount point) = run in vagrant # vagrant installed + inside vm = run native diff --git a/update b/update index 75bc459..301bff9 100755 --- a/update +++ b/update @@ -122,12 +122,6 @@ echo "## Current commit is $EXISTINGBRANCH ($EXISTINGCOMMIT)"; # Update repository. echo "## Pulling changes from remote repo."; - -# @TODO: Investigate using a manual refspec to avoid two separate calls: -# Ref: http://stackoverflow.com/questions/1204190/does-git-fetch-tags-include-git-fetch#answer-14946840 -# Example: git fetch origin refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* -#git fetch --tags - git fetch origin refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* From 250df4c791966faea82a5dfa7e49d0f6224cac6f Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:47:59 -0600 Subject: [PATCH 04/13] db-sample-data works now. Auto connects to DB, takes table names as args. --- db-sample-data | 83 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/db-sample-data b/db-sample-data index afd4057..a3a84a4 100755 --- a/db-sample-data +++ b/db-sample-data @@ -1,38 +1,67 @@ #!/usr/bin/env bash -# Script is designed to dump frequently updated data from production for -# importing into a local development database. Currently has hardcoded -# $TABLES and needs to be abstracted to work for "any" project more easily. -# beporter@users.sourceforge.net, 2013-03-08 -# -# Run from web root directory on production. -# -# Example: -# bin/db-sample-data database dbuser password - -echo "WORK IN PROGRESS"; -exit 0; + +#--------------------------------------------------------------------- +usage () +{ + cat </dev/null 2>&1 && pwd )" +APP_DIR="$DIR" +BIN_DIR="${DIR}/bin" + # Configuration vars. Set these appropriately for your app and environment. -TABLES="table1 table2 table3" -WEBROOT_PATH="webroot/" -PUBLIC_URL="http://mysite.com" +PUBLIC_URL="" +WEBROOT_PATH="$APP_DIR/webroot/" + # Internal var setup. -DB=$1 -USER=$2 -PASS=$3 +eval $( ${BIN_DIR}/db-credentials ) # Yuck, but nothing else works! DATE=$(date +%Y-%m-%d) OPTIONS="--skip-add-drop-table --no-create-info" -TMP_PATH="tmp/" -DESTINATION_FILE="${DB}_sample_data_$DATE.sql" +TMP_PATH="$DIR/app/tmp/" +DESTINATION_NAME="${DB_NAME}_sample_data_${DATE}" +# Generate the dump, compress it and move it into place. +cd "${TMP_PATH}" +mysqldump --host="${DB_HOST}" --user="${DB_USER}" -p${DB_PASS} ${OPTIONS} ${DB_NAME} $TABLES > "${DESTINATION_NAME}.sql" +zip -rq9 "${WEBROOT_PATH}${DESTINATION_NAME}.zip" "${DESTINATION_NAME}.sql" +rm -f "${DESTINATION_NAME}.sql" -mysqldump -u ${USER} -p${PASS} ${OPTIONS} ${DB} --tables ${TABLES} > "${TMP_PATH}${DESTINATION_FILE}" -zip -rv9 "${WEBROOT_PATH}${DESTINATION}.zip" "${TMP_PATH}${DESTINATION_FILE}" -rm -f "${TMP_PATH}${DESTINATION_FILE}" -echo "Download URL: ${PUBLIC_URL}/${DESTINATION}.zip" -read -p "Delete ${PUBLIC_URL}/${DESTINATION}.zip? [Y/n]: " ARG_DELETEFILE +# Prompt to download the file, then delete it. +echo "## Download URL: ${PUBLIC_URL}/${DESTINATION_NAME}.zip" +read -p "?? Delete ${PUBLIC_URL}/${DESTINATION_NAME}.zip? [Y/n]: " ARG_DELETEFILE case $ARG_DELETEFILE in - [Yy]*|* ) rm -f "${WEBROOT_PATH}${DESTINATION}.zip"; echo "File deleted." break;; - [Nn]* ) echo "File REMAINS! Please clean it up when you are done to prevent data leaks." break;; + [Yy]*|*) + rm -f "${WEBROOT_PATH}${DESTINATION_NAME}.zip" + echo "## File deleted." + ;; + [Nn]*) + echo "## File REMAINS! Please clean it up when you are done to prevent data leaks." + ;; esac From ddb382e847f5c5d6f33c8f704d88463b1d33e388 Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:48:50 -0600 Subject: [PATCH 05/13] Corrects check for PEAR package file. --- deps-install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps-install b/deps-install index d949544..9c3f138 100755 --- a/deps-install +++ b/deps-install @@ -40,7 +40,7 @@ echo "## Running installs for all dependency management tools found."; "$BINDIR/git-submodules" # Install PEAR packages if config file is present. -if [ -e "$PEAR_PACKAGES_FILE" ]; then +if [ -r "$PEAR_PACKAGES_FILE" ]; then PEAR="$( which pear )" if [ $? -gt 0 ]; then echo "!! Found pear config file '$PEAR_PACKAGES_FILE', but pear is not present on this system." From 9a1a6424308bde7563a4d6aa49eb5d114ada5249 Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:49:08 -0600 Subject: [PATCH 06/13] Does a better job checking for composer-installed phpdoc. --- docs-generate | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/docs-generate b/docs-generate index 5b2a9c3..2a947d3 100755 --- a/docs-generate +++ b/docs-generate @@ -26,4 +26,18 @@ fi DIR="$( cd -P "$( dirname "$0" )"/.. >/dev/null 2>&1 && pwd )" CFG_FILE="$DIR/Config/phpdoc.xml" -bin/phpdoc.php --configuration="${CFG_FILE}" "$@" +# Bail out if phpcs isn't available to us +PHPDOC="$( which phpdoc )" +if [ $? -gt 0 ]; then + PHPDOC="$BIN_DIR/phpdoc" + test -x $PHPDOC +fi +if [ $? -gt 0 ]; then + echo "!! The 'phpdoc' command was not found on this system." + echo "" + exit 1 +fi +echo "## Found phpdoc at: ${PHPDOC}" + + +$PHPDOC --configuration="${CFG_FILE}" "$@" From 886f7eb3a360371e1cbb2a72f175caa74ab8de9f Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:49:23 -0600 Subject: [PATCH 07/13] Works around the fatal error when run outside a git repo folder. --- git-currentbranch | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/git-currentbranch b/git-currentbranch index c24fe5b..203c8e7 100755 --- a/git-currentbranch +++ b/git-currentbranch @@ -27,7 +27,5 @@ if [ "$1" = '-h' ]; then usage fi -#@TODO: Works, but throws a fatal error message if run in a non-git dir. We need to suppress that output. - -git rev-parse --quiet --abbrev-ref HEAD -exit $? \ No newline at end of file +git rev-parse --quiet --abbrev-ref HEAD 2>/dev/null +exit $? From 084744211b95aabb7e5684662d8c7e8c80487828 Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:49:46 -0600 Subject: [PATCH 08/13] Now ignores folders named "empty". --- rename-empty | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rename-empty b/rename-empty index 118b145..8785f02 100755 --- a/rename-empty +++ b/rename-empty @@ -27,6 +27,6 @@ fi if [ -n "$1" ]; then DIR=$1 else - DIR="$( cd -P "$( dirname "$0" )"/.. && pwd )"; + DIR="$( cd -P "$( dirname "$0" )"/.. >/dev/null 2>&1 && pwd )" fi -find $DIR -name "empty" -exec sh -c 'mv "$0" "${0%empty}.gitkeep"' {} \; +find $DIR -name "empty" -type f -exec sh -c 'mv "$0" "${0%empty}.gitkeep"' {} \; From d508edc56c150044c41b967c731a33176caf2ea5 Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:51:13 -0600 Subject: [PATCH 09/13] Default to the loadsys coding standard. --- run-codesniffer | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/run-codesniffer b/run-codesniffer index 8d38842..df328f2 100755 --- a/run-codesniffer +++ b/run-codesniffer @@ -61,7 +61,10 @@ else COVERAGE="--report-full --report-summary" fi -$PHPCS -p --extensions=php --standard=CakePHP ${COVERAGE} ${SNIFF_FOLDERS[@]} +# @TODO: Detect which to use. Ours should be a dependency of the shell-scripts so it's always available though. +CODE_STANDARD=CakePHP +CODE_STANDARD=Vendor/loadsys/loadsys_codesniffer/Loadsys +$PHPCS -p --extensions=php --standard="$CODE_STANDARD" ${COVERAGE} ${SNIFF_FOLDERS[@]} if [ $SAVE_REPORTS ] && [ $? -eq 0 ]; then echo "## Full report created at: ${FULL_REPORT_FILE}" From a571800c1bfc7183d842fd90edbd8b921f9fe821 Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:55:16 -0600 Subject: [PATCH 10/13] Now checks APP_ENV if no arg provided. --- set-configs | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/set-configs b/set-configs index 0e64b23..7626942 100755 --- a/set-configs +++ b/set-configs @@ -5,27 +5,18 @@ usage () { cat < Config/core.php Config/database.prod.php -> Config/database.php - Note that "dashed" config files are loaded in place, not renamed. - So core-dev.php should be loaded by core.php when the APP_ENV=dev, - but this script would have to be used to copy core.dev.php to - core.php. The two methods are not entirely compatible since - core.php is probably configured to load core-dev.php in the former - case but would be overwritten by core.dev.php in the latter. - - Usage: - bin/${0##*/} [ENV] + bin/${0##*/} - \$1 = Environment name for which to load configs. Default: $APP_ENV. EOT @@ -37,15 +28,20 @@ fi DIR="$( cd -P "$( dirname "$0" )"/.. >/dev/null 2>&1 && pwd )" -CONFIG_DIR="$DIR/Config"; +APP_DIR="${DIR}" +CONFIG_DIR="${APP_DIR}/Config"; -# Copy config files in place +# Select the correct env, first from command line, then environment, +# then default to production. if [ $1 ]; then ARG_ENV=$1; +elif [ -n "$APP_ENV" ]; then + ARG_ENV=$APP_ENV; else - ARG_ENV="$APP_ENV"; + ARG_ENV="prod"; fi +# Copy config files in place. echo "## Copying config files into place for environment: $ARG_ENV"; for CFG_FILE in $( ls -1 ${CONFIG_DIR} | grep -F ".${ARG_ENV}." ); do cp -fv ${CONFIG_DIR}/${CFG_FILE} ${CONFIG_DIR}/${CFG_FILE/\.${ARG_ENV}/} | sed "s|${DIR}\/||g" From f4145fa8b798278b7692500d1a8c8f8c7e6e3aca Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:56:16 -0600 Subject: [PATCH 11/13] APP_DIR correction. --- db-sample-data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db-sample-data b/db-sample-data index a3a84a4..52ab43f 100755 --- a/db-sample-data +++ b/db-sample-data @@ -44,7 +44,7 @@ WEBROOT_PATH="$APP_DIR/webroot/" eval $( ${BIN_DIR}/db-credentials ) # Yuck, but nothing else works! DATE=$(date +%Y-%m-%d) OPTIONS="--skip-add-drop-table --no-create-info" -TMP_PATH="$DIR/app/tmp/" +TMP_PATH="$APP_DIR/tmp/" DESTINATION_NAME="${DB_NAME}_sample_data_${DATE}" # Generate the dump, compress it and move it into place. From f7e23f849c1a01a92b8368bead52bf271a368a31 Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:58:34 -0600 Subject: [PATCH 12/13] Adds a script to detect and return the latest point release for a given major.minor version. --- semver-get-pointrelease.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 semver-get-pointrelease.sh diff --git a/semver-get-pointrelease.sh b/semver-get-pointrelease.sh new file mode 100755 index 0000000..f8eb0ef --- /dev/null +++ b/semver-get-pointrelease.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# Search a list of local git tags for the "latest" matching the input argument. +# Input must be in the form of: x.y +# Can't rely on `sort -V` since it requires GNU coreutils. + +if [ -z $1 ]; then + exit 1 +fi + +if [ -z $2 ]; then + REPO_DIR=. +else + REPO_DIR=$2 +fi + +git --work-tree="$REPO_DIR" --git-dir="$REPO_DIR/.git" tag -l 1>&2 + +MAJOR_MINOR=$1 +POINTRELEASE=$( git --work-tree="$REPO_DIR" --git-dir="$REPO_DIR/.git" tag -l | grep "^$MAJOR_MINOR" | sed "s/$MAJOR_MINOR\.//" | sort -n | tail -1 ) + + +if [ -z $POINTRELEASE ]; then + exit 2 +fi + +echo "$MAJOR_MINOR.$POINTRELEASE" From 5fda33358eb9893ebd01c0c82541768088958c81 Mon Sep 17 00:00:00 2001 From: Brian Porter Date: Fri, 20 Jun 2014 09:59:37 -0600 Subject: [PATCH 13/13] Adds a script to detect and return the latest point release for a given major.minor version. --- semver-get-pointrelease.sh => semver-get-pointrelease | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename semver-get-pointrelease.sh => semver-get-pointrelease (100%) diff --git a/semver-get-pointrelease.sh b/semver-get-pointrelease similarity index 100% rename from semver-get-pointrelease.sh rename to semver-get-pointrelease