From 2b74554f6ffcf4bf3e92b67e4a7b54c18573f37a Mon Sep 17 00:00:00 2001 From: Luca CPZ Date: Tue, 16 Oct 2018 16:46:59 +0100 Subject: [PATCH] menu: fix elimination of null paths; removed whitespaces; closes #11 --- desktop.lua | 25 ++++++++++++------------- init.lua | 17 ++++++++--------- menu.lua | 39 ++++++++++++++++----------------------- 3 files changed, 36 insertions(+), 45 deletions(-) diff --git a/desktop.lua b/desktop.lua index 5a930d9..748debd 100644 --- a/desktop.lua +++ b/desktop.lua @@ -1,15 +1,14 @@ - --[[ - - Awesome-Freedesktop - Freedesktop.org compliant desktop entries and menu - - Desktop section - - Licensed under GNU General Public License v2 - * (c) 2016, Luke Bonham - * (c) 2009-2015, Antonio Terceiro - + + Awesome-Freedesktop + Freedesktop.org compliant desktop entries and menu + + Desktop section + + Licensed under GNU General Public License v2 + * (c) 2016, Luke Bonham + * (c) 2009-2015, Antonio Terceiro + --]] local awful = require("awful") @@ -17,12 +16,12 @@ local theme = require("beautiful") local utils = require("menubar.utils") local wibox = require("wibox") -local capi = { screen = screen } +local capi = capi local io = io local ipairs = ipairs local mouse = mouse local os = os -local string = { format = string.format } +local string = string local table = table -- Desktop icons diff --git a/init.lua b/init.lua index cb0548f..9350b44 100644 --- a/init.lua +++ b/init.lua @@ -1,13 +1,12 @@ - --[[ - - Awesome-Freedesktop - Freedesktop.org compliant desktop entries and menu - - Licensed under GNU General Public License v2 - * (c) 2016, Luke Bonham - * (c) 2009-2015, Antonio Terceiro - + + Awesome-Freedesktop + Freedesktop.org compliant desktop entries and menu + + Licensed under GNU General Public License v2 + * (c) 2016, Luke Bonham + * (c) 2009-2015, Antonio Terceiro + --]] return { diff --git a/menu.lua b/menu.lua index 1174139..2f0bd8a 100644 --- a/menu.lua +++ b/menu.lua @@ -1,30 +1,23 @@ - --[[ - - Awesome-Freedesktop - Freedesktop.org compliant desktop entries and menu - - Menu section - - Licensed under GNU General Public License v2 - * (c) 2016, Luke Bonham - * (c) 2014, Harvey Mittens - + + Awesome-Freedesktop + Freedesktop.org compliant desktop entries and menu + + Menu section + + Licensed under GNU General Public License v2 + * (c) 2016, Luke Bonham + * (c) 2014, Harvey Mittens + --]] local awful_menu = require("awful.menu") local menu_gen = require("menubar.menu_gen") local menu_utils = require("menubar.utils") local icon_theme = require("menubar.icon_theme") +local gls = require("gears.filesystem") -local os = { execute = os.execute, - getenv = os.getenv } -local pairs = pairs -local string = { byte = string.byte, - format = string.format } -local table = { insert = table.insert, - remove = table.remove, - sort = table.sort } +local pairs, string, table, os = pairs, string, table, os -- Add support for NixOS systems too table.insert(menu_gen.all_menu_dirs, string.format("%s/.nix-profile/share/applications", os.getenv("HOME"))) @@ -32,7 +25,7 @@ table.insert(menu_gen.all_menu_dirs, string.format("%s/.nix-profile/share/applic -- Remove non existent paths in order to avoid issues local existent_paths = {} for k,v in pairs(menu_gen.all_menu_dirs) do - if os.execute(string.format("ls %s >/dev/null 2>&1", v)) then + if gls.is_dir(v) then table.insert(existent_paths, v) end end @@ -49,8 +42,8 @@ local menu = {} -- @param tab a given table -- @param val the element to search for -- @return true if the given string is found within the search table; otherwise, false if not -local function has_value (tab, val) - for index, value in ipairs(tab) do +function menu.has_value (tab, val) + for index, value in pairs(tab) do if val:find(value) then return true end @@ -80,7 +73,7 @@ function menu.build(args) for k, v in pairs(entries) do for _, cat in pairs(result) do if cat[1] == v.category then - if not has_value(skip_items, v.name) then + if not menu.has_value(skip_items, v.name) then table.insert(cat[2], { v.name, v.cmdline, v.icon }) end break