
    OJni                     X    d dl Z d dlZd dlZd dlmZ ddlmZ ddlmZ d Z	d Z
d Zd	 Zy)
    N)Path   )show_welcome_help)install_nodec                  ^   t               rt                t        j                  d       t	        j
                  dd      } | j                  dddt        j                  d	       | j                  d
ddd      }|j                  ddt        j                  dd      }|j                  ddd       |j                  dt        dd       |j                  dddd       |j                  t               | j                         }t        |d      r|j!                  |       yt                y)zEMain command entry (supports subcommands like streamget install-node)r   	streamgetF)progadd_help-h--helphelpzShow help message)actiondefaultr   zAvailable CommandscommandTzNode.js runtime installation)titledestrequiredr   zinstall-nodez/Install specific Node.js version to custom patha	  Example usage:
  streamget install-node                     # Install default version
  streamget install-node --version 20.0.0    # Specify version
  streamget install-node --path ./node_dir   # Custom install path

  Version reference: https://nodejs.org/dist/
  )descriptionformatter_classepilogr
   z	--versionz22.14.0z&Node.js version (default: %(default)s))r   r   z--pathNz5Custom installation path (default: ~/.streamget_node))typer   r   zShow this help message)r   r   )funcr   )is_main_help_requestr   sysexitargparseArgumentParseradd_argumentSUPPRESSadd_subparsers
add_parserRawTextHelpFormatterr   set_defaultshandle_install_node
parse_argshasattrr   )parser
subparsersnode_parserargss       >/home/uftp/myenv/lib/python3.12/site-packages/streamget/cli.pymainr,   
   sG   $$F h!! 	   &&"+	 ' J ''E 55  ( K 5  
 D	   h%  
 "56DtV		$    c                      t        t        j                        dk(  rt        j                  d   dv ryt        t        j                        dk(  ryy)z:Check if it's a global help request (not subcommand level)   r   )r   r   TF)lenr   argv r-   r+   r   r   K   s=     388}chhqk-==
388}r-   c                    	 | j                   rG| j                   j                  j                         s#t        d| j                   j                   d      | j                   rF| j                   j                  j	                         s"t        | j                   j                   d      t        d | j                  D              st        d      t        | j                  | j                   r| j                   j                         nd       t        d       y# t        $ rB}t        d	t        |       d
       t        d       t        j                  d       Y d}~yd}~ww xY w)zHandle install-node subcommandzPath z does not existz is not a valid directoryc              3   J   K   | ]  }|j                         xs |d k(    yw).N)isdigit).0cs     r+   	<genexpr>z&handle_install_node.<locals>.<genexpr>a   s"     Aq199;*!s(*As   !#z-Invalid version format, should be like 20.0.0N)versioninstall_pathu%   ✅  Node.js installed successfully!
u   ❌ Installation failed: 
u!   💡 Try adding --help for usage
r   )pathparentexists
ValueErroris_dirallr:   r   
expanduserprint	Exceptionstrr   r   )r*   es     r+   r$   r$   V   s   99TYY--446uTYY%5%5$6oFGG99TYY--446		 0 011JKLL ADLLAALMM 	LL3799--/$	

 	67 )#a&4523s   DD 	E" 8EE"c                     t        j                         j                         }|xs t        j                         dz  }|d|  d| dz  |dk7  rdz  S dz  S )zGenerate Node.js binary pathz.streamget_nodeznode-v-z-x64windowsbin )platformsystemlowerr   home)r:   custom_pathrN   base_dirs       r+   get_bin_pathrS   r   s\    __$$&F=diik,==Hwiq55&IBU^^[]^^r-   )r   rM   r   pathlibr   r   r   scripts.node_installerr   r,   r   r$   rS   r2   r-   r+   <module>rV      s-      
  # 0>B8_r-   