diff options
Diffstat (limited to 'lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/scripts/tap2rpm.py')
-rwxr-xr-x | lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/scripts/tap2rpm.py | 331 |
1 files changed, 0 insertions, 331 deletions
diff --git a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/scripts/tap2rpm.py b/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/scripts/tap2rpm.py deleted file mode 100755 index 30149b7d..00000000 --- a/lib/python2.7/site-packages/Twisted-12.2.0-py2.7-linux-x86_64.egg/twisted/scripts/tap2rpm.py +++ /dev/null @@ -1,331 +0,0 @@ -# -*- test-case-name: twisted.scripts.test.test_tap2rpm -*- -# Copyright (c) Twisted Matrix Laboratories. -# See LICENSE for details. - -import sys, os, shutil, time, glob -import subprocess -import tempfile -import tarfile -from StringIO import StringIO -import warnings - -from twisted.python import usage, log, versions, deprecate - - -################################# -# data that goes in /etc/inittab -initFileData = '''\ -#!/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 -''' - -####################################### -# the data for creating the spec file -specFileData = '''\ -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) -''' - -############################### -class MyOptions(usage.Options): - optFlags = [['quiet', 'q']] - optParameters = [ - ["tapfile", "t", "twistd.tap"], - ["maintainer", "m", "tap2rpm"], - ["protocol", "p", None], - ["description", "e", None], - ["long_description", "l", - "Automatically created by tap2rpm"], - ["set-version", "V", "1.0"], - ["rpmfile", "r", None], - ["type", "y", "tap", "type of configuration: 'tap', 'xml, " - "'source' or 'python'"], - ] - - compData = usage.Completions( - optActions={"type": usage.CompleteList(["tap", "xml", "source", - "python"]), - "rpmfile": usage.CompleteFiles("*.rpm")} - ) - - def postOptions(self): - """ - Calculate the default values for certain command-line options. - """ - # Options whose defaults depend on other parameters. - if self['protocol'] is None: - base_tapfile = os.path.basename(self['tapfile']) - self['protocol'] = os.path.splitext(base_tapfile)[0] - if self['description'] is None: - self['description'] = "A TCP server for %s" % (self['protocol'],) - if self['rpmfile'] is None: - self['rpmfile'] = 'twisted-%s' % (self['protocol'],) - - # Values that aren't options, but are calculated from options and are - # handy to have around. - self['twistd_option'] = type_dict[self['type']] - self['release-name'] = '%s-%s' % (self['rpmfile'], self['set-version']) - - - def opt_unsigned(self): - """ - Generate an unsigned rather than a signed RPM. (DEPRECATED; unsigned - is the default) - """ - msg = deprecate.getDeprecationWarningString( - self.opt_unsigned, versions.Version("Twisted", 12, 1, 0)) - warnings.warn(msg, category=DeprecationWarning, stacklevel=2) - - # Maintain the -u short flag - opt_u = opt_unsigned - - -type_dict = { - 'tap': 'file', - 'python': 'python', - 'source': 'source', - 'xml': 'xml', -} - - - -########################## -def makeBuildDir(): - """ - Set up the temporary directory for building RPMs. - - Returns: buildDir, a randomly-named subdirectory of baseDir. - """ - tmpDir = tempfile.mkdtemp() - # set up initial directory contents - os.makedirs(os.path.join(tmpDir, 'RPMS', 'noarch')) - os.makedirs(os.path.join(tmpDir, 'SPECS')) - os.makedirs(os.path.join(tmpDir, 'BUILD')) - os.makedirs(os.path.join(tmpDir, 'SOURCES')) - os.makedirs(os.path.join(tmpDir, 'SRPMS')) - - log.msg(format="Created RPM build structure in %(path)r", - path=tmpDir) - return tmpDir - - - -def setupBuildFiles(buildDir, config): - """ - Create files required to build an RPM in the build directory. - """ - # Create the source tarball in the SOURCES directory. - tarballName = "%s.tar" % (config['release-name'],) - tarballPath = os.path.join(buildDir, "SOURCES", tarballName) - tarballHandle = tarfile.open(tarballPath, "w") - - sourceDirInfo = tarfile.TarInfo(config['release-name']) - sourceDirInfo.type = tarfile.DIRTYPE - sourceDirInfo.mode = 0755 - tarballHandle.addfile(sourceDirInfo) - - tapFileBase = os.path.basename(config['tapfile']) - - initFileInfo = tarfile.TarInfo( - os.path.join( - config['release-name'], - '%s.init' % config['rpmfile'], - ) - ) - initFileInfo.type = tarfile.REGTYPE - initFileInfo.mode = 0755 - initFileRealData = initFileData % { - 'tap_file': tapFileBase, - 'rpm_file': config['release-name'], - 'twistd_option': config['twistd_option'], - } - initFileInfo.size = len(initFileRealData) - tarballHandle.addfile(initFileInfo, StringIO(initFileRealData)) - - tapFileHandle = open(config['tapfile'], 'rb') - tapFileInfo = tarballHandle.gettarinfo( - arcname=os.path.join(config['release-name'], tapFileBase), - fileobj=tapFileHandle, - ) - tapFileInfo.mode = 0644 - tarballHandle.addfile(tapFileInfo, tapFileHandle) - - tarballHandle.close() - - log.msg(format="Created dummy source tarball %(tarballPath)r", - tarballPath=tarballPath) - - # Create the spec file in the SPECS directory. - specName = "%s.spec" % (config['release-name'],) - specPath = os.path.join(buildDir, "SPECS", specName) - specHandle = open(specPath, "w") - specFileRealData = specFileData % { - 'description': config['description'], - 'rpm_file': config['rpmfile'], - 'version': config['set-version'], - 'tarfile_basename': tarballName, - 'tap_file': tapFileBase, - 'date': time.strftime('%a %b %d %Y', time.localtime(time.time())), - 'maintainer': config['maintainer'], - 'long_description': config['long_description'], - } - specHandle.write(specFileRealData) - specHandle.close() - - log.msg(format="Created RPM spec file %(specPath)r", - specPath=specPath) - - return specPath - - - -def run(options=None): - # parse options - try: - config = MyOptions() - config.parseOptions(options) - except usage.error, ue: - sys.exit("%s: %s" % (sys.argv[0], ue)) - - # create RPM build environment - tmpDir = makeBuildDir() - specPath = setupBuildFiles(tmpDir, config) - - # build rpm - job = subprocess.Popen([ - "rpmbuild", - "-vv", - "--define", "_topdir %s" % (tmpDir,), - "-ba", specPath, - ], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - stdout, _ = job.communicate() - - # If there was a problem, show people what it was. - if job.returncode != 0: - print stdout - - # copy the RPMs to the local directory - rpmPath = glob.glob(os.path.join(tmpDir, 'RPMS', 'noarch', '*'))[0] - srpmPath = glob.glob(os.path.join(tmpDir, 'SRPMS', '*'))[0] - if not config['quiet']: - print 'Writing "%s"...' % os.path.basename(rpmPath) - shutil.copy(rpmPath, '.') - if not config['quiet']: - print 'Writing "%s"...' % os.path.basename(srpmPath) - shutil.copy(srpmPath, '.') - - # remove the build directory - shutil.rmtree(tmpDir) - - return [os.path.basename(rpmPath), os.path.basename(srpmPath)] |