Dplacement
darcs-hash:20050826155823-41617-77a54bc2437a31fcfcc0421a0885e366f7b0b389.gz
This commit is contained in:
parent
e4bbb04a86
commit
ddb879ccf6
1 changed files with 114 additions and 0 deletions
114
tv/launch_sat.py
Executable file
114
tv/launch_sat.py
Executable file
|
@ -0,0 +1,114 @@
|
||||||
|
#! /usr/bin/env python
|
||||||
|
# -*- coding: iso8859-15 -*-
|
||||||
|
|
||||||
|
""" Script de lancement de mumudvb
|
||||||
|
|
||||||
|
Auteur : Frédéric Pauget
|
||||||
|
Licence : GPLv2
|
||||||
|
"""
|
||||||
|
import sys, getopt, os
|
||||||
|
from sat_base import NotRunning, CarteOqp
|
||||||
|
|
||||||
|
if os.getuid() == 0 :
|
||||||
|
os.system("su tv -c %s" % " ".join(sys.argv))
|
||||||
|
sys.exit(0)
|
||||||
|
elif os.getuid() != 101 :
|
||||||
|
print "Ce programme doit être lancé par l'utilisateur tv (uid=101)"
|
||||||
|
print "Astuce : sudo -u tv %s" % sys.argv[0]
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
def usage(erreur=None) :
|
||||||
|
if erreur :
|
||||||
|
print erreur
|
||||||
|
print """Usage :
|
||||||
|
%(p)s start [<numero carte> [<transpondeur>]]:
|
||||||
|
démarrage le transpondeur donné sur la carte donnée,
|
||||||
|
si le transpondeur est omis démarre celui défini dans la conf
|
||||||
|
si seul démarre des flux définis dans la conf
|
||||||
|
%(p)s stop [numero carte] :
|
||||||
|
arrête tous les flux des cartes spécifiées,
|
||||||
|
si aucune carte est fournie arrète tous les flux
|
||||||
|
|
||||||
|
Les options possibles sont :
|
||||||
|
-d ou --debug : affiche tous les messages
|
||||||
|
et ne daemonize pas crans_dvbsream
|
||||||
|
-v ou --verbose : affiche les messages de debuggage
|
||||||
|
-q ou --quiet : affiche rien
|
||||||
|
--timeout_accord=<nb> : nb de secondesdonnées pour l'accord""" \
|
||||||
|
% { 'p' : sys.argv[0].split('/')[-1] + ' [options]'}
|
||||||
|
if not erreur : sys.exit(0)
|
||||||
|
else : sys.exit(-1)
|
||||||
|
|
||||||
|
# Arguments
|
||||||
|
try :
|
||||||
|
options, args = getopt.getopt(sys.argv[1:], 'hdvq', [ 'help', 'debug' , 'quiet' , 'verbose', 'timeout_accord='] )
|
||||||
|
except getopt.error, msg :
|
||||||
|
sys.stderr.write('%s\n' % msg)
|
||||||
|
sys.exit(255)
|
||||||
|
|
||||||
|
verbose = 1
|
||||||
|
timeout_accord = 20
|
||||||
|
for opt, val in options :
|
||||||
|
if opt in [ '-v' , '--verbose' ] :
|
||||||
|
verbose = 2
|
||||||
|
elif opt in [ '-d' , '--debug' ] :
|
||||||
|
verbose = 3
|
||||||
|
elif opt == [ '-q' , '--quiet' ] :
|
||||||
|
verbose = 0
|
||||||
|
elif opt == '--timeout_accord' :
|
||||||
|
try:
|
||||||
|
timeout_accord = int(val)
|
||||||
|
except:
|
||||||
|
usage("Valeur de timeout_accord (%s) incorrecte" % val)
|
||||||
|
elif opt in [ '-h', '--help' ] :
|
||||||
|
usage()
|
||||||
|
|
||||||
|
if not args :
|
||||||
|
usage('Argument requis')
|
||||||
|
|
||||||
|
elif args[0] not in [ 'start', 'stop' ] :
|
||||||
|
usage("Commande %s incorrecte" % args[0])
|
||||||
|
|
||||||
|
|
||||||
|
# Carte fournie ?
|
||||||
|
try :
|
||||||
|
cartes = [ int(args[1]) ]
|
||||||
|
except ValueError :
|
||||||
|
usage("Argument %s incorrect (doit être le numéro de carte)." % args[1])
|
||||||
|
except :
|
||||||
|
# Toutes les cartes
|
||||||
|
cartes = range(6)
|
||||||
|
if verbose > 2 :
|
||||||
|
print "Mode debug non permis avec le lancement automatique"
|
||||||
|
verbose = 2
|
||||||
|
|
||||||
|
if args[0] == 'start' :
|
||||||
|
if cartes == range(6) :
|
||||||
|
from sat_conf import conf
|
||||||
|
cartes = conf
|
||||||
|
else :
|
||||||
|
transpondeur = args[2]
|
||||||
|
from sat_base import *
|
||||||
|
try :
|
||||||
|
carte = eval(transpondeur)
|
||||||
|
cartes = [ carte(cartes[0]) ]
|
||||||
|
except NameError:
|
||||||
|
usage('Transpondeur %s inconnu.' % transpondeur)
|
||||||
|
|
||||||
|
|
||||||
|
elif args[0] == 'stop' :
|
||||||
|
from sat_base import carte
|
||||||
|
cartes = map(carte,cartes)
|
||||||
|
|
||||||
|
# On effectue l'opération demandée
|
||||||
|
for carte in cartes :
|
||||||
|
carte.verbose = verbose
|
||||||
|
carte.timeout_accord = timeout_accord
|
||||||
|
try :
|
||||||
|
eval('carte.%s()' % args[0])
|
||||||
|
except CarteOqp :
|
||||||
|
print "Carte %i occupée, abandon" % carte.card
|
||||||
|
except NotRunning :
|
||||||
|
# Pas réussi à lancer, TODO
|
||||||
|
pass
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue