File: //opt/alt/python27/lib/python2.7/site-packages/clselector/cl_selector_arg_parse.pyc
�
i�B^c           @` s�   d  d l  m Z d  d l  m Z d  d l  m Z d  d l Z d  d l Z d  d l m Z d  d l m Z d  d l m	 Z	 m
 Z
 m Z m Z m
 Z
 d d	 l m Z d
 Z d Z d Z d
 Z d �  Z d �  Z e e d � Z d S(   i    (   t   absolute_import(   t   print_function(   t   divisionN(   t   docopt(   t
   DocoptExit(   t   Schemat   Andt   Uset   Ort   SchemaErrori   (   t   CloudlinuxSelectorLibt   nodejst   pythont   rubyt   phpc         C` s	  | rA t  | d | d | d | d g � rA t d d � � n  |  t k rr t  | d g � rr t d d � � n  |  t k r� t  | d g � r� t d d	 � � n  |  t t f k r.t  | d | d | d
 | d | d | d | d | d
 | d | d | d | d | d g
 � r.t d d � � n  |  t k rZ| d rZt d d t � � n  | r�t  | d | d | d g � r�t d d � � n  |  t k r�t  | d g � r�t d d � � n  |  t t f k r| d r| rt �  rt d d � � n  d S(   s�   
    Do some additional checks to restrict commands not available for current
    user or interpreter or whatever and do this only after args parsing
    s   install-versions   uninstall-versions   enable-versions   disable-versions2   This command should be run from administrator onlys   change-version-multiples)   This command is supported only for NodeJSs   uninstall-moduless)   This command is supported only for Pythont   creates   read-configs   save-configt   startt   restartt   stopt   destroys   install-moduless
   run-scripts4   This command is supported only for NodeJS and Pythons   make-defaults-configs%   This command is supported only for %ss   --selector-statuss   --default-versions   --supported-versionss!   Specified option(s) only for roots
   --entry-points   This options(s) only for Pythont   gets   Selector is disabledN(   t   anyR	   t   Nonet   NODEJSt   PYTHONt   PHPt   _run_from_admin(   t   interpretert   argst   as_from_roott   selector_status(    (    sQ   /opt/alt/python27/lib/python2.7/site-packages/clselector/cl_selector_arg_parse.pyt   _ensure_command_allowed   sP    
.c           C` sN   y5 t  j t  j j d t t  j �  � � � j d k SWn t k
 rI t SXd S(   s�   
    Check who is owner of the parent process.
    if owner is root - return True
    if parent process can't be found - return True
    :return:
    s   /proc/i    N(	   t   ost   statt   patht   joint   strt   getppidt   st_uidt   OSErrort   True(    (    (    sQ   /opt/alt/python27/lib/python2.7/site-packages/clselector/cl_selector_arg_parse.pyR   W   s    5
c         ` s  d } d j  | � } y t | |  � �  Wn5 t k
 r_ d } | sU | d | 7} n  t | f SX�  j d � � � f d �  } t dN t t d �  � t t t	 | � � d d	 �} d
 �  } d }	 t
 i9 t d 6t d
 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t d 6t dN t � d  6t d! 6t d"