forked from rc/aircox
move files
This commit is contained in:
62
liquidsoap/management/commands/liquidsoap_log.py
Normal file
62
liquidsoap/management/commands/liquidsoap_log.py
Normal file
@ -0,0 +1,62 @@
|
||||
"""
|
||||
This script is used by liquidsoap in order to log a file change. It should not
|
||||
be used for other purposes.
|
||||
"""
|
||||
import os
|
||||
from argparse import RawTextHelpFormatter
|
||||
|
||||
from django.utils import timezone as tz
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
|
||||
import aircox.programs.models as programs
|
||||
|
||||
|
||||
class Command (BaseCommand):
|
||||
help= __doc__
|
||||
|
||||
@staticmethod
|
||||
def date(s):
|
||||
try:
|
||||
return tz.make_aware(tz.datetime.strptime(s, '%Y/%m/%d %H:%M:%S'))
|
||||
except ValueError:
|
||||
raise argparse.ArgumentTypeError('Invalid date format')
|
||||
|
||||
|
||||
def add_arguments (self, parser):
|
||||
parser.formatter_class=RawTextHelpFormatter
|
||||
parser.add_argument(
|
||||
'-c', '--comment', type=str,
|
||||
help='log comment'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-s', '--source', type=str,
|
||||
required=True,
|
||||
help='source path'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-p', '--path', type=str,
|
||||
required=True,
|
||||
help='sound path to log'
|
||||
)
|
||||
parser.add_argument(
|
||||
'-d', '--date', type=Command.date,
|
||||
help='set date instead of now (using format "%Y/%m/%d %H:%M:%S")'
|
||||
)
|
||||
|
||||
|
||||
def handle (self, *args, **options):
|
||||
comment = options.get('comment') or ''
|
||||
path = os.path.realpath(options.get('path'))
|
||||
|
||||
sound = programs.Sound.objects.filter(path = path)
|
||||
if sound:
|
||||
sound = sound[0]
|
||||
else:
|
||||
sound = None
|
||||
comment += '\nunregistered sound: {}'.format(path)
|
||||
|
||||
programs.Log(source = options.get('source'),
|
||||
comment = comment,
|
||||
related_object = sound).save()
|
||||
|
||||
|
Reference in New Issue
Block a user