#! /usr/bin/env python
# -*- coding: utf-8 -*-
# vim: set ft=python ts=4 sw=4 sts=4 et :

import sys
import subprocess

from gi.repository import Gio

def main(myname, desktop, *files):
    info = Gio.DesktopAppInfo()
    dbus_activate = False

    try:
        launcher = info.new_from_filename(desktop)
    except TypeError:
        launcher = None

    if launcher:
        try:
            dbus_activate = launcher.get_boolean('DBusActivatable')
        except AttributeError:
            dbus_activate = False

        if not dbus_activate:
            launcher.launch(files, None)

        else:
            if dbus_activate:
                cmd = ['gapplication', 'launch', launcher.get_id().replace('.desktop', '')]
                if files:
                    cmd.extend(files)
                process = subprocess.Popen(cmd, close_fds=True)

if __name__ == "__main__":
    main(*sys.argv)
