New script to build two versions of the package for Max 8 and Max 9 based on prefix in filenames.
This commit is contained in:
109
build.sh
Executable file
109
build.sh
Executable file
@@ -0,0 +1,109 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Max Package Build Script
|
||||
# Builds version-specific packages for Max 8 and Max 9
|
||||
# Generated by Claude Sonnet 4.5
|
||||
|
||||
set -e # Exit on error
|
||||
|
||||
# Configuration
|
||||
PACKAGE_NAME="tc.preset"
|
||||
DIST_DIR="./dist"
|
||||
MAX8_DIR="$DIST_DIR/Max 8/$PACKAGE_NAME"
|
||||
MAX9_DIR="$DIST_DIR/Max 9/$PACKAGE_NAME"
|
||||
INSTALL_MAX8="$HOME/Documents/Max 8/Packages/$PACKAGE_NAME"
|
||||
INSTALL_MAX9="$HOME/Documents/Max 9/Packages/$PACKAGE_NAME"
|
||||
|
||||
echo "Building Max packages..."
|
||||
|
||||
# Clean and create dist directories
|
||||
rm -rf "$DIST_DIR"
|
||||
mkdir -p "$MAX8_DIR"
|
||||
mkdir -p "$MAX9_DIR"
|
||||
|
||||
# Function to copy files recursively
|
||||
copy_files() {
|
||||
local target_dir=$1
|
||||
local prefix=$2
|
||||
|
||||
# Find all files (not directories) in the repo
|
||||
find . -type f \
|
||||
-not -path "*/.*" \
|
||||
-not -path "./dist/*" \
|
||||
-not -name "build.sh" | while read -r file; do
|
||||
|
||||
# Get filename without path
|
||||
local filename=$(basename "$file")
|
||||
# Get relative path from repo root
|
||||
local relpath="${file#./}"
|
||||
local dirpath=$(dirname "$relpath")
|
||||
|
||||
# Determine if file should be copied to this version
|
||||
if [[ $filename == max8.* ]] && [[ $prefix == "max8" ]]; then
|
||||
# Remove max8. prefix and copy
|
||||
local newname="${filename#max8.}"
|
||||
local target="$target_dir/$dirpath/$newname"
|
||||
mkdir -p "$(dirname "$target")"
|
||||
cp "$file" "$target"
|
||||
echo " → $relpath (as $dirpath/$newname) [Max 8]"
|
||||
elif [[ $filename == max9.* ]] && [[ $prefix == "max9" ]]; then
|
||||
# Remove max9. prefix and copy
|
||||
local newname="${filename#max9.}"
|
||||
local target="$target_dir/$dirpath/$newname"
|
||||
mkdir -p "$(dirname "$target")"
|
||||
cp "$file" "$target"
|
||||
echo " → $relpath (as $dirpath/$newname) [Max 9]"
|
||||
elif [[ $filename != max8.* ]] && [[ $filename != max9.* ]]; then
|
||||
# Copy shared files to both versions
|
||||
local target="$target_dir/$relpath"
|
||||
mkdir -p "$(dirname "$target")"
|
||||
cp "$file" "$target"
|
||||
echo " → $relpath [shared]"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
echo ""
|
||||
echo "Building Max 8 version..."
|
||||
copy_files "$MAX8_DIR" "max8"
|
||||
|
||||
echo ""
|
||||
echo "Building Max 9 version..."
|
||||
copy_files "$MAX9_DIR" "max9"
|
||||
|
||||
echo ""
|
||||
echo "Build complete!"
|
||||
echo ""
|
||||
echo "Max 8 package: $MAX8_DIR"
|
||||
echo "Max 9 package: $MAX9_DIR"
|
||||
echo ""
|
||||
|
||||
# Ask to install
|
||||
read -p "Install to Max Packages folders (~/Documents/Max <8|9>/Packages)? (y/n) " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Installing packages..."
|
||||
|
||||
# Create Packages directories if they don't exist
|
||||
mkdir -p "$HOME/Documents/Max 8/Packages"
|
||||
mkdir -p "$HOME/Documents/Max 9/Packages"
|
||||
|
||||
# Copy to Max 8
|
||||
if [ -d "$INSTALL_MAX8" ]; then
|
||||
rm -rf "$INSTALL_MAX8"
|
||||
fi
|
||||
cp -r "$MAX8_DIR" "$INSTALL_MAX8"
|
||||
echo "✓ Installed to $INSTALL_MAX8"
|
||||
|
||||
# Copy to Max 9
|
||||
if [ -d "$INSTALL_MAX9" ]; then
|
||||
rm -rf "$INSTALL_MAX9"
|
||||
fi
|
||||
cp -r "$MAX9_DIR" "$INSTALL_MAX9"
|
||||
echo "✓ Installed to $INSTALL_MAX9"
|
||||
|
||||
echo ""
|
||||
echo "Installation complete!"
|
||||
else
|
||||
echo "Skipped installation."
|
||||
fi
|
Reference in New Issue
Block a user