From 5dca852aab98d18a4a6521b7f0909ec520fc34c7 Mon Sep 17 00:00:00 2001 From: bwnyasse <5323628+bwnyasse@users.noreply.github.com> Date: Sat, 10 Jan 2026 23:39:06 -0500 Subject: [PATCH] feat(scripts): sync mobile prototypes using Flutter feat(scripts): add mobile client and staff prototype sync feat(scripts): use FLUTTER_CMD variable for flutter commands feat(scripts): add FVM support and error handling feat(scripts): patch vite config for relative paths chore(scripts): remove .keep files from mobile prototypes --- .../mobile/client/client_app_mvp/.keep | 0 .../mobile/staff/staff_app_mvp/.keep | 0 scripts/sync-prototypes.sh | 102 +++++++++++++++++- 3 files changed, 100 insertions(+), 2 deletions(-) delete mode 100644 internal/launchpad/prototypes/mobile/client/client_app_mvp/.keep delete mode 100644 internal/launchpad/prototypes/mobile/staff/staff_app_mvp/.keep diff --git a/internal/launchpad/prototypes/mobile/client/client_app_mvp/.keep b/internal/launchpad/prototypes/mobile/client/client_app_mvp/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/internal/launchpad/prototypes/mobile/staff/staff_app_mvp/.keep b/internal/launchpad/prototypes/mobile/staff/staff_app_mvp/.keep deleted file mode 100644 index e69de29b..00000000 diff --git a/scripts/sync-prototypes.sh b/scripts/sync-prototypes.sh index 764c6516..de759202 100755 --- a/scripts/sync-prototypes.sh +++ b/scripts/sync-prototypes.sh @@ -6,6 +6,14 @@ POC_REPO_PATH="../client-krow-poc" WEB_POC_SOURCE="$POC_REPO_PATH/prototypes/web/krow_web_application" WEB_DEST="internal/launchpad/prototypes/web" +MOBILE_CLIENT_SOURCE="$POC_REPO_PATH/prototypes/mobile/client/client_mobile_application" +MOBILE_CLIENT_DEST="internal/launchpad/prototypes/mobile/client" +MOBILE_CLIENT_HREF="/prototypes/mobile/client/" + +MOBILE_STAFF_SOURCE="$POC_REPO_PATH/prototypes/mobile/staff/staff_mobile_application" +MOBILE_STAFF_DEST="internal/launchpad/prototypes/mobile/staff" +MOBILE_STAFF_HREF="/prototypes/mobile/staff/" + # Colors GREEN='\033[0;32m' BLUE='\033[0;34m' @@ -30,9 +38,33 @@ if [ -d "$WEB_POC_SOURCE" ]; then echo " -> Installing dependencies..." pnpm install --silent + # Temporarily patch vite.config to enforce relative base path + # This is necessary because command line args --base=./ might be ignored by some npm scripts + CONFIG_FILE="" + if [ -f "vite.config.ts" ]; then CONFIG_FILE="vite.config.ts"; fi + if [ -f "vite.config.js" ]; then CONFIG_FILE="vite.config.js"; fi + + if [ -n "$CONFIG_FILE" ]; then + echo " -> Patching $CONFIG_FILE for relative paths..." + cp "$CONFIG_FILE" "$CONFIG_FILE.bak" + # Insert base: './', inside defineConfig({ or export default { + if [[ "$OSTYPE" == "darwin"* ]]; then + sed -i '' 's/defineConfig({/defineConfig({ base: "\.\/",/g' "$CONFIG_FILE" || sed -i '' 's/export default {/export default { base: "\.\/",/g' "$CONFIG_FILE" + else + sed -i 's/defineConfig({/defineConfig({ base: "\.\/",/g' "$CONFIG_FILE" || sed -i 's/export default {/export default { base: "\.\/",/g' "$CONFIG_FILE" + fi + else + echo -e "${RED}⚠️ Warning: No vite.config.js/ts found. Build might fail to use relative paths.${NC}" + fi + echo " -> Building dist..." pnpm run build + # Restore original config + if [ -n "$CONFIG_FILE" ]; then + mv "$CONFIG_FILE.bak" "$CONFIG_FILE" + fi + # Go back to project root cd - > /dev/null @@ -49,8 +81,74 @@ else echo -e "${RED}⚠️ Warning: Web POC source directory not found at $WEB_POC_SOURCE${NC}" fi -# --- Future: Sync Mobile Prototypes --- -# Add logic here when mobile prototypes are ready to be built for web (Flutter Web) +# --- Determine Flutter Command --- + +# Helper: Add FVM default to PATH if it exists (fixes Make environment missing user PATH) +if [ -d "$HOME/fvm/default/bin" ]; then + export PATH="$HOME/fvm/default/bin:$PATH" +fi + +if command -v flutter &> /dev/null; then + FLUTTER_CMD="flutter" + echo -e "${BLUE}ℹ️ Using Flutter: $(which flutter)${NC}" +elif command -v fvm &> /dev/null; then + FLUTTER_CMD="fvm flutter" + echo -e "${BLUE}ℹ️ Using FVM: $FLUTTER_CMD${NC}" +else + echo -e "${RED}❌ Error: 'flutter' command not found. Please ensure Flutter is in your PATH or FVM is configured.${NC}" + # Try to provide a helpful hint based on user environment + if [ -d "$HOME/fvm/versions" ]; then + echo -e "${BLUE}💡 Hint: You seem to have FVM versions. Try running 'fvm global ' to set a default.${NC}" + fi + exit 1 +fi + +# --- Sync Mobile Client (Flutter) --- +echo -e "${BLUE}📱 Building Mobile Client Prototype (Flutter)...${NC}" + +if [ -d "$MOBILE_CLIENT_SOURCE" ]; then + cd "$MOBILE_CLIENT_SOURCE" + + echo " -> Getting packages..." + $FLUTTER_CMD pub get + + echo " -> Building web bundle (base-href: $MOBILE_CLIENT_HREF)..." + $FLUTTER_CMD build web --base-href "$MOBILE_CLIENT_HREF" --release + + cd - > /dev/null + + echo " -> Deploying to Launchpad..." + rm -rf "$MOBILE_CLIENT_DEST"/* + mkdir -p "$MOBILE_CLIENT_DEST" + cp -R "$MOBILE_CLIENT_SOURCE/build/web/"* "$MOBILE_CLIENT_DEST/" + + echo -e "${GREEN}✅ Mobile Client synced successfully.${NC}" +else + echo -e "${RED}⚠️ Warning: Mobile Client source not found at $MOBILE_CLIENT_SOURCE${NC}" +fi + +# --- Sync Mobile Staff (Flutter) --- +echo -e "${BLUE}🍳 Building Mobile Staff Prototype (Flutter)...${NC}" +if [ -d "$MOBILE_STAFF_SOURCE" ]; then + cd "$MOBILE_STAFF_SOURCE" + + echo " -> Getting packages..." + $FLUTTER_CMD pub get + + echo " -> Building web bundle (base-href: $MOBILE_STAFF_HREF)..." + $FLUTTER_CMD build web --base-href "$MOBILE_STAFF_HREF" --release + + cd - > /dev/null + + echo " -> Deploying to Launchpad..." + rm -rf "$MOBILE_STAFF_DEST"/* + mkdir -p "$MOBILE_STAFF_DEST" + cp -R "$MOBILE_STAFF_SOURCE/build/web/"* "$MOBILE_STAFF_DEST/" + + echo -e "${GREEN}✅ Mobile Staff synced successfully.${NC}" +else + echo -e "${RED}⚠️ Warning: Mobile Staff source not found at $MOBILE_STAFF_SOURCE${NC}" +fi echo -e "${GREEN}🎉 Synchronization complete!${NC}" echo "You can now verify the prototypes in internal/launchpad/prototypes/ and commit the changes."