summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-devel/distcc/files/distcc-config')
-rw-r--r--sys-devel/distcc/files/distcc-config164
1 files changed, 0 insertions, 164 deletions
diff --git a/sys-devel/distcc/files/distcc-config b/sys-devel/distcc/files/distcc-config
deleted file mode 100644
index 094307c1050..00000000000
--- a/sys-devel/distcc/files/distcc-config
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env python
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-import os, re, signal, sys, commands, pwd
-from string import rstrip
-
-options=[
- '--get-hosts',
- '--set-hosts',
- '--get-verbose',
- '--set-verbose',
- '--get-log',
- '--set-log',
- '--install',
- '--help',
- '--get-env',
- '--set-env'
-]
-
-tmpcmdline=sys.argv[1:]
-cmdline=[]
-envfile = '/etc/env.d/02distcc'
-
-def exithandler(foo,bar):
- os.kill(0,signal.SIGKILL)
- sys.exit(1)
-
-signal.signal(signal.SIGINT,exithandler)
-
-def isroot(ret=0):
- if os.getuid() != 0:
- if ret == 0:
- print '!!!',sys.argv[:1][0],tmpcmdline[0],'must be run as root'
- sys.exit(1)
- else:
- retval = 0
- else:
- retval = 1
- return retval
-
-def writeenv(var,value):
- isroot()
- distcc_env = []
- distcc_env = open(envfile, 'r').readlines()
- distcc_env_new = open(envfile, 'w')
- for i in range(len(distcc_env)):
- if re.compile(var+'="(.*)"').match(distcc_env[i]):
- distcc_env[i] = var+'="'+value+'"\n'
- distcc_env_new.write(distcc_env[i])
- #print 'Set',var,'to:',value
- os.popen('/usr/sbin/env-update')
- print 'If you want to use these new settings in an existing shell,'
- print 'you need to "source /etc/profile" to get the changes.'
-
-def readenv(var):
- distcc_env = open(envfile, 'r').read()
- match = re.compile(var+'="(.*)"').search(distcc_env)
- if match:
- print var+'='+match.group(1)
- else:
- print var,'not set.'
-
-def permissions(path,user,group):
- for file in os.listdir(path):
- #print 'Configuring',path+file+'...'
- os.chown(path+file,user,group)
-
-def installlinks(chost=''):
- for file in ['gcc', 'cc', 'c++', 'g++']:
- path = '/usr/lib/distcc/bin/'
- if not chost == '':
- file = chost+'-'+file
- if os.path.exists('/usr/bin/'+file):
- #print 'Creating',path+file,'symlink...'
- if not os.path.exists(path+file):
- os.symlink('/usr/bin/distcc',path+file)
- #else:
- # print 'Already exists. Skipping...'
-
-def createdistccdir(dir):
- if not os.path.exists(dir):
- os.mkdir(dir)
- os.chmod(dir, 1777)
-
-for x in tmpcmdline:
- if not x:
- continue
- if x[0:2]=="--":
- if not x in options:
- print "!!! Error:",x,"is an invalid option."
- sys.exit(1)
- else:
- cmdline = x
-
-if '--get-hosts' in tmpcmdline:
- HOSTS_ENV = os.environ.get('DISTCC_HOSTS')
- HOSTS_HOME = os.environ.get('HOME')+'/hosts'
- if HOSTS_ENV:
- print HOSTS_ENV
- elif os.path.isfile(HOSTS_HOME) and os.path.getsize(HOSTS_HOME) != 0:
- print HOSTS_HOME
- elif os.path.exists('/etc/distcc/hosts'):
- print rstrip(open('/etc/distcc/hosts', 'r').read())
- else:
- print 'No configuration file found. Setup your hosts with --set-hosts.'
-elif '--set-hosts' in tmpcmdline:
- if isroot(1):
- PATH = '/etc/distcc'
- else:
- PATH = os.environ.get('HOME')
- createdistccdir(PATH)
- open(PATH+'/hosts', 'w').write(cmdline + '\n')
-elif '--get-verbose' in tmpcmdline:
- readenv('DISTCC_VERBOSE')
-elif '--set-verbose' in tmpcmdline:
- writeenv('DISTCC_VERBOSE',tmpcmdline[1])
-elif '--get-log' in tmpcmdline:
- readenv('DISTCC_LOG')
-elif '--set-log' in tmpcmdline:
- writeenv('DISTCC_LOG',tmpcmdline[1])
-elif '--install' in tmpcmdline:
- isroot()
- print 'Creating',envfile+'...'
- distcc_env = open(envfile, 'w')
- distcc_env.write('# This file is managed by distcc-config; use it to change these settings.\n')
- distcc_env.write('DISTCC_LOG=""\n')
- distcc_env.write('DCCC_PATH="/usr/lib/distcc/bin"\n')
- distcc_env.write('DISTCC_VERBOSE="0"\n')
-
- if os.WEXITSTATUS(commands.getstatusoutput('/usr/sbin/useradd -u 240 -g daemon -s /bin/false -d /dev/null -c "distccd" distcc')[0]) == 9:
- os.WEXITSTATUS(commands.getstatusoutput('/usr/sbin/usermod -g daemon -s /bin/false -d /dev/null -c "distccd" distcc')[0])
-
- foobar = pwd.getpwnam('distcc')
- user = foobar[2]
- group = foobar[3]
-
- makeconf = open('/etc/make.conf', 'r').read()
- chost = re.compile('CHOST="(.*)"').search(makeconf).group(1)
- print 'Creating symlinks...'
- installlinks()
- installlinks(chost)
-
- print 'Checking permissions...'
- permissions('/usr/lib/distcc/bin/',user,group)
- permissions('/var/run/distccd/',user,group)
-elif '--get-env' in tmpcmdline:
- if len(tmpcmdline) == 1:
- print rstrip(open(envfile, 'r').read())
- elif len(tmpcmdline) == 2:
- readenv(tmpcmdline[1])
- else:
- print '!!! Error: Specify only one variable.'
-elif '--set-env' in tmpcmdline:
- if len(tmpcmdline) > 2 and len(tmpcmdline) <= 3:
- isroot()
- writeenv(tmpcmdline[1],tmpcmdline[2])
- else:
- print '!!! Error: Awaiting two parameters.'
-else:
- print 'Usage: /usr/bin/distcc-config --set-hosts DISTCC_HOSTS | --get-hosts'
- print ' /usr/bin/distcc-config --set-verbose { 0 | 1 } | --get-verbose'
- print ' /usr/bin/distcc-config --set-log FILE | --get-log'
- print ' /usr/bin/distcc-config --set-env VARIABLE VALUE | --get-env [VARIABLE]'