ó
ž°gcc           @  s£  d  d l  m Z d  d l m Z 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	 Z	 d  d l
 Z
 d  d l Z d  d l Z d e
 j d <e
 j d c d	 7<d
 Z d4 Z d5 Z d6 Z i d! d" d# g d 6d! d" d# g d 6Z d$ Z e e ƒ Z e j d% ƒ d& „  ƒ Z e j d' d( d) g ƒd* „  ƒ Z d+ „  Z d, d- „ Z d. „  Z d, d/ „ Z d0 „  Z d1 „  Z d2 „  Z e d3 k rŸe j  ƒ  n  d S(7   iÿÿÿÿ(   t   print_function(   t   Flask(   t   request(   t   json(   t   make_responseNsK   /var/www/opengeolabs/gismentors/build-env/local/lib/python2.7/site-packagest
   PYTHONPATHsF   :/var/www/opengeolabs/gismentors/build-env/lib/python2.7/site-packagess(   /var/www/opengeolabs/gismentors/skoleni/s   basic-data-processing-workshops   geonetwork-zacatecniks   geopython-englishs   geopython-pokrocilys   geopython-zacatecniks   geoserver-zacatecniks   grass-gis-pokrocilys   grass-gis-zacatecniks   grass-gis-workshop-jenas"   grass-gis-irsae-winter-course-2018s   isprs-summer-school-2016s   mapserver-zacatecniks   open-source-giss   otevrena-geodatas   postgis-pokrocilys   postgis-zacatecniks   qgis-pokrocilys   qgis-zacatecniks   qgis-pluginst   vugtks   prostorove-databazes   skoleni-gdalt   release_3_4t   release_2_18t   release_2_14s   sphinx-templatet   /c           C  s   d S(   Ns   Hello World!
(    (    (    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyt   hello_worldF   s    s   /buildt   methodst   POSTc          C  s”   t  j t j ƒ  ƒ }  |  d d } t |  ƒ } | d k rH t | ƒ n, | t k rt | t | k rt t | | ƒ n  t d d ƒ } d | j d <| S(   Nt
   repositoryt   namet   masters   {"status":"success"}iÈ   s   application/jsons   Content-type(	   R   t   loadsR   t   get_datat   _get_brancht   _build_brancht   BRANCHESR   t   headers(   t   dataR   t   brancht   resp(    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyt   buildK   s    c         C  sÞ   t  j j d ƒ } t  j t  j j t |  d d ƒ ƒ x– t |  D]Š } t  j j t d j |  | ƒ d d ƒ } | j d d ƒ d j	 d d ƒ } t  j j
 | ƒ s? t d j | | ƒ ƒ t  j | | ƒ q? q? Wt  j | ƒ d  S(	   Ns   ./t   _buildt   htmls   {}_{}t   _i   t   .s   Restoring symlink '{}' -> '{}'(   t   ost   patht   abspatht   chdirt   joint   SKOLENI_DIRR   t   formatt   splitt   replacet   existst   printt   symlink(   t   repo_dirt   curdirR   t   sourcet   target(    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyt   _restore_symlinks[   s    "'"R   c         C  s€   d „  } |  t  k r% | |  | ƒ n4 |  t k rY t ƒ  x t  D] } | | | ƒ q? Wn  t d j d d d ƒ d t j ƒd  S(   Nc         S  sR  t  d j d |  d d d d | ƒ d t j ƒt j j d ƒ } |  } | d	 k ri | d
 j | ƒ 7} n  t j t j j t	 | ƒ ƒ t
 ƒ  |  t k rž d n d	 } t | ƒ t ƒ  |  t k rÎ t |  ƒ n  |  t k rä t ƒ  n  t j j t	 d |  ƒ } t  d j | ƒ ƒ t j j | ƒ r1t j | ƒ n  t j d | ƒ t j | ƒ d  S(   Ns'   {sep}
Building {repo} ({branch})
{sep}
t   repot   sept   *iP   R   t   files   ./R   s   _{}t   ens   ..s   PUBLISH DIR: {}s   _build/html(   R)   R%   t   syst   stderrR   R    R!   R"   R#   R$   t   _update_gitt   WORKSHOPSENt   _update_git_templatet   _update_htmlR   R/   t   WORKSHOPSPDFt   _update_pdfR(   t   shutilt   rmtreet   copytree(   R   R   R,   R+   t   template_brancht   publish_dir(    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyt
   build_repoh   s*    %


s   {sep}
Builder finished
{sep}
R1   R2   iP   R3   (   t	   WORKSHOPSt   SPHINXR9   R)   R%   R5   R6   (   R   R   RB   t   workshop(    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyR   f   s    	c           C  s6   t  j d d g ƒ t d j t j j d ƒ ƒ ƒ d  S(   Nt   gitt   pulls   {}: UPDATEDs   ./(   t
   subprocesst   callR)   R%   R   R    R!   (    (    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyR7   “   s    c         C  sx   t  j j d ƒ } t  j t  j j t t ƒ ƒ t d j |  ƒ d t	 j
 ƒt j d d |  g ƒ t ƒ  t  j | ƒ d  S(   Ns   ./s   SPHINX TEMPLATE BRANCH: {}R3   RF   t   checkout(   R   R    R!   R"   R#   R$   RD   R)   R%   R5   R6   RH   RI   R7   (   R   R,   (    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyR9   —   s    
c           C  s*   t  j d d g ƒ t  j d d g ƒ d  S(   Nt   maket   cleanR   (   RH   RI   (    (    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyR:   ¡   s    c          C  s§   t  j d d g ƒ y% t t j d ƒ d t j j ƒ}  Wn t k
 rL d  SXd j	 d d j
 t j j |  ƒ j d d ƒ d  ƒ d	 d
 ƒ } t j |  d j	 | ƒ ƒ d  S(   NRK   t   latexpdfs   _build/latex/*.pdft   keys   {base}.{ext}t   baset   -iÿÿÿÿt   extt   pdfs   _build/html/{}(   RH   RI   t   maxt   globt   iglobR   R    t   getctimet
   ValueErrorR%   R#   t   basenameR&   R=   t   copy(   t	   file_namet	   dest_file(    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyR<   ¦   s    %	+	c         C  s   |  d } | j  d ƒ d S(   Nt   refR
   iÿÿÿÿ(   R&   (   R   R\   (    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyR   ²   s    
t   __main__(   s   basic-data-processing-workshops   geonetwork-zacatecniks   geopython-englishs   geopython-pokrocilys   geopython-zacatecniks   geoserver-zacatecniks   grass-gis-pokrocilys   grass-gis-zacatecniks   grass-gis-workshop-jenas"   grass-gis-irsae-winter-course-2018s   isprs-summer-school-2016s   mapserver-zacatecniks   open-source-giss   otevrena-geodatas   postgis-pokrocilys   postgis-zacatecniks   qgis-pokrocilys   qgis-zacatecniks   qgis-pluginsR   s   prostorove-databazes   skoleni-gdal(   s   geopython-englishs   isprs-summer-school-2016s   grass-gis-workshop-jenas"   grass-gis-irsae-winter-course-2018s   qgis-plugins(   s   postgis-zacatecniks   grass-gis-zacatecniks   otevrena-geodatas   qgis-zacatecniks   qgis-pokrocily(!   t
   __future__R    t   flaskR   R   R   R   RH   RT   t   reR   R=   R5   t   environR$   RC   R8   R;   R   RD   t   __name__t   appt   routeR   R   R/   R   R7   R9   R:   R<   R   t   run(    (    (    s0   /var/www/opengeolabs/gismentors/builder/build.pyt   <module>   sz                                !	-	
			