- Build and Release script for WordPress plugins

This commit is contained in:
Josako
2024-11-29 14:11:36 +01:00
parent 99135c9b02
commit fb798501b9

View File

@@ -0,0 +1,84 @@
#!/bin/bash
# Define the plugin names and paths
PLUGINS=("eveai-chat" "eveai_sync")
RELEASE_PATH="/Volumes/OWC4M2_1/Dropbox/Professioneel/AskEveAI/Production Plugins/WordPress"
# Helper function: Print usage
print_usage() {
echo "Usage: $0 [-b | -r] [plugin_name...]"
echo " -b Build only"
echo " -r Release only"
echo " If no options are provided, both build and release will be performed."
echo " Specify plugin names to target specific plugins. Default is all."
}
# Build function
build_plugin() {
local plugin=$1
local zip_file="${plugin}.zip"
echo "Building plugin: $plugin"
if [ -f "$zip_file" ]; then
echo "Removing existing zip file: $zip_file"
rm "$zip_file"
fi
if [ -d "$plugin" ]; then
zip -r "$zip_file" "$plugin" > /dev/null
echo "Plugin $plugin built successfully: $zip_file"
else
echo "Error: Plugin folder $plugin does not exist. Skipping."
fi
}
# Release function
release_plugin() {
local plugin=$1
local zip_file="${plugin}.zip"
local destination="$RELEASE_PATH/$zip_file"
echo "Releasing plugin: $plugin"
if [ -f "$zip_file" ]; then
cp "$zip_file" "$RELEASE_PATH"
echo "Plugin $plugin released successfully to $destination"
else
echo "Error: Build file $zip_file not found. Please build the plugin first."
fi
}
# Parse arguments
BUILD=false
RELEASE=false
TARGET_PLUGINS=("${PLUGINS[@]}")
while getopts "brh" opt; do
case "$opt" in
b) BUILD=true ;;
r) RELEASE=true ;;
h) print_usage; exit 0 ;;
*) print_usage; exit 1 ;;
esac
done
shift $((OPTIND-1))
# Handle plugin name filtering
if [ "$#" -gt 0 ]; then
TARGET_PLUGINS=("$@")
fi
# Default action: both build and release
if ! $BUILD && ! $RELEASE; then
BUILD=true
RELEASE=true
fi
# Execute actions
for plugin in "${TARGET_PLUGINS[@]}"; do
if $BUILD; then
build_plugin "$plugin"
fi
if $RELEASE; then
release_plugin "$plugin"
fi
done