91 lines
3.5 KiB
Python
Executable File
91 lines
3.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import sys
|
|
from pyeole.schedule import display_schedules, ManageSchedule, \
|
|
apply_schedules, add_schedule, del_schedule
|
|
from pyeole.ansiprint import print_orange
|
|
from optparse import OptionParser, OptionGroup
|
|
|
|
|
|
def main():
|
|
parser = OptionParser()
|
|
parser.add_option("-l", "--list", dest="list", action="store_true",
|
|
default=False, help=u"Liste les scripts activés et désactivés")
|
|
parser.add_option("--apply", dest="apply", help=u"Active/désactive les scripts dans le schedule",
|
|
action='store_true', default=False)
|
|
group = OptionGroup(parser, u"Activer un script (ne pas oublier d'appliquer la configuration)")
|
|
group.add_option("-a", "--add", dest="add", help=u"Périodicité : une fois (once), tous les jours (daily), toutes les semaines (weekly) ou tous les mois (monthly)")
|
|
group.add_option("-s", "--script", dest="script", help=u"Nom du script")
|
|
group.add_option("-m", "--mode", dest="mode", help=u"Mode : avant la sauvegarde (pre) ou après la sauvegarde (post)")
|
|
parser.add_option_group(group)
|
|
parser.add_option("-d", "--del", dest="delete", help=u"Désactive le script en précisant son nom (ne pas oublier d'appliquer la configuration)")
|
|
(option, args) = parser.parse_args()
|
|
|
|
if option.delete is None and option.add is None and option.list is False and option.apply is False:
|
|
parser.print_help()
|
|
sys.exit(0)
|
|
|
|
if (option.delete is not None and option.add is not None) or \
|
|
(option.list is True and option.add is not None) or \
|
|
(option.delete is not None and option.list is True) or \
|
|
(option.apply is True and option.add is not None) or \
|
|
(option.apply is True and option.list is True) or \
|
|
(option.apply is True and option.delete is True):
|
|
parser.print_help()
|
|
print "can't list, apply, add or delete together"
|
|
print
|
|
sys.exit(1)
|
|
|
|
if option.add is not None and None in [option.script, option.mode]:
|
|
print "you should specified -s and -m with -a"
|
|
print
|
|
parser.print_help()
|
|
sys.exit(1)
|
|
|
|
if option.delete == 'once' and None in [option.script, option.mode]:
|
|
print "you must specify mode if you want delete 'once' script"
|
|
print
|
|
parser.print_help()
|
|
sys.exit(1)
|
|
|
|
if option.delete != 'once' and ((option.script is not None and option.add is None) or \
|
|
(option.mode is not None and option.add is None)):
|
|
print "you should specified -s and -m only with -a"
|
|
print
|
|
parser.print_help()
|
|
sys.exit(1)
|
|
|
|
if option.list:
|
|
display_schedules()
|
|
|
|
if option.add is not None:
|
|
try:
|
|
if option.add == 'once':
|
|
add_schedule(option.add, option.mode, option.script)
|
|
else:
|
|
sch = ManageSchedule()
|
|
sch.add(option.script, option.add, option.mode)
|
|
sch.save()
|
|
except Exception, err:
|
|
print_orange(str(err))
|
|
sys.exit(1)
|
|
|
|
if option.delete is not None:
|
|
try:
|
|
if option.delete == 'once':
|
|
del_schedule(option.delete, option.mode, option.script)
|
|
else:
|
|
sch = ManageSchedule()
|
|
sch.delete(option.delete)
|
|
sch.save()
|
|
except Exception, err:
|
|
print_orange(str(err))
|
|
sys.exit(1)
|
|
|
|
if option.apply is not None:
|
|
apply_schedules()
|
|
|
|
if __name__ == '__main__':
|
|
main()
|