publish.bat 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. @echo off
  2. REM TappoCloud Store 应用发布脚本 (Windows)
  3. REM 用法: publish.bat <zip文件路径> [API地址]
  4. setlocal enabledelayedexpansion
  5. set ZIP_FILE=%1
  6. set API_BASE=%2
  7. if "%ZIP_FILE%"=="" (
  8. echo 用法: %0 ^<zip文件路径^> [API地址]
  9. echo 示例: %0 .\my-app-v1.0.0.zip
  10. echo %0 .\my-app-v1.0.0.zip https://app.tappo.dev
  11. exit /b 1
  12. )
  13. if "%API_BASE%"=="" set API_BASE=https://app.tappo.dev
  14. if not exist "%ZIP_FILE%" (
  15. echo 错误: 文件不存在: %ZIP_FILE%
  16. exit /b 1
  17. )
  18. REM 检查是否已有 token
  19. set TOKEN_FILE=%USERPROFILE%\.tappocloud_token
  20. set TOKEN=
  21. if exist "%TOKEN_FILE%" (
  22. set /p TOKEN=<"%TOKEN_FILE%"
  23. )
  24. REM 如果没有 token,进行登录
  25. if "%TOKEN%"=="" (
  26. set /p USERNAME=用户名:
  27. set /p PASSWORD=密码:
  28. for /f "tokens=*" %%i in ('curl -sf -X POST "%API_BASE%/api/v1/admin/login" -H "Content-Type: application/json" -d "{\"username\":\"!USERNAME!\",\"password\":\"!PASSWORD!\"}"') do set RESPONSE=%%i
  29. if "!RESPONSE!"=="" (
  30. echo 错误: 登录失败
  31. exit /b 1
  32. )
  33. REM 提取 token (简化处理)
  34. for /f "tokens=2 delims=:," %%a in ('echo !RESPONSE! ^| findstr /r "token"') do (
  35. set TOKEN=%%~a
  36. set TOKEN=!TOKEN:"=!
  37. )
  38. echo !TOKEN!> "%TOKEN_FILE%"
  39. echo 登录成功
  40. )
  41. REM 上传文件
  42. echo 正在上传: %ZIP_FILE%
  43. curl -sf -X POST "%API_BASE%/api/v1/admin/apps/upload" -H "Authorization: Bearer %TOKEN%" -F "file=@%ZIP_FILE%"
  44. if %ERRORLEVEL% neq 0 (
  45. echo 错误: 上传失败
  46. del "%TOKEN_FILE%" 2>nul
  47. exit /b 1
  48. )
  49. echo.
  50. echo 上传成功!