ó
[³XMc           @   sï   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  d l Z d  d l Z d  d l m Z d  d l	 m
 Z
 m Z d Z d Z d e
 j f d „  ƒ  YZ i d d	 6d
 d
 6d d 6d d 6Z d „  Z d „  Z d d „ Z d S(   iÿÿÿÿN(   t   StringIO(   t   usaget   logs¤  #!/bin/sh
#
#  Startup script for a Twisted service.
#
#  chkconfig: - 85 15
#  description: Start-up script for the Twisted service "%(tap_file)s".

PATH=/usr/bin:/bin:/usr/sbin:/sbin

pidfile=/var/run/%(rpm_file)s.pid
rundir=/var/lib/twisted-taps/%(rpm_file)s/
file=/etc/twisted-taps/%(tap_file)s
logfile=/var/log/%(rpm_file)s.log

#  load init function library
. /etc/init.d/functions

[ -r /etc/default/%(rpm_file)s ] && . /etc/default/%(rpm_file)s

#  check for required files
if [ ! -x /usr/bin/twistd ]
then
	echo "$0: Aborting, no /usr/bin/twistd found"
	exit 0
fi
if [ ! -r "$file" ]
then
	echo "$0: Aborting, no file $file found."
	exit 0
fi

#  set up run directory if necessary
if [ ! -d "${rundir}" ]
then
	mkdir -p "${rundir}"
fi


case "$1" in
	start)
		echo -n "Starting %(rpm_file)s: twistd"
		daemon twistd  \
				--pidfile=$pidfile \
				--rundir=$rundir \
				--%(twistd_option)s=$file \
				--logfile=$logfile
		status %(rpm_file)s
		;;

	stop)
		echo -n "Stopping %(rpm_file)s: twistd"
		kill `cat "${pidfile}"`
		status %(rpm_file)s
		;;

	restart)
		"${0}" stop
		"${0}" start
		;;

    *)
		echo "Usage: ${0} {start|stop|restart|}" >&2
		exit 1
		;;
esac

exit 0
s   Summary:    %(description)s
Name:       %(rpm_file)s
Version:    %(version)s
Release:    1
License:    Unknown
Group:      Networking/Daemons
Source:     %(tarfile_basename)s
BuildRoot:  %%{_tmppath}/%%{name}-%%{version}-root
Requires:   /usr/bin/twistd
BuildArch:  noarch

%%description
%(long_description)s

%%prep
%%setup
%%build

%%install
[ ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != '/' ] 		&& rm -rf "$RPM_BUILD_ROOT"
mkdir -p "$RPM_BUILD_ROOT"/etc/twisted-taps
mkdir -p "$RPM_BUILD_ROOT"/etc/init.d
mkdir -p "$RPM_BUILD_ROOT"/var/lib/twisted-taps
cp "%(tap_file)s" "$RPM_BUILD_ROOT"/etc/twisted-taps/
cp "%(rpm_file)s.init" "$RPM_BUILD_ROOT"/etc/init.d/"%(rpm_file)s"

%%clean
[ ! -z "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != '/' ] 		&& rm -rf "$RPM_BUILD_ROOT"

%%post
/sbin/chkconfig --add %(rpm_file)s
/sbin/chkconfig --level 35 %(rpm_file)s
/etc/init.d/%(rpm_file)s start

%%preun
/etc/init.d/%(rpm_file)s stop
/sbin/chkconfig --del %(rpm_file)s

%%files
%%defattr(-,root,root)
%%attr(0755,root,root) /etc/init.d/%(rpm_file)s
%%attr(0660,root,root) /etc/twisted-taps/%(tap_file)s

%%changelog
* %(date)s %(maintainer)s
- Created by tap2rpm: %(rpm_file)s (%(version)s)
t	   MyOptionsc           B   s¦   e  Z d  d g d d g g Z d d d g d d d	 g d
 d d g d d d g d d d g d d d g d d d g d d d d g g Z i d d 6d d 6Z d „  Z RS(   t   unsignedt   ut   quiett   qt   tapfilet   ts
   twistd.tapt
   maintainert   mt   tap2rpmt   protocolt   pt   descriptiont   et   long_descriptiont   ls    Automatically created by tap2rpms   set-versiont   Vs   1.0t   rpmfilet   rt   typet   yt   taps8   type of configuration: 'tap', 'xml, 'source' or 'python's   (tap xml source python)s   _files -g "*.rpm"c         C   sÅ   |  d d k rC t j j |  d ƒ } t j j | ƒ d |  d <n  |  d d k rk d |  d f |  d <n  |  d d k r“ d |  d f |  d <n  t |  d |  d	 <d
 |  d |  d f |  d <d S(   sP   
        Calculate the default values for certain command-line options.
        R   R   i    R   s   A TCP server for %sR   s
   twisted-%sR   t   twistd_options   %s-%ss   set-versions   release-nameN(   t   Nonet   ost   patht   basenamet   splitextt	   type_dict(   t   selft   base_tapfile(    (    s;   /usr/lib/python2.7/dist-packages/twisted/scripts/tap2rpm.pyt   postOptions¢   s    N(   t   __name__t
   __module__t   optFlagsR   t   optParameterst   zsh_actionsR"   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/scripts/tap2rpm.pyR   Œ   s   

t   fileR   t   pythont   sourcet   xmlc          C   sµ   t  j ƒ  }  t j t j j |  d d ƒ ƒ t j t j j |  d ƒ ƒ t j t j j |  d ƒ ƒ t j t j j |  d ƒ ƒ t j t j j |  d ƒ ƒ t j d d d	 |  ƒ |  S(
   s}   
    Set up the temporary directory for building RPMs.

    Returns: buildDir, a randomly-named subdirectory of baseDir.
    t   RPMSt   noarcht   SPECSt   BUILDt   SOURCESt   SRPMSt   formats'   Created RPM build structure in %(path)rR   (   t   tempfilet   mkdtempR   t   makedirsR   t   joinR   t   msg(   t   tmpDir(    (    s;   /usr/lib/python2.7/dist-packages/twisted/scripts/tap2rpm.pyt   makeBuildDirÀ   s    c         C   sb  d | d f } t  j j |  d | ƒ } t j | d ƒ } t j | d ƒ } t j | _ d | _ | j	 | ƒ t  j j
 | d ƒ } t j t  j j | d d | d ƒ ƒ } t j | _ d | _ t i | d	 6| d d
 6| d d 6} t | ƒ | _ | j	 | t | ƒ ƒ t | d d ƒ }	 | j d t  j j | d | ƒ d |	 ƒ }
 d |
 _ | j	 |
 |	 ƒ | j ƒ  t j d d d | ƒ d | d f } t  j j |  d | ƒ } t | d ƒ } t i | d d 6| d d
 6| d d 6| d 6| d	 6t j d t j t j ƒ  ƒ ƒ d 6| d d 6| d d 6} | j | ƒ | j ƒ  t j d d d | ƒ | S(   sG   
    Create files required to build an RPM in the build directory.
    s   %s.tars   release-nameR0   t   wií  R   s   %s.initR   t   tap_filet   rpm_fileR   t   rbt   arcnamet   fileobji¤  R2   s,   Created dummy source tarball %(tarballPath)rt   tarballPaths   %s.specR.   R   s   set-versiont   versiont   tarfile_basenames   %a %b %d %Yt   dateR
   R   s"   Created RPM spec file %(specPath)rt   specPath(   R   R   R6   t   tarfilet   opent   TarInfot   DIRTYPER   t   modet   addfileR   t   REGTYPEt   initFileDatat   lent   sizeR    t
   gettarinfot   closeR   R7   t   specFileDatat   timet   strftimet	   localtimet   write(   t   buildDirt   configt   tarballNameR@   t   tarballHandlet   sourceDirInfot   tapFileBaset   initFileInfot   initFileRealDatat   tapFileHandlet   tapFileInfot   specNameRD   t
   specHandlet   specFileRealData(    (    s;   /usr/lib/python2.7/dist-packages/twisted/scripts/tap2rpm.pyt   setupBuildFilesÔ   s\    						
"
c   
      C   s¬  y t  ƒ  } | j |  ƒ Wn4 t j k
 rP } t j d t j d | f ƒ n Xt ƒ  } t | | ƒ } t	 j
 d d d d | f d | g d t	 j d	 t	 j ƒ} | j ƒ  \ } } | j d k rÌ | GHn  t j t j j | d
 d d ƒ ƒ d } t j t j j | d d ƒ ƒ d }	 | d s;d t j j | ƒ GHn  t j | d ƒ | d smd t j j |	 ƒ GHn  t j |	 d ƒ t j | ƒ t j j | ƒ t j j |	 ƒ g S(   Ns   %s: %si    t   rpmbuilds   -vvs   --defines
   _topdir %ss   -bat   stdoutt   stderrR,   R-   t   *R1   R   s   Writing "%s"...t   .(   R   t   parseOptionsR   t   errort   syst   exitt   argvR9   Rc   t
   subprocesst   Popent   PIPEt   STDOUTt   communicatet
   returncodet   globR   R   R6   R   t   shutilt   copyt   rmtree(
   t   optionsRW   t   ueR8   RD   t   jobRe   t   _t   rpmPatht   srpmPath(    (    s;   /usr/lib/python2.7/dist-packages/twisted/scripts/tap2rpm.pyt   run  s4    	"	(%

(   Rk   R   Ru   RR   Rt   Rn   R3   RE   R    t   twisted.pythonR   R   RL   RQ   t   OptionsR   R   R9   Rc   R   R~   (    (    (    s;   /usr/lib/python2.7/dist-packages/twisted/scripts/tap2rpm.pyt   <module>   s    <I5*
		E