First attempt
This commit is contained in:
commit
89677fbeee
22 changed files with 3461 additions and 0 deletions
52
voc/git.py
Normal file
52
voc/git.py
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
from git import Repo
|
||||
from voc.c3data import C3data
|
||||
from voc.event import Event
|
||||
from voc.schedule import Schedule, ScheduleEncoder
|
||||
from voc.tools import (
|
||||
commit_changes_if_something_relevant_changed,
|
||||
git,
|
||||
)
|
||||
|
||||
def export_event_files(schedule: Schedule, options: argparse.Namespace, local = False):
|
||||
# to get proper a state, we first have to remove all event files from the previous run
|
||||
if not local or options.git:
|
||||
git("rm events/* >/dev/null")
|
||||
os.makedirs('events', exist_ok=True)
|
||||
|
||||
# write separate file for each event, to get better git diffs
|
||||
# TODO: use Event.export()
|
||||
def export_event(event: Event):
|
||||
origin_system = None
|
||||
if isinstance(event, Event) and event.origin:
|
||||
origin_system = event.origin.origin_system
|
||||
|
||||
with open("events/{}.json".format(event["guid"]), "w") as fp:
|
||||
json.dump(
|
||||
{
|
||||
**event,
|
||||
"room_id": schedule._room_ids.get(event["room"], None),
|
||||
"origin": origin_system or None,
|
||||
},
|
||||
fp,
|
||||
indent=2,
|
||||
cls=ScheduleEncoder,
|
||||
)
|
||||
|
||||
schedule.foreach_event(export_event)
|
||||
|
||||
|
||||
def postprocessing(schedule: Schedule, options: argparse.Namespace, local = False, targets = []):
|
||||
if not local or options.git:
|
||||
commit_changes_if_something_relevant_changed(schedule)
|
||||
# Attention: This method exits the script, if nothing relevant changed
|
||||
# TODO: make this fact more obvious or refactor code
|
||||
|
||||
if not local and "c3data" in targets:
|
||||
print("\n== Updating c3data via API…")
|
||||
|
||||
c3data = C3data(schedule)
|
||||
c3data.process_changed_events(Repo('.'), options)
|
||||
Loading…
Add table
Add a link
Reference in a new issue