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