mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 05:51:39 +00:00
58 lines
1.5 KiB
Bash
58 lines
1.5 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
ProjectRbxl="Project.rbxl"
|
|
ProjectJsonFile="default.project.json"
|
|
|
|
# Check for clean flag and filter it out
|
|
DoClean=false
|
|
FilteredArgs=""
|
|
for Arg in "$@"; do
|
|
if [ "$Arg" = "clean" ]; then
|
|
DoClean=true
|
|
else
|
|
FilteredArgs="$FilteredArgs $Arg"
|
|
fi
|
|
done
|
|
|
|
# Load .env file (auto-export all variables)
|
|
if [ -f ".env" ]; then
|
|
set -a
|
|
. ./.env
|
|
set +a
|
|
fi
|
|
|
|
# Extract PlaceId from project json (first number after servePlaceIds line)
|
|
PlaceId=$(grep -A1 'servePlaceIds' "$ProjectJsonFile" | grep -o '[0-9]\+')
|
|
echo "PlaceId: $PlaceId"
|
|
|
|
# Download rbxl from Roblox
|
|
Url="https://assetdelivery.roblox.com/v1/asset/?id=$PlaceId"
|
|
echo "Downloading $Url..."
|
|
curl -fSL --compressed -o "$ProjectRbxl" -H "Cookie: .ROBLOSECURITY=${ROBLOSECURITY}" "$Url"
|
|
|
|
# Delete src/ completely and recreate directory structure if --clean specified
|
|
if [ "$DoClean" = true ]; then
|
|
echo "Cleaning src/ directory..."
|
|
rm -rf src
|
|
mkdir -p src/ReplicatedFirst
|
|
mkdir -p src/ReplicatedStorage
|
|
mkdir -p src/ServerScriptService
|
|
mkdir -p src/ServerStorage
|
|
mkdir -p src/StarterPlayer/StarterCharacterScripts
|
|
mkdir -p src/StarterPlayer/StarterPlayerScripts
|
|
mkdir -p src/Workspace
|
|
fi
|
|
|
|
if [ -z "$FilteredArgs" ]; then
|
|
rojo syncback --non-interactive --input "$ProjectRbxl" "$ProjectJsonFile"
|
|
else
|
|
# shellcheck disable=SC2086
|
|
rojo syncback --non-interactive $FilteredArgs --input "$ProjectRbxl" "$ProjectJsonFile"
|
|
fi
|
|
|
|
# Stage all changes
|
|
if [ "$DoClean" = true ]; then
|
|
echo "Running git add..."
|
|
git add .
|
|
fi
|