#!/usr/bin/env python

import importlib
import os
import sys
observer_path = os.path.join(os.path.dirname(
    os.path.realpath(__file__)), "../..")
sys.path.append(observer_path)
mod = importlib.import_module("xos-observer")
mod.main()
