NEW-PAGE.BAT 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. rem ensure we run from script directory
  4. cd /d "%~dp0"
  5. set /p PAGE_NAME="Enter Page Name: "
  6. for /f "tokens=* delims= " %%i in ("%PAGE_NAME%") do set "PAGE_NAME=%%i"
  7. if "%PAGE_NAME%"=="" exit /b
  8. echo ========================================
  9. echo Create New Page
  10. echo ========================================
  11. echo 1. Create Page With Folder
  12. echo 2. Create Page
  13. echo ========================================
  14. set /p MODE="Select mode (1 or 2) [Default: 1]: "
  15. for /f "tokens=* delims= " %%i in ("%MODE%") do set "MODE=%%i"
  16. if "%MODE%"=="" set "MODE=1"
  17. if not "%MODE%"=="1" if not "%MODE%"=="2" (
  18. echo Invalid selection!
  19. pause
  20. exit /b
  21. )
  22. if "%MODE%"=="1" (
  23. set "PAGES_DIR=src\pages"
  24. set "PAGE_FOLDER=src\pages\%PAGE_NAME%"
  25. set "JSX_FILE=src\pages\%PAGE_NAME%\%PAGE_NAME%.jsx"
  26. set "JS_FILE=src\pages\%PAGE_NAME%\%PAGE_NAME%.js"
  27. set "CSS_FILE=src\pages\%PAGE_NAME%\%PAGE_NAME%.css"
  28. ) else (
  29. set "PAGES_DIR=src\pages"
  30. set "PAGE_FOLDER="
  31. set "JSX_FILE=src\pages\%PAGE_NAME%.jsx"
  32. set "JS_FILE=src\pages\%PAGE_NAME%.js"
  33. set "CSS_FILE=src\pages\%PAGE_NAME%.css"
  34. )
  35. if "%MODE%"=="1" (
  36. if exist "%PAGE_FOLDER%" (
  37. echo Page %PAGE_NAME% already exists!
  38. pause
  39. exit /b
  40. )
  41. ) else (
  42. if exist "%JSX_FILE%" (
  43. echo Page %PAGE_NAME% already exists!
  44. pause
  45. exit /b
  46. )
  47. )
  48. if not exist "%PAGES_DIR%" mkdir "%PAGES_DIR%"
  49. if "%MODE%"=="1" if not exist "%PAGE_FOLDER%" mkdir "%PAGE_FOLDER%"
  50. (
  51. echo import './%PAGE_NAME%.css';
  52. echo import { %PAGE_NAME%Logic } from './%PAGE_NAME%.js';
  53. echo.
  54. echo function %PAGE_NAME%^(^) {
  55. echo const logic = %PAGE_NAME%Logic^(^);
  56. echo.
  57. echo return ^(
  58. echo ^<div className="%PAGE_NAME%-container"^>
  59. echo ^<h1^>%PAGE_NAME%^</h1^>
  60. echo ^</div^>
  61. echo ^);
  62. echo }
  63. echo.
  64. echo export default %PAGE_NAME%;
  65. ) > "%JSX_FILE%"
  66. (
  67. echo export function %PAGE_NAME%Logic^(^) {
  68. echo // business logic placeholder
  69. echo.
  70. echo return {
  71. echo // expose data or methods here
  72. echo };
  73. echo }
  74. ) > "%JS_FILE%"
  75. (
  76. echo .%PAGE_NAME%-container {
  77. echo padding: 20px;
  78. echo }
  79. ) > "%CSS_FILE%"
  80. echo Created: %JSX_FILE%
  81. echo Created: %JS_FILE%
  82. echo Created: %CSS_FILE%
  83. set "APP_FILE=src\App.jsx"
  84. if exist "%APP_FILE%" (
  85. call :AddToApp "%MODE%" "%PAGE_NAME%" "%APP_FILE%"
  86. echo Added %PAGE_NAME% to App.jsx
  87. ) else (
  88. echo Warning: App.jsx not found, skipping...
  89. )
  90. echo.
  91. echo ========================================
  92. echo Page %PAGE_NAME% created successfully!
  93. echo ========================================
  94. echo.
  95. echo Summary:
  96. if "%MODE%"=="1" (
  97. echo 1. Created folder: %PAGE_FOLDER%
  98. echo 2. Created files:
  99. echo - %JSX_FILE%
  100. echo - %JS_FILE%
  101. echo - %CSS_FILE%
  102. echo 3. Modified file: src\App.jsx
  103. echo - Added import: import %PAGE_NAME% from './pages/%PAGE_NAME%/%PAGE_NAME%';
  104. echo - Added component: ^<%PAGE_NAME% /^>
  105. ) else (
  106. echo 1. Created files in src\pages directory:
  107. echo - %JSX_FILE%
  108. echo - %JS_FILE%
  109. echo - %CSS_FILE%
  110. echo 2. Modified file: src\App.jsx
  111. echo - Added import: import %PAGE_NAME% from './pages/%PAGE_NAME%';
  112. echo - Added component: ^<%PAGE_NAME% /^>
  113. )
  114. pause
  115. exit /b
  116. :AddToApp
  117. setlocal EnableDelayedExpansion
  118. set "MODE_VAL=%~1"
  119. set "PAGE_VAL=%~2"
  120. set "APP_PATH=%~3"
  121. if not exist "%APP_PATH%" (
  122. echo ERROR: File not found: %APP_PATH%
  123. exit /b 1
  124. )
  125. if "%MODE_VAL%"=="1" (
  126. set "IMPORT_LINE=import %PAGE_VAL% from './pages/%PAGE_VAL%/%PAGE_VAL%';"
  127. ) else (
  128. set "IMPORT_LINE=import %PAGE_VAL% from './pages/%PAGE_VAL%';"
  129. )
  130. set "NEED_IMPORT=1"
  131. set "NEED_COMPONENT=1"
  132. set "TEMP_FILE=%TEMP%\app_temp_%RANDOM%.jsx"
  133. if exist "%TEMP_FILE%" del "%TEMP_FILE%"
  134. for /f "usebackq delims=" %%a in ("%APP_PATH%") do (
  135. set "line=%%a"
  136. set "isImport=0"
  137. set "isDiv=0"
  138. if /i "!line:~0,7!"=="import " set "isImport=1"
  139. if not "!line:</div>=!"=="!line!" set "isDiv=1"
  140. >>"%TEMP_FILE%" echo(!line!
  141. if !isImport! equ 1 if !NEED_IMPORT! equ 1 (
  142. >>"%TEMP_FILE%" echo !IMPORT_LINE!
  143. set "NEED_IMPORT=0"
  144. )
  145. if !isDiv! equ 1 if !NEED_COMPONENT! equ 1 (
  146. >>"%TEMP_FILE%" echo ^<%PAGE_VAL% /^>
  147. set "NEED_COMPONENT=0"
  148. )
  149. )
  150. if !NEED_IMPORT! equ 1 >>"%TEMP_FILE%" echo !IMPORT_LINE!
  151. if !NEED_COMPONENT! equ 1 >>"%TEMP_FILE%" echo ^<%PAGE_VAL% /^>
  152. move /y "%TEMP_FILE%" "%APP_PATH%" >nul
  153. endlocal
  154. exit /b