[gnome-menus/wip-gobject-rebase2: 5/5] Replace Python example with JS



commit f3beeb86db52c53c32f69443325a5ff8947ce7fd
Author: Colin Walters <walters verbum org>
Date:   Wed Apr 20 17:48:07 2011 -0400

    Replace Python example with JS

 util/Makefile.am       |   10 +-----
 util/gnome-menus-ls.js |   52 ++++++++++++++++++++++++++
 util/gnome-menus-ls.py |   94 ------------------------------------------------
 3 files changed, 53 insertions(+), 103 deletions(-)
---
diff --git a/util/Makefile.am b/util/Makefile.am
index a8ab28e..35df573 100644
--- a/util/Makefile.am
+++ b/util/Makefile.am
@@ -17,14 +17,6 @@ gnome_menu_spec_test_LDADD =		\
 	$(GIO_UNIX_LIBS)		\
 	../libmenu/libgnome-menu.la
 
-if HAVE_PYTHON
-pyexampledir = $(pkgdatadir)/examples
-pyexample_DATA = gnome-menus-ls.py
-else
-pyexampledir =
-pyexample_DATA =
-endif
-
-EXTRA_DIST = $(pyexample_DATA)
+EXTRA_DIST = gnome-menus-ls.js
 
 -include $(top_srcdir)/git.mk
diff --git a/util/gnome-menus-ls.js b/util/gnome-menus-ls.js
new file mode 100755
index 0000000..7c37d9b
--- /dev/null
+++ b/util/gnome-menus-ls.js
@@ -0,0 +1,52 @@
+#!/usr/bin/env gjs
+// Copyright (C) 2011 Red Hat, Inc.
+//
+// Authors: Colin Walters <walters verbum org>
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//
+
+
+var GMenu = imports.gi.GMenu;
+
+var tree = new GMenu.Tree({ name: "applications.menu", flags: 0 });
+
+tree.load_sync();
+
+var root = tree.get_root_directory();
+
+function printDirectory(dir, parent_path) {
+    var path;
+    if (parent_path == null) {
+        path = '/';
+    } else {
+        path = parent_path + dir.get_name() + "/";
+    }
+
+    var iter;
+    iter = dir.iter();
+    var nextType = iter.next();
+    while (nextType != GMenu.TreeItemType.INVALID) {
+	if (nextType == GMenu.TreeItemType.ENTRY) {
+	    var entry = iter.get_entry();
+	    print(path + "\t" + entry.get_app_info().get_name() + "\t" + entry.get_desktop_file_path());
+	} else if (nextType == GMenu.TreeItemType.DIRECTORY) {
+	    printDirectory(iter.get_directory(), path);
+        }
+	nextType = iter.next();
+    }
+}
+
+printDirectory(root);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]