diff --git a/README.md b/README.md index d3fca71..078d684 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Fields can now easily be imported, exported and shared over SVN, GIT or comparab Install WP-CLI as described on [http://wp-cli.org/](http://wp-cli.org/ "WP-CLI") -Using composer: (doesn't work for now until we have released the plugin on wordpress.org/plugins) +Using composer: ``` composer require wpackagist-plugin/advanced-custom-fields-wpcli ``` diff --git a/bin/release.sh b/bin/release.sh index 09809f8..30a8d6c 100644 --- a/bin/release.sh +++ b/bin/release.sh @@ -1,93 +1,116 @@ #!/bin/sh +# VARS - THESE SHOULD BE CHANGED! +ROOT_PATH="" + +PRODUCT_NAME_GIT="acf-wp-cli-git" +PRODUCT_NAME_SVN="acf-wp-cli-svn" + +SVN_REPO="" +GIT_REPO="" + # ASK INFO echo "-------------------------------------------" echo " ACF WP-CLI RELEASER " echo "-------------------------------------------" read -p "VERSION: " VERSION echo "-------------------------------------------" -read -p "PRESS [ENTER] TO RELEASE VERSION THIS VERSION "${VERSION} - -# VARS - THESE SHOULD BE CHANGED! -ROOT_PATH="" -PRODUCT_NAME="" -PRODUCT_NAME_GIT=${PRODUCT_NAME}"-git" -PRODUCT_NAME_SVN=${PRODUCT_NAME}"-svn" -SVN_REPO="" -GIT_REPO="" - -# CHECKOUT SVN DIR IF NOT EXISTS -if [[ ! -d $PRODUCT_NAME_SVN ]]; -then - echo "No SVN directory found, will do a checkout" - svn checkout $SVN_REPO $PRODUCT_NAME_SVN -fi - -# DELETE OLD GIT DIR -rm -Rf $ROOT_PATH$PRODUCT_NAME_GIT - -# CLONE GIT DIR -echo "Cloning GIT repo" -git clone $GIT_REPO $PRODUCT_NAME_GIT - -# MOVE INTO GIT DIR -cd $ROOT_PATH$PRODUCT_NAME_GIT - -# REMOVE UNWANTED FILES & FOLDERS -echo "Removing unwanted files" -rm -Rf .git -rm -f .gitignore -rm -f .travis.yml -rm -f package.json -rm -f composer.json -rm -f composer.lock -rm -f phpunit.xml -rm -f .phpcodesniffer.xml -rm -rf features - -#CREATE NEW README -php -f bin/generate_readme.php - -#COPY README TO TRUNK -cp readme.txt $ROOT_PATH$PRODUCT_NAME_SVN/readme.txt - -# MOVE INTO SVN DIR -cd $ROOT_PATH$PRODUCT_NAME_SVN - -# UPDATE SVN -echo "Updating SVN" -svn update - -# DELETE TRUNK -echo "Replacing trunk" -rm -Rf trunk/ - -# COPY GIT DIR TO TRUNK -cp -R $ROOT_PATH$PRODUCT_NAME_GIT trunk/ - -# DO THE ADD ALL NOT KNOWN FILES UNIX COMMAND -svn add --force * --auto-props --parents --depth infinity -q - -# DO THE REMOVE ALL DELETED FILES UNIX COMMAND -svn rm $( svn status | sed -e '/^!/!d' -e 's/^!//' ) - -# COPY TRUNK TO TAGS/$VERSION -svn copy trunk tags/${VERSION} - -# DO A SVN STATUS -svn status - -# ASK FOR SVN COMMIT MESSAGE -read -p "SVN COMMIT MESSAGE: " COMMIT_MESSAGE -svn commit -m "$COMMIT_MESSAGE" - -# REMOVE THE GIT DIR -echo "Removing GIT dir" -rm -Rf $ROOT_PATH$PRODUCT_NAME_GIT - -# REMOVE THE SVN DIR -echo "Removing SVN dir" -rm -Rf $ROOT_PATH$PRODUCT_NAME_SVN - -# DONE, BYE -echo ${PRODUCT_NAME}" IS RELEASED" +read -p "PRESS [ENTER] TO RELEASE ACF WP-CLI VERSION "${VERSION} + +create_git_release() { + get_last_version_from_git + remove_unwanted_files +} + +get_last_version_from_git() { + echo "Getting latest release from Github" + rm -rf $ROOT_PATH/$PRODUCT_NAME_GIT + + mkdir $ROOT_PATH/$PRODUCT_NAME_GIT + + git clone $GIT_REPO $ROOT_PATH/$PRODUCT_NAME_GIT +} + +remove_unwanted_files() { + echo "Removing unwanted files" + yes | rm -r $ROOT_PATH/$PRODUCT_NAME_GIT/.git + yes | rm -r $ROOT_PATH/$PRODUCT_NAME_GIT/features + + rm $ROOT_PATH/$PRODUCT_NAME_GIT/.gitignore + rm $ROOT_PATH/$PRODUCT_NAME_GIT/.travis.yml + rm $ROOT_PATH/$PRODUCT_NAME_GIT/composer.json + rm $ROOT_PATH/$PRODUCT_NAME_GIT/composer.lock + rm $ROOT_PATH/$PRODUCT_NAME_GIT/phpunit.xml + rm $ROOT_PATH/$PRODUCT_NAME_GIT/.phpcodesniffer.xml + rm $ROOT_PATH/$PRODUCT_NAME_GIT/README.md +} + +create_svn_release() { + echo "Starting on SVN" + + create_repo + update_svn + copy_github_release + get_readme + do_svn_magic +} + +update_svn() { + svn update $ROOT_PATH/$PRODUCT_NAME_SVN +} + +create_repo() { + if [[ ! -d $ROOT_PATH/$PRODUCT_NAME_SVN ]]; + then + echo "No SVN directory found, will do a checkout" + svn checkout $SVN_REPO $ROOT_PATH/$PRODUCT_NAME_SVN + fi + + if [[ -d $ROOT_PATH/$PRODUCT_NAME_SVN/trunk ]]; + then + yes | rm -r $ROOT_PATH/$PRODUCT_NAME_SVN/trunk + mkdir $ROOT_PATH/$PRODUCT_NAME_SVN/trunk + fi +} + +copy_github_release() { + echo "Copying git release to SVN" + cp -R $ROOT_PATH/$PRODUCT_NAME_GIT $ROOT_PATH/$PRODUCT_NAME_SVN/trunk/ +} + +get_readme() { + echo "Creating readme" + php -f $ROOT_PATH/bin/generate_readme.php + cp $ROOT_PATH/readme.txt $ROOT_PATH/$PRODUCT_NAME_SVN/trunk/readme.txt +} + +do_svn_magic() { + echo "Doing some svn magic!" + cd $ROOT_PATH/$PRODUCT_NAME_SVN + svn add --force * --auto-props --parents --depth infinity -q + + # DO THE REMOVE ALL DELETED FILES UNIX COMMAND + svn rm $( svn status | sed -e '/^!/!d' -e 's/^!//' ) $ROOT_PATH/$PRODUCT_NAME_SVN + + # COPY TRUNK TO TAGS/$VERSION + svn copy trunk tags/${VERSION} $ROOT_PATH/$PRODUCT_NAME_SVN + + # DO A SVN STATUS + svn status $ROOT_PATH/$PRODUCT_NAME_SVN + + # ASK FOR SVN COMMIT MESSAGE + read -p "SVN COMMIT MESSAGE: " COMMIT_MESSAGE + svn commit -m "$COMMIT_MESSAGE" $ROOT_PATH/$PRODUCT_NAME_SVN + + cd $ROOT_PATH +} + +clean_up() { + echo "Cleaning up!" + yes | rm -r $ROOT_PATH/$PRODUCT_NAME_GIT + yes | rm -r $ROOT_PATH/$PRODUCT_NAME_SVN +} + +create_git_release +create_svn_release +clean_up