Commit e31b47a3 by Eric Coissac

modify the install script function to suppress the .py at the end of the command…

modify the install script function to suppress the .py at the end of the command name. So now, fastaGrep.py becomes fastaGrep
parent 16e1992c
......@@ -2,6 +2,10 @@
from distutils.core import setup
from distutils.extension import Extension
from distutils.util import convert_path
from distutils import log
from distutils.dep_util import newer
from distutils import sysconfig
try:
from Cython.Distutils import build_ext
......@@ -11,11 +15,94 @@ except ImportError:
from distutils.command.build_ext import build_ext
has_cython=False
from distutils.command.build_scripts import build_scripts as ori_build_scripts
from distutils.command.build_scripts import first_line_re
from stat import ST_MODE
import os.path
import re, sys
import glob
from os import path
class build_scripts(ori_build_scripts):
def copy_scripts (self):
"""Copy each script listed in 'self.scripts'; if it's marked as a
Python script in the Unix way (first line matches 'first_line_re',
ie. starts with "\#!" and contains "python"), then adjust the first
line to refer to the current Python interpreter as we copy.
"""
self.mkpath(self.build_dir)
outfiles = []
for script in self.scripts:
adjust = 0
script = convert_path(script)
outfile = os.path.join(self.build_dir, os.path.splitext(os.path.basename(script))[0])
outfiles.append(outfile)
if not self.force and not newer(script, outfile):
log.debug("not copying %s (up-to-date)", script)
continue
# Always open the file, but ignore failures in dry-run mode --
# that way, we'll get accurate feedback if we can read the
# script.
try:
f = open(script, "r")
except IOError:
if not self.dry_run:
raise
f = None
else:
first_line = f.readline()
if not first_line:
self.warn("%s is an empty file (skipping)" % script)
continue
match = first_line_re.match(first_line)
if match:
adjust = 1
post_interp = match.group(1) or ''
if adjust:
log.info("copying and adjusting %s -> %s", script,
self.build_dir)
if not self.dry_run:
outf = open(outfile, "w")
if not sysconfig.python_build:
outf.write("#!%s%s\n" %
(self.executable,
post_interp))
else:
outf.write("#!%s%s\n" %
(os.path.join(
sysconfig.get_config_var("BINDIR"),
"python%s%s" % (sysconfig.get_config_var("VERSION"),
sysconfig.get_config_var("EXE"))),
post_interp))
outf.writelines(f.readlines())
outf.close()
if f:
f.close()
else:
if f:
f.close()
self.copy_file(script, outfile)
if os.name == 'posix':
for file in outfiles:
if self.dry_run:
log.info("changing mode of %s", file)
else:
oldmode = os.stat(file)[ST_MODE] & 07777
newmode = (oldmode | 0555) & 07777
if newmode != oldmode:
log.info("changing mode of %s from %o to %o",
file, oldmode, newmode)
os.chmod(file, newmode)
def findPackage(root,base=None):
modules=[]
if base is None:
......@@ -60,7 +147,7 @@ def findC(root,base=None,pyrexs=None):
return pyrexs
VERSION = '0.1.3'
VERSION = '0.1.4'
AUTHOR = 'Eric Coissac'
EMAIL = 'eric@coissac.eu'
URL = 'www.grenoble.prabi.fr/trac/OBITools'
......@@ -87,6 +174,7 @@ setup(name="OBITools",
scripts=SCRIPTS,
package_dir = {'': SRC},
packages=findPackage(SRC),
cmdclass = {'build_ext': build_ext},
cmdclass = {'build_ext': build_ext,'build_scripts':build_scripts},
requires=['Cython (>=0.12)'],
ext_modules=EXTENTION)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment