create symlinks in man using symlinkBuilder

This commit is contained in:
Radim Kolar 2009-08-02 20:23:50 +02:00
parent ae2b73af10
commit 9e1cb9abdd
3 changed files with 38 additions and 11 deletions

View File

@ -14,9 +14,11 @@ env = Environment(CPPPATH='#/include', LIBPATH=['/usr/lib','/usr/local/lib'])
# Import GZip builder
import gzipBuilder
env.Append(BUILDERS = {'GZip' : Builder(action=gzipBuilder.GZip)})
#import environment
# Import Symlink builder
import symlinkBuilder
env.Append(BUILDERS = {'GZip' : Builder(action=gzipBuilder.GZip),
'Symlink': Builder(action=symlinkBuilder.Symlink)})
# Import environment
from importer import importEnvironment,importVariable
importEnvironment(env,'HOME')
importVariable(env,'CC')

View File

@ -36,14 +36,7 @@ for page in MAN7:
# install symlinks for man pages
if 'install' in COMMAND_LINE_TARGETS:
for pair in SYMLINKS:
try:
unlink(MANDIR+'/man1/'+pair[1]+'.1.gz')
except OSError:
pass
try:
symlink(MANDIR+'/man1/'+pair[0]+'.1.gz', MANDIR+'/man1/'+pair[1]+'.1.gz')
except OSError:
pass
env.Symlink(MANDIR+'/man1/'+pair[1]+'.1.gz',MANDIR+'/man1/'+pair[0]+'.1.gz')
env.Alias("install",MANDIR)

View File

@ -0,0 +1,32 @@
#
# Symlink SCons builder
#
# Version 1.0
# 02-Aug-2009
#
def Symlink(target, source, env=None):
"""Create symlink target pointing to source.
This builder creates symlinks named target pointing to source.
Target is removed if exists.
Keyword arguments:
target -- list of symlink targets
source -- list of files to be compressed
env -- SCons environment (not used)
"""
import os
if not isinstance(target, list):
raise TypeError,"target must be list"
elif not isinstance(source, list):
raise TypeError,"source must be list"
if len(target) != len(source):
raise ValueError,"target and source list must have same size"
for i in range(0,len(target)):
try:
os.unlink(str(target[i]))
except OSError:
pass
os.symlink(str(source[i]),str(target[i]))
return None