257 lines
7.6 KiB
Bash
257 lines
7.6 KiB
Bash
#!/bin/bash
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
PURPLE='\033[0;35m'
|
|
CYAN='\033[0;36m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo ""
|
|
echo -e "${PURPLE}📦 Gooner Training Academy - Distribution Packager${NC}"
|
|
echo -e "${PURPLE}==================================================${NC}"
|
|
echo ""
|
|
|
|
# Set distribution info
|
|
DIST_NAME="Gooner-Training-Academy-v0.50-Beta"
|
|
BUILD_DATE=$(date +%Y-%m-%d)
|
|
OUTPUT_DIR="../${DIST_NAME}"
|
|
|
|
echo -e "${CYAN}🎯 Creating distribution package: ${DIST_NAME}${NC}"
|
|
echo -e "${CYAN}📅 Build Date: ${BUILD_DATE}${NC}"
|
|
echo -e "${CYAN}📁 Output Directory: ${OUTPUT_DIR}${NC}"
|
|
echo ""
|
|
|
|
# Clean previous build
|
|
if [ -d "$OUTPUT_DIR" ]; then
|
|
echo -e "${YELLOW}🧹 Cleaning previous build...${NC}"
|
|
rm -rf "$OUTPUT_DIR"
|
|
fi
|
|
|
|
# Create distribution directory
|
|
echo -e "${BLUE}📂 Creating distribution directory...${NC}"
|
|
mkdir -p "$OUTPUT_DIR"
|
|
|
|
# Copy core files
|
|
echo -e "${BLUE}📄 Copying core application files...${NC}"
|
|
cp index.html quick-play.html training-academy.html campaign.html porn-cinema.html "$OUTPUT_DIR/"
|
|
cp player-stats.html user-profile.html library.html package.json "$OUTPUT_DIR/"
|
|
|
|
# Copy documentation
|
|
echo -e "${BLUE}📚 Copying documentation...${NC}"
|
|
mkdir -p "$OUTPUT_DIR/docs"
|
|
cp README.md "$OUTPUT_DIR/"
|
|
|
|
# Copy main docs
|
|
if [ -f docs/INSTALLATION_GUIDE.md ]; then
|
|
cp docs/INSTALLATION_GUIDE.md "$OUTPUT_DIR/docs/"
|
|
fi
|
|
if [ -f docs/TESTER_GUIDE.md ]; then
|
|
cp docs/TESTER_GUIDE.md "$OUTPUT_DIR/docs/"
|
|
fi
|
|
if [ -f docs/README.md ]; then
|
|
cp docs/README.md "$OUTPUT_DIR/docs/"
|
|
fi
|
|
|
|
# Copy campaign/academy documentation
|
|
if [ -f docs/ACADEMY_PHASE1_COMPLETE.md ]; then
|
|
cp docs/ACADEMY_PHASE1_COMPLETE.md "$OUTPUT_DIR/docs/"
|
|
fi
|
|
if [ -f docs/TRAINING_MODULES.md ]; then
|
|
cp docs/TRAINING_MODULES.md "$OUTPUT_DIR/docs/"
|
|
fi
|
|
if [ -f docs/MODULE_RANK_SYSTEM.md ]; then
|
|
cp docs/MODULE_RANK_SYSTEM.md "$OUTPUT_DIR/docs/"
|
|
fi
|
|
if [ -f docs/GAME_STATS_PANEL_FIX.md ]; then
|
|
cp docs/GAME_STATS_PANEL_FIX.md "$OUTPUT_DIR/docs/"
|
|
fi
|
|
|
|
# Copy training game redesign docs if they exist
|
|
if [ -d docs/training-game-redesign ]; then
|
|
cp -r docs/training-game-redesign "$OUTPUT_DIR/docs/"
|
|
fi
|
|
|
|
# Copy setup scripts
|
|
echo -e "${BLUE}🔧 Copying setup scripts...${NC}"
|
|
cp scripts/setup.bat scripts/setup.sh "$OUTPUT_DIR/"
|
|
if [ -f scripts/Start-webgame.bat ]; then
|
|
cp scripts/Start-webgame.bat "$OUTPUT_DIR/"
|
|
fi
|
|
|
|
# Copy source code (excluding user data)
|
|
echo -e "${BLUE}💻 Copying source code...${NC}"
|
|
cp -r src "$OUTPUT_DIR/"
|
|
|
|
# Copy assets (clean)
|
|
echo -e "${BLUE}🎨 Copying clean assets...${NC}"
|
|
if [ -d assets ]; then
|
|
cp -r assets "$OUTPUT_DIR/"
|
|
fi
|
|
|
|
# Copy empty directories for user content
|
|
echo -e "${BLUE}📁 Creating user content directories...${NC}"
|
|
mkdir -p "$OUTPUT_DIR/images/tasks"
|
|
mkdir -p "$OUTPUT_DIR/images/consequences"
|
|
mkdir -p "$OUTPUT_DIR/audio"
|
|
mkdir -p "$OUTPUT_DIR/videos"
|
|
mkdir -p "$OUTPUT_DIR/backups"
|
|
|
|
# Copy sample audio (if exists)
|
|
if [ -d audio ] && [ "$(ls -A audio 2>/dev/null)" ]; then
|
|
echo -e "${BLUE}🎵 Copying sample audio files...${NC}"
|
|
cp -r audio/* "$OUTPUT_DIR/audio/" 2>/dev/null || true
|
|
fi
|
|
|
|
# Create placeholder files
|
|
echo -e "${BLUE}📝 Creating placeholder files...${NC}"
|
|
|
|
cat > "$OUTPUT_DIR/images/tasks/README.md" << EOF
|
|
# User Task Images
|
|
|
|
Upload your custom task images here. Supported formats: JPG, PNG, WebP
|
|
Maximum 50 images, recommended resolution: 1600x1200
|
|
|
|
These images are displayed during task scenarios and training sessions.
|
|
EOF
|
|
|
|
cat > "$OUTPUT_DIR/images/consequences/README.md" << EOF
|
|
# User Consequence Images
|
|
|
|
Upload your custom consequence images here. Supported formats: JPG, PNG, WebP
|
|
These images are used for punishment scenarios when tasks are skipped or failed.
|
|
|
|
Organize your content to enhance the training experience.
|
|
EOF
|
|
|
|
cat > "$OUTPUT_DIR/audio/README.md" << EOF
|
|
# Background Music
|
|
|
|
Place your background music files here. Supported formats: MP3, WAV, OGG
|
|
Files will be automatically detected and added to the playlist.
|
|
|
|
Music enhances the immersive training experience across all game modes.
|
|
EOF
|
|
|
|
cat > "$OUTPUT_DIR/videos/README.md" << EOF
|
|
# Video Directory
|
|
|
|
Link external video directories here or place video files directly.
|
|
Supported formats: MP4, WebM, AVI, MOV
|
|
|
|
For best performance, use MP4 format with H.264 codec.
|
|
Videos can be used as background content during training sessions.
|
|
EOF
|
|
|
|
# Create distribution info file
|
|
echo -e "${BLUE}📋 Creating distribution info...${NC}"
|
|
cat > "$OUTPUT_DIR/DISTRIBUTION_INFO.txt" << EOF
|
|
# Gooner Training Academy - Distribution Info
|
|
|
|
Version: 4.0 Beta
|
|
Build Date: ${BUILD_DATE}
|
|
Package Type: Beta Testing Build
|
|
|
|
INSTALLATION:
|
|
1. Run setup.sh (Mac/Linux) or setup.bat (Windows)
|
|
2. Follow setup prompts
|
|
3. Launch with 'npm start'
|
|
|
|
DOCUMENTATION:
|
|
- TESTER_GUIDE.md: Testing instructions
|
|
- INSTALLATION_GUIDE.md: Detailed setup help
|
|
- README.md: Complete documentation
|
|
|
|
REQUIREMENTS:
|
|
- Node.js 16+
|
|
- Modern browser (Chrome 90+, Firefox 88+)
|
|
- Webcam for full functionality
|
|
- 100MB+ free storage
|
|
|
|
TESTING FOCUS:
|
|
- Campaign Mode: All 30 levels progression
|
|
- Training Modules: Photo Session and Humiliation modules
|
|
- Core game modes functionality
|
|
- Webcam integration stability
|
|
- Performance during extended sessions
|
|
- Cross-platform compatibility
|
|
- Media library management
|
|
- XP and progression tracking
|
|
|
|
CAMPAIGN MODE:
|
|
- 30 structured levels across 6 arcs
|
|
- Progressive feature unlocks
|
|
- Level-specific interactive tasks
|
|
- Story-driven progression
|
|
- Preference checkpoints at key levels
|
|
|
|
TRAINING MODULES:
|
|
- 8 focused training sessions (2 currently available)
|
|
- Photo Session: Webcam photography challenges
|
|
- Humiliation: Interactive story-driven degradation
|
|
- 6 additional modules coming soon
|
|
|
|
SUPPORT:
|
|
Report issues with detailed reproduction steps and system information.
|
|
Include console logs when possible (F12 in browser).
|
|
EOF
|
|
|
|
# Set executable permissions
|
|
echo -e "${BLUE}🔐 Setting permissions...${NC}"
|
|
chmod +x "$OUTPUT_DIR/setup.sh"
|
|
|
|
# Clean up any development files that may have been copied
|
|
echo -e "${YELLOW}🧹 Final cleanup...${NC}"
|
|
rm -rf "$OUTPUT_DIR/.git" 2>/dev/null || true
|
|
rm -rf "$OUTPUT_DIR/node_modules" 2>/dev/null || true
|
|
rm -f "$OUTPUT_DIR/.DS_Store" 2>/dev/null || true
|
|
rm -f "$OUTPUT_DIR/package-lock.json" 2>/dev/null || true
|
|
rm -f "$OUTPUT_DIR/.gitignore" 2>/dev/null || true
|
|
|
|
# File count summary
|
|
echo ""
|
|
echo -e "${GREEN}📊 Distribution Summary:${NC}"
|
|
echo -e "${GREEN}=====================${NC}"
|
|
FILE_COUNT=$(find "$OUTPUT_DIR" -type f | wc -l)
|
|
echo -e "Total Files: ${FILE_COUNT}"
|
|
|
|
# Calculate directory size
|
|
DIR_SIZE=$(du -sh "$OUTPUT_DIR" | cut -f1)
|
|
echo -e "Directory Size: ${DIR_SIZE}"
|
|
|
|
echo ""
|
|
echo -e "${GREEN}✅ Distribution package created successfully!${NC}"
|
|
echo -e "${GREEN}📍 Location: ${OUTPUT_DIR}${NC}"
|
|
echo ""
|
|
echo -e "${CYAN}🎯 Next Steps:${NC}"
|
|
echo "1. Test the distribution package on a clean system"
|
|
echo "2. Verify all features work correctly"
|
|
echo "3. Create archive for distribution (tar.gz/zip)"
|
|
echo "4. Share with testers"
|
|
echo ""
|
|
|
|
read -p "📦 Create TAR.GZ archive for distribution? (y/n): " -n 1 -r
|
|
echo ""
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
echo ""
|
|
echo -e "${BLUE}🗜️ Creating TAR.GZ archive...${NC}"
|
|
|
|
cd ..
|
|
tar -czf "${DIST_NAME}.tar.gz" "${DIST_NAME}/"
|
|
cd - > /dev/null
|
|
|
|
if [ -f "../${DIST_NAME}.tar.gz" ]; then
|
|
echo -e "${GREEN}✅ TAR.GZ archive created: ${DIST_NAME}.tar.gz${NC}"
|
|
ARCHIVE_SIZE=$(du -sh "../${DIST_NAME}.tar.gz" | cut -f1)
|
|
echo -e "${GREEN}📏 Archive Size: ${ARCHIVE_SIZE}${NC}"
|
|
else
|
|
echo -e "${RED}❌ Failed to create TAR.GZ archive${NC}"
|
|
echo "Try creating manually with: tar -czf ${DIST_NAME}.tar.gz ${DIST_NAME}/"
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}🎉 Distribution packaging complete!${NC}"
|
|
echo "" |