~abreu-alexandre/libunity-webapps/bump-2.4.4-fix-distcheck

728.1.1 by Robert Carr
Add skeleton desktop file tool
1
#include <stdio.h>
2
#include <stdlib.h>
3
4
#include <glib.h>
5
#include <glib/gstdio.h>
6
#include "unity-webapps-application-info.h"
7
#include "unity-webapps-application-manifest.h"
8
728.1.7 by Robert Carr
Add tool for writing desktop file from manifest.json and install it
9
static gboolean
10
write_desktop_file (UnityWebappsApplicationManifest *manifest)
728.1.1 by Robert Carr
Add skeleton desktop file tool
11
{
12
  UnityWebappsApplicationInfo *info;
728.1.5 by Robert Carr
Increment on desktop file generator
13
  const gchar *name, *domain;
728.1.7 by Robert Carr
Add tool for writing desktop file from manifest.json and install it
14
  gchar *desktop_name;
15
  GError *error;
728.1.5 by Robert Carr
Increment on desktop file generator
16
  
17
  name = unity_webapps_application_manifest_get_name (manifest);
18
  domain = unity_webapps_application_manifest_get_domain (manifest);
789 by Maxim Ermilov
support manifests without domain
19
20
  if (!domain)
21
    return FALSE;
22
728.1.5 by Robert Carr
Increment on desktop file generator
23
  info = unity_webapps_application_info_new (name, domain, "", NULL);
728.1.1 by Robert Carr
Add skeleton desktop file tool
24
728.1.7 by Robert Carr
Add tool for writing desktop file from manifest.json and install it
25
  // It's a waste of time to free this.
26
  desktop_name = unity_webapps_application_info_get_desktop_file_name (info);
27
  
28
  error = NULL;
29
  
30
  unity_webapps_application_info_write_desktop_file_to_path (info, desktop_name, &error);
31
  
32
  if (error != NULL)
33
    {
34
      // No reason to free
35
      g_warning ("Error writing desktop file: %s \n", error->message);
36
      return FALSE;
37
    }
38
    
39
  return TRUE;
728.1.1 by Robert Carr
Add skeleton desktop file tool
40
}
41
42
gint
43
main (gint argc, gchar **argv)
44
{
45
  UnityWebappsApplicationManifest *manifest;
728.1.7 by Robert Carr
Add tool for writing desktop file from manifest.json and install it
46
  gboolean wrote;
47
48
49
  g_type_init ();
50
  
728.1.1 by Robert Carr
Add skeleton desktop file tool
51
  if (argc != 2)
52
    {
53
      g_printf("Usage: unity-webapps-desktop-file <<path to manifest.json>>\n");
54
      return 1;
55
    }
56
  
57
  manifest = unity_webapps_application_manifest_new_from_file (argv[1]);
58
  
728.1.7 by Robert Carr
Add tool for writing desktop file from manifest.json and install it
59
  if (manifest == FALSE)
728.1.1 by Robert Carr
Add skeleton desktop file tool
60
    {
61
      g_printf("Failed to load and parse manifest file \n");
62
      return 1;
63
    }
64
  
728.1.7 by Robert Carr
Add tool for writing desktop file from manifest.json and install it
65
  wrote = write_desktop_file (manifest);
66
  
67
  if (wrote == FALSE)
68
    {
69
      g_printf("Failed to write desktop file \n");
70
      return 1;
71
    }
72
73
  return 0;
728.1.1 by Robert Carr
Add skeleton desktop file tool
74
}