
    MBj                        d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	  e	e
      j                         j                  d   ZddZddddZdd	Zdd
Zedk(  r e e             y)a  
Build helper for My Daneshyar.

This script is designed for the final Laravel + Inertia + React + TypeScript
stack. It installs backend/frontend dependencies, builds Vite assets, and can
optionally run Laravel optimization commands for Apache production hosting.
    )annotationsN)Path   c                    t         j                  dk(  r%dD ]   }t        j                  | |z         }|s|c S  t        j                  |       }|r|S | S )z+Return a platform-friendly executable name.nt)z.cmdz.batz.exe)osnameshutilwhich)r	   suffix	candidates      scripts/build.pycommand_namer      sU    	ww$. 	!FTF]3I  	! T"IK    envc               x    t        ddj                  |               t        j                  | t        |d       y )Nu   
→  T)cwdr   check)printjoin
subprocessrunROOT)commandr   s     r   r   r   $   s-    	F388G$%
&'NN7#T:r   c                    t         | z  j                         s9t        d|        t        dt         | z          t        j                  d       y y )NzERROR: z	Missing: r   )r   existsr   sysexit)pathmessages     r   require_filer#   )   sD    4K!y!"	$+'( "r   c                    t        j                  d      } | j                  ddd       | j                  ddd       | j                  d	dd
       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                         }t	        dd       t	        dd       t	        dd       t        d      }t        d      }t        d      }t        j                  j                         }|j                  rd|d<   |j                  s$|dg}|j                  r|dd gz  }t        ||!       |j                  sH|j                  s,t        d"z  j                         r|d#gn|dg}t        ||!       t        |d$d%g|!       |j                   rt        |dd&g|!       |j"                  rt        |dd'd(g|!       |j$                  r0t        |dd)g|!       t        |dd*g|!       t        |dd+g|!       t        d,z  d%z  d-z  }|j                         st'        d.       t'        d/       nt'        d0|        t'        d1       y2)3Nz5Build Daneshyar for development or Apache production.)descriptionz--production
store_truez&Use production install/build behavior.)actionhelpz
--optimizez-Run Laravel config/route/view cache commands.z	--migratez,Run php artisan migrate --force after build.z--storage-linkzRun php artisan storage:link.z--skip-composerzSkip Composer install.z
--skip-npmzSkip npm install/build.z--skip-npm-installz0Skip npm ci/npm install but still run npm build.artisanzCLaravel has not been installed yet. Install/scaffold Laravel first.zcomposer.jsonz;composer.json is required for Laravel backend dependencies.zpackage.jsonzIpackage.json is required for React/TypeScript/Vite frontend dependencies.phpcomposernpm
productionNODE_ENVinstallz--no-devz--optimize-autoloaderr   zpackage-lock.jsoncir   buildzstorage:linkmigratez--forcezconfig:cachezroute:cachez
view:cachepubliczmanifest.jsonz3
WARNING: public/build/manifest.json was not found.zHIf npm build was skipped, this is expected. Otherwise check Vite output.z
OK: Vite manifest exists: z
Build script finished.r   )argparseArgumentParseradd_argument
parse_argsr#   r   r   environcopyr-   skip_composerr   skip_npmskip_npm_installr   r   storage_linkr2   optimizer   )	parserargsr*   r+   r,   r   composer_commandnpm_installbuild_manifests	            r   mainrD   0   s^   $$1hiF
|Bjk
\@op
L?mn
(Dcd
),E]^
\@YZ
,\Hz{Dab"_`!lm
u
CJ'H
u
C
**//
C&J$i0??-D EE#&==$$*.1D*D)L)L)N3+UXZcTdK%S%!s+S)^,#6||S)Y	2<}}S)^,#6S)]+5S)\*4H_w.@N  "DEXY,^,<=>	
$%r   __main__)r	   strreturnrF   )r   z	list[str]r   zdict[str, str] | NonerG   None)r!   rF   r"   rF   rG   rH   )rG   int)__doc__
__future__r   r4   r   r
   r   r   pathlibr   __file__resolveparentsr   r   r   r#   rD   __name__
SystemExit r   r   <module>rS      sw    #  	   
  H~''*
 =A ;
6r z
TV
 r   