aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md20
-rwxr-xr-xbin/xdg_pipe_menu_menu (renamed from bin/er_xdg_pipe_menu_menu)4
-rw-r--r--include/xdg_pipe_menu.hrl (renamed from include/er_xdg_pipe_menu.hrl)0
-rw-r--r--rebar.config2
-rw-r--r--src/xdg_pipe_menu.app.src (renamed from src/er_xdg_pipe_menu.app.src)4
-rw-r--r--src/xdg_pipe_menu_app.erl (renamed from src/er_xdg_pipe_menu_app.erl)6
-rw-r--r--src/xdg_pipe_menu_cache.erl (renamed from src/er_xdg_pipe_menu_cache.erl)12
-rw-r--r--src/xdg_pipe_menu_cli.erl (renamed from src/er_xdg_pipe_menu_cli.erl)6
-rw-r--r--src/xdg_pipe_menu_desktop_entry.erl (renamed from src/er_xdg_pipe_menu_desktop_entry.erl)4
-rw-r--r--src/xdg_pipe_menu_renderer.erl (renamed from src/er_xdg_pipe_menu_renderer.erl)4
-rw-r--r--src/xdg_pipe_menu_scanner.erl (renamed from src/er_xdg_pipe_menu_scanner.erl)2
-rw-r--r--src/xdg_pipe_menu_socket.erl (renamed from src/er_xdg_pipe_menu_socket.erl)12
-rw-r--r--src/xdg_pipe_menu_sup.erl (renamed from src/er_xdg_pipe_menu_sup.erl)10
-rw-r--r--src/xdg_pipe_menu_watcher.erl (renamed from src/er_xdg_pipe_menu_watcher.erl)16
-rw-r--r--test/xdg_pipe_menu_cache_tests.erl (renamed from test/er_xdg_pipe_menu_cache_tests.erl)20
-rw-r--r--test/xdg_pipe_menu_desktop_entry_tests.erl (renamed from test/er_xdg_pipe_menu_desktop_entry_tests.erl)44
-rw-r--r--test/xdg_pipe_menu_renderer_tests.erl (renamed from test/er_xdg_pipe_menu_renderer_tests.erl)26
-rw-r--r--test/xdg_pipe_menu_scanner_tests.erl (renamed from test/er_xdg_pipe_menu_scanner_tests.erl)18
-rw-r--r--test/xdg_pipe_menu_socket_tests.erl (renamed from test/er_xdg_pipe_menu_socket_tests.erl)14
-rw-r--r--test/xdg_pipe_menu_watcher_tests.erl (renamed from test/er_xdg_pipe_menu_watcher_tests.erl)14
20 files changed, 119 insertions, 119 deletions
diff --git a/README.md b/README.md
index fbf610c..c39385d 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-er_xdg_pipe_menu
+xdg_pipe_menu
=====
Openbox pipemenu generator from XDG .desktop files
@@ -20,37 +20,37 @@ Running locally
The app is a long-running daemon: it scans your XDG application
directories once at startup, caches the rendered menu in memory, and
serves it over a Unix domain socket at
-`$XDG_RUNTIME_DIR/er_xdg_pipe_menu.sock` (falling back to
-`/tmp/er_xdg_pipe_menu-$USER.sock` if `XDG_RUNTIME_DIR` isn't set),
+`$XDG_RUNTIME_DIR/xdg_pipe_menu.sock` (falling back to
+`/tmp/xdg_pipe_menu-$USER.sock` if `XDG_RUNTIME_DIR` isn't set),
rebuilding the cache whenever a watched `.desktop` file changes.
For a quick manual run (e.g. while developing):
- $ rebar3 shell --eval "application:ensure_all_started(er_xdg_pipe_menu)."
+ $ rebar3 shell --eval "application:ensure_all_started(xdg_pipe_menu)."
To have it start automatically with your session, add a systemd
-user unit, e.g. `~/.config/systemd/user/er-xdg-pipe-menu.service`:
+user unit, e.g. `~/.config/systemd/user/xdg-pipe-menu.service`:
[Unit]
Description=XDG pipe menu daemon
[Service]
- WorkingDirectory=/path/to/er-xdg-pipe-menu
- ExecStart=/usr/bin/rebar3 shell --eval "application:ensure_all_started(er_xdg_pipe_menu)."
+ WorkingDirectory=/path/to/xdg-pipe-menu
+ ExecStart=/usr/bin/rebar3 shell --eval "application:ensure_all_started(xdg_pipe_menu)."
Restart=on-failure
[Install]
WantedBy=default.target
-then enable it with `systemctl --user enable --now er-xdg-pipe-menu`.
+then enable it with `systemctl --user enable --now xdg-pipe-menu`.
Openbox itself doesn't talk to the socket directly -- it invokes
-`bin/er_xdg_pipe_menu_menu` as the pipe menu command, which connects
+`bin/xdg_pipe_menu_menu` as the pipe menu command, which connects
to the daemon's socket and prints whatever comes back (or, if the
daemon isn't running, falls back to scanning/rendering inline so the
menu still works). Point a pipe menu at it in `~/.config/openbox/menu.xml`:
- <menu id="apps" label="Applications" execute="/path/to/er-xdg-pipe-menu/bin/er_xdg_pipe_menu_menu" />
+ <menu id="apps" label="Applications" execute="/path/to/xdg-pipe-menu/bin/xdg_pipe_menu_menu" />
The script resolves its own location to find the compiled code, so
it works from an absolute path as long as the repo's `_build`
diff --git a/bin/er_xdg_pipe_menu_menu b/bin/xdg_pipe_menu_menu
index 32a9bd9..a120a9f 100755
--- a/bin/er_xdg_pipe_menu_menu
+++ b/bin/xdg_pipe_menu_menu
@@ -3,12 +3,12 @@
%% Openbox pipe menu entry point. Tries the running daemon's Unix
%% socket first; falls back to an inline scan+parse+render if it
-%% isn't reachable. See src/er_xdg_pipe_menu_cli.erl for the logic --
+%% isn't reachable. See src/xdg_pipe_menu_cli.erl for the logic --
%% this script only wires up the code path to the compiled app.
main(Args) ->
add_code_paths(),
- er_xdg_pipe_menu_cli:main(Args).
+ xdg_pipe_menu_cli:main(Args).
add_code_paths() ->
ScriptDir = filename:dirname(filename:absname(escript:script_name())),
diff --git a/include/er_xdg_pipe_menu.hrl b/include/xdg_pipe_menu.hrl
index 6d50b8d..6d50b8d 100644
--- a/include/er_xdg_pipe_menu.hrl
+++ b/include/xdg_pipe_menu.hrl
diff --git a/rebar.config b/rebar.config
index 25a5a33..9071343 100644
--- a/rebar.config
+++ b/rebar.config
@@ -3,5 +3,5 @@
{shell, [
%% {config, "config/sys.config"},
- {apps, [er_xdg_pipe_menu]}
+ {apps, [xdg_pipe_menu]}
]}.
diff --git a/src/er_xdg_pipe_menu.app.src b/src/xdg_pipe_menu.app.src
index 4ba8103..0d0d7d6 100644
--- a/src/er_xdg_pipe_menu.app.src
+++ b/src/xdg_pipe_menu.app.src
@@ -1,8 +1,8 @@
-{application, er_xdg_pipe_menu, [
+{application, xdg_pipe_menu, [
{description, "Openbox pipemenu generator from XDG .desktop files"},
{vsn, "0.1.0"},
{registered, []},
- {mod, {er_xdg_pipe_menu_app, []}},
+ {mod, {xdg_pipe_menu_app, []}},
{applications, [
kernel,
stdlib,
diff --git a/src/er_xdg_pipe_menu_app.erl b/src/xdg_pipe_menu_app.erl
index 1880de8..7401a03 100644
--- a/src/er_xdg_pipe_menu_app.erl
+++ b/src/xdg_pipe_menu_app.erl
@@ -1,16 +1,16 @@
%%%-------------------------------------------------------------------
-%% @doc er_xdg_pipe_menu public API
+%% @doc xdg_pipe_menu public API
%% @end
%%%-------------------------------------------------------------------
--module(er_xdg_pipe_menu_app).
+-module(xdg_pipe_menu_app).
-behaviour(application).
-export([start/2, stop/1]).
start(_StartType, _StartArgs) ->
- er_xdg_pipe_menu_sup:start_link().
+ xdg_pipe_menu_sup:start_link().
stop(_State) ->
ok.
diff --git a/src/er_xdg_pipe_menu_cache.erl b/src/xdg_pipe_menu_cache.erl
index a71526e..0e10fea 100644
--- a/src/er_xdg_pipe_menu_cache.erl
+++ b/src/xdg_pipe_menu_cache.erl
@@ -8,7 +8,7 @@
%% @end
%%%-------------------------------------------------------------------
--module(er_xdg_pipe_menu_cache).
+-module(xdg_pipe_menu_cache).
-behaviour(gen_server).
@@ -33,24 +33,24 @@ invalidate() ->
%% no-daemon fallback, without going through the gen_server at all.
-spec build([file:filename_all()]) -> binary().
build(Dirs) ->
- Files = er_xdg_pipe_menu_scanner:find_desktop_files(Dirs),
+ Files = xdg_pipe_menu_scanner:find_desktop_files(Dirs),
Entries = lists:filtermap(fun parse/1, Files),
- er_xdg_pipe_menu_renderer:render(Entries).
+ xdg_pipe_menu_renderer:render(Entries).
parse(File) ->
- case er_xdg_pipe_menu_desktop_entry:parse_file(File) of
+ case xdg_pipe_menu_desktop_entry:parse_file(File) of
{ok, Entry} -> {true, Entry};
{error, _} -> false
end.
init([]) ->
- {ok, build(er_xdg_pipe_menu_scanner:data_dirs())}.
+ {ok, build(xdg_pipe_menu_scanner:data_dirs())}.
handle_call(get_menu, _From, Menu) ->
{reply, Menu, Menu}.
handle_cast(invalidate, _Menu) ->
- {noreply, build(er_xdg_pipe_menu_scanner:data_dirs())}.
+ {noreply, build(xdg_pipe_menu_scanner:data_dirs())}.
handle_info(_Info, State) ->
{noreply, State}.
diff --git a/src/er_xdg_pipe_menu_cli.erl b/src/xdg_pipe_menu_cli.erl
index 92ac715..aa2f98a 100644
--- a/src/er_xdg_pipe_menu_cli.erl
+++ b/src/xdg_pipe_menu_cli.erl
@@ -7,7 +7,7 @@
%% @end
%%%-------------------------------------------------------------------
--module(er_xdg_pipe_menu_cli).
+-module(xdg_pipe_menu_cli).
-export([main/1]).
@@ -18,12 +18,12 @@ main(_Args) ->
Menu =
case from_daemon() of
{ok, Bin} -> Bin;
- error -> er_xdg_pipe_menu_cache:build(er_xdg_pipe_menu_scanner:data_dirs())
+ error -> xdg_pipe_menu_cache:build(xdg_pipe_menu_scanner:data_dirs())
end,
io:put_chars(Menu).
from_daemon() ->
- Path = er_xdg_pipe_menu_socket:socket_path(),
+ Path = xdg_pipe_menu_socket:socket_path(),
case gen_tcp:connect({local, Path}, 0, [binary, {active, false}], ?CONNECT_TIMEOUT_MS) of
{ok, Socket} ->
Result = recv_all(Socket, []),
diff --git a/src/er_xdg_pipe_menu_desktop_entry.erl b/src/xdg_pipe_menu_desktop_entry.erl
index 9a71013..62adaf1 100644
--- a/src/er_xdg_pipe_menu_desktop_entry.erl
+++ b/src/xdg_pipe_menu_desktop_entry.erl
@@ -9,9 +9,9 @@
%% @end
%%%-------------------------------------------------------------------
--module(er_xdg_pipe_menu_desktop_entry).
+-module(xdg_pipe_menu_desktop_entry).
--include("er_xdg_pipe_menu.hrl").
+-include("xdg_pipe_menu.hrl").
-export([parse_file/1, parse/1]).
diff --git a/src/er_xdg_pipe_menu_renderer.erl b/src/xdg_pipe_menu_renderer.erl
index f89d868..c94fe83 100644
--- a/src/er_xdg_pipe_menu_renderer.erl
+++ b/src/xdg_pipe_menu_renderer.erl
@@ -12,9 +12,9 @@
%% @end
%%%-------------------------------------------------------------------
--module(er_xdg_pipe_menu_renderer).
+-module(xdg_pipe_menu_renderer).
--include("er_xdg_pipe_menu.hrl").
+-include("xdg_pipe_menu.hrl").
-export([render/1]).
diff --git a/src/er_xdg_pipe_menu_scanner.erl b/src/xdg_pipe_menu_scanner.erl
index 131b4f6..44c0a59 100644
--- a/src/er_xdg_pipe_menu_scanner.erl
+++ b/src/xdg_pipe_menu_scanner.erl
@@ -12,7 +12,7 @@
%% @end
%%%-------------------------------------------------------------------
--module(er_xdg_pipe_menu_scanner).
+-module(xdg_pipe_menu_scanner).
-export([data_dirs/0, find_desktop_files/0, find_desktop_files/1]).
diff --git a/src/er_xdg_pipe_menu_socket.erl b/src/xdg_pipe_menu_socket.erl
index 1bcca91..1bfde52 100644
--- a/src/er_xdg_pipe_menu_socket.erl
+++ b/src/xdg_pipe_menu_socket.erl
@@ -2,12 +2,12 @@
%% @doc Serves the cached menu over a Unix domain socket.
%%
%% Connecting to the socket *is* the request: each accepted connection
-%% is handed the current `er_xdg_pipe_menu_cache:get_menu/0' binary and
+%% is handed the current `xdg_pipe_menu_cache:get_menu/0' binary and
%% closed. There is no request payload to parse.
%% @end
%%%-------------------------------------------------------------------
--module(er_xdg_pipe_menu_socket).
+-module(xdg_pipe_menu_socket).
-export([start_link/0, socket_path/0]).
-export([init/1]).
@@ -18,15 +18,15 @@ start_link() ->
-spec socket_path() -> file:filename_all().
socket_path() ->
- case application:get_env(er_xdg_pipe_menu, socket_path) of
+ case application:get_env(xdg_pipe_menu, socket_path) of
{ok, Path} -> Path;
undefined -> default_socket_path()
end.
default_socket_path() ->
case env("XDG_RUNTIME_DIR") of
- undefined -> filename:join("/tmp", "er_xdg_pipe_menu-" ++ os:getenv("USER", "unknown") ++ ".sock");
- Dir -> filename:join(Dir, "er_xdg_pipe_menu.sock")
+ undefined -> filename:join("/tmp", "xdg_pipe_menu-" ++ os:getenv("USER", "unknown") ++ ".sock");
+ Dir -> filename:join(Dir, "xdg_pipe_menu.sock")
end.
env(Name) ->
@@ -62,5 +62,5 @@ accept_loop(Listen) ->
end.
serve(Socket) ->
- gen_tcp:send(Socket, er_xdg_pipe_menu_cache:get_menu()),
+ gen_tcp:send(Socket, xdg_pipe_menu_cache:get_menu()),
gen_tcp:close(Socket).
diff --git a/src/er_xdg_pipe_menu_sup.erl b/src/xdg_pipe_menu_sup.erl
index 1916c0b..a4d2828 100644
--- a/src/er_xdg_pipe_menu_sup.erl
+++ b/src/xdg_pipe_menu_sup.erl
@@ -1,9 +1,9 @@
%%%-------------------------------------------------------------------
-%% @doc er_xdg_pipe_menu top level supervisor.
+%% @doc xdg_pipe_menu top level supervisor.
%% @end
%%%-------------------------------------------------------------------
--module(er_xdg_pipe_menu_sup).
+-module(xdg_pipe_menu_sup).
-behaviour(supervisor).
@@ -32,9 +32,9 @@ init([]) ->
period => 10
},
ChildSpecs = [
- #{id => er_xdg_pipe_menu_cache, start => {er_xdg_pipe_menu_cache, start_link, []}},
- #{id => er_xdg_pipe_menu_watcher, start => {er_xdg_pipe_menu_watcher, start_link, []}},
- #{id => er_xdg_pipe_menu_socket, start => {er_xdg_pipe_menu_socket, start_link, []}}
+ #{id => xdg_pipe_menu_cache, start => {xdg_pipe_menu_cache, start_link, []}},
+ #{id => xdg_pipe_menu_watcher, start => {xdg_pipe_menu_watcher, start_link, []}},
+ #{id => xdg_pipe_menu_socket, start => {xdg_pipe_menu_socket, start_link, []}}
],
{ok, {SupFlags, ChildSpecs}}.
diff --git a/src/er_xdg_pipe_menu_watcher.erl b/src/xdg_pipe_menu_watcher.erl
index d8c407d..64fb2c6 100644
--- a/src/er_xdg_pipe_menu_watcher.erl
+++ b/src/xdg_pipe_menu_watcher.erl
@@ -2,7 +2,7 @@
%% @doc Watches the XDG application directories for changes.
%%
%% Starts one `fs' (native inotify) watch per existing directory
-%% returned by `er_xdg_pipe_menu_scanner:data_dirs/0' and subscribes
+%% returned by `xdg_pipe_menu_scanner:data_dirs/0' and subscribes
%% to its file events. On any event, a debounce timer is (re)started;
%% once it fires with no further events in the window, the menu cache
%% is invalidated so the next request gets a freshly rebuilt menu.
@@ -13,7 +13,7 @@
%% @end
%%%-------------------------------------------------------------------
--module(er_xdg_pipe_menu_watcher).
+-module(xdg_pipe_menu_watcher).
-behaviour(gen_server).
@@ -28,12 +28,12 @@ start_link() ->
init([]) ->
warn_if_inotifywait_missing(),
- Dirs = [D || D <- er_xdg_pipe_menu_scanner:data_dirs(), filelib:is_dir(D)],
+ Dirs = [D || D <- xdg_pipe_menu_scanner:data_dirs(), filelib:is_dir(D)],
lists:foreach(fun watch/1, lists:zip(lists:seq(1, length(Dirs)), Dirs)),
{ok, #{timer => undefined}}.
watch({Index, Dir}) ->
- Name = list_to_atom("er_xdg_pipe_menu_fs_" ++ integer_to_list(Index)),
+ Name = list_to_atom("xdg_pipe_menu_fs_" ++ integer_to_list(Index)),
case fs:start_link(Name, Dir) of
{ok, _Pid} -> fs:subscribe(Name);
{error, Reason} -> log_watch_failure(Dir, Reason)
@@ -46,7 +46,7 @@ warn_if_inotifywait_missing() ->
case os:find_executable("inotifywait") of
false ->
error_logger:warning_msg(
- "er_xdg_pipe_menu_watcher: 'inotifywait' not found on PATH "
+ "xdg_pipe_menu_watcher: 'inotifywait' not found on PATH "
"(install inotify-tools) -- desktop file changes won't be "
"picked up until the daemon is restarted~n",
[]
@@ -57,7 +57,7 @@ warn_if_inotifywait_missing() ->
log_watch_failure(Dir, Reason) ->
error_logger:warning_msg(
- "er_xdg_pipe_menu_watcher: failed to watch ~p: ~p~n", [Dir, Reason]
+ "xdg_pipe_menu_watcher: failed to watch ~p: ~p~n", [Dir, Reason]
).
handle_call(_Request, _From, State) ->
@@ -69,7 +69,7 @@ handle_cast(_Msg, State) ->
handle_info({_Pid, {fs, file_event}, {_Path, _Events}}, State) ->
{noreply, reset_debounce(State)};
handle_info(debounce_fire, State) ->
- er_xdg_pipe_menu_cache:invalidate(),
+ xdg_pipe_menu_cache:invalidate(),
{noreply, State#{timer => undefined}};
handle_info(_Info, State) ->
{noreply, State}.
@@ -82,4 +82,4 @@ reset_debounce(#{timer := Timer} = State) ->
State#{timer => erlang:send_after(debounce_ms(), self(), debounce_fire)}.
debounce_ms() ->
- application:get_env(er_xdg_pipe_menu, debounce_ms, ?DEFAULT_DEBOUNCE_MS).
+ application:get_env(xdg_pipe_menu, debounce_ms, ?DEFAULT_DEBOUNCE_MS).
diff --git a/test/er_xdg_pipe_menu_cache_tests.erl b/test/xdg_pipe_menu_cache_tests.erl
index a1d1440..4b9dfbb 100644
--- a/test/er_xdg_pipe_menu_cache_tests.erl
+++ b/test/xdg_pipe_menu_cache_tests.erl
@@ -1,18 +1,18 @@
--module(er_xdg_pipe_menu_cache_tests).
+-module(xdg_pipe_menu_cache_tests).
-include_lib("eunit/include/eunit.hrl").
build_renders_entries_from_dir_test() ->
Dir = mk_tmp_dir(),
write_desktop(Dir, "foo.desktop", "Foo", "foo"),
- Menu = er_xdg_pipe_menu_cache:build([Dir]),
+ Menu = xdg_pipe_menu_cache:build([Dir]),
ok = rm_rf(Dir),
?assert(binary:match(Menu, <<"Foo">>) =/= nomatch).
build_groups_by_category_test() ->
Dir = mk_tmp_dir(),
write_desktop(Dir, "foo.desktop", "Foo", "foo", "Utility"),
- Menu = er_xdg_pipe_menu_cache:build([Dir]),
+ Menu = xdg_pipe_menu_cache:build([Dir]),
ok = rm_rf(Dir),
?assert(binary:match(Menu, <<"label=\"Utility\"">>) =/= nomatch).
@@ -23,7 +23,7 @@ build_skips_hidden_entries_test() ->
filename:join(Dir, "hidden.desktop"),
<<"[Desktop Entry]\nName=Hidden\nExec=hidden\nNoDisplay=true\n">>
),
- Menu = er_xdg_pipe_menu_cache:build([Dir]),
+ Menu = xdg_pipe_menu_cache:build([Dir]),
ok = rm_rf(Dir),
?assert(binary:match(Menu, <<"Visible">>) =/= nomatch),
?assertEqual(nomatch, binary:match(Menu, <<"Hidden">>)).
@@ -32,7 +32,7 @@ build_skips_unparseable_files_without_failing_test() ->
Dir = mk_tmp_dir(),
write_desktop(Dir, "good.desktop", "Good", "good"),
ok = file:write_file(filename:join(Dir, "bad.desktop"), <<"[Desktop Entry]\nExec=bad\n">>),
- Menu = er_xdg_pipe_menu_cache:build([Dir]),
+ Menu = xdg_pipe_menu_cache:build([Dir]),
ok = rm_rf(Dir),
?assert(binary:match(Menu, <<"Good">>) =/= nomatch).
@@ -41,7 +41,7 @@ build_skips_missing_dirs_test() ->
<<"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<openbox_pipe_menu>\n"
"</openbox_pipe_menu>\n">>,
- er_xdg_pipe_menu_cache:build(["/does-not-exist"])
+ xdg_pipe_menu_cache:build(["/does-not-exist"])
).
gen_server_serves_and_invalidates_test() ->
@@ -52,13 +52,13 @@ gen_server_serves_and_invalidates_test() ->
with_env(
[{"XDG_DATA_HOME", Root}, {"XDG_DATA_DIRS", "/does-not-exist-eunit"}],
fun() ->
- {ok, Pid} = er_xdg_pipe_menu_cache:start_link(),
- Menu1 = er_xdg_pipe_menu_cache:get_menu(),
+ {ok, Pid} = xdg_pipe_menu_cache:start_link(),
+ Menu1 = xdg_pipe_menu_cache:get_menu(),
?assert(binary:match(Menu1, <<"Foo">>) =/= nomatch),
write_desktop(AppDir, "bar.desktop", "Bar", "bar"),
- ok = er_xdg_pipe_menu_cache:invalidate(),
- Menu2 = er_xdg_pipe_menu_cache:get_menu(),
+ ok = xdg_pipe_menu_cache:invalidate(),
+ Menu2 = xdg_pipe_menu_cache:get_menu(),
stop(Pid),
?assert(binary:match(Menu2, <<"Bar">>) =/= nomatch)
end
diff --git a/test/er_xdg_pipe_menu_desktop_entry_tests.erl b/test/xdg_pipe_menu_desktop_entry_tests.erl
index bcea976..a55cd67 100644
--- a/test/er_xdg_pipe_menu_desktop_entry_tests.erl
+++ b/test/xdg_pipe_menu_desktop_entry_tests.erl
@@ -1,7 +1,7 @@
--module(er_xdg_pipe_menu_desktop_entry_tests).
+-module(xdg_pipe_menu_desktop_entry_tests).
-include_lib("eunit/include/eunit.hrl").
--include("er_xdg_pipe_menu.hrl").
+-include("xdg_pipe_menu.hrl").
basic_entry_test() ->
Bin = <<
@@ -15,7 +15,7 @@ basic_entry_test() ->
{ok, #desktop_entry{
name = <<"Firefox">>, exec = <<"firefox">>, icon = <<"firefox">>, categories = [], hidden = false
}},
- er_xdg_pipe_menu_desktop_entry:parse(Bin)
+ xdg_pipe_menu_desktop_entry:parse(Bin)
).
icon_is_optional_test() ->
@@ -26,7 +26,7 @@ icon_is_optional_test() ->
>>,
?assertEqual(
{ok, #desktop_entry{name = <<"Foo">>, exec = <<"foo">>, icon = undefined, categories = [], hidden = false}},
- er_xdg_pipe_menu_desktop_entry:parse(Bin)
+ xdg_pipe_menu_desktop_entry:parse(Bin)
).
categories_are_split_on_semicolon_test() ->
@@ -36,12 +36,12 @@ categories_are_split_on_semicolon_test() ->
"Exec=foo\n"
"Categories=Utility;Development;\n"
>>,
- {ok, Entry} = er_xdg_pipe_menu_desktop_entry:parse(Bin),
+ {ok, Entry} = xdg_pipe_menu_desktop_entry:parse(Bin),
?assertEqual([<<"Utility">>, <<"Development">>], Entry#desktop_entry.categories).
categories_is_empty_list_when_absent_test() ->
Bin = <<"[Desktop Entry]\nName=Foo\nExec=foo\n">>,
- {ok, Entry} = er_xdg_pipe_menu_desktop_entry:parse(Bin),
+ {ok, Entry} = xdg_pipe_menu_desktop_entry:parse(Bin),
?assertEqual([], Entry#desktop_entry.categories).
repeated_category_separators_are_ignored_test() ->
@@ -51,16 +51,16 @@ repeated_category_separators_are_ignored_test() ->
"Exec=foo\n"
"Categories=Utility;;Development\n"
>>,
- {ok, Entry} = er_xdg_pipe_menu_desktop_entry:parse(Bin),
+ {ok, Entry} = xdg_pipe_menu_desktop_entry:parse(Bin),
?assertEqual([<<"Utility">>, <<"Development">>], Entry#desktop_entry.categories).
missing_name_test() ->
Bin = <<"[Desktop Entry]\nExec=foo\n">>,
- ?assertEqual({error, missing_name}, er_xdg_pipe_menu_desktop_entry:parse(Bin)).
+ ?assertEqual({error, missing_name}, xdg_pipe_menu_desktop_entry:parse(Bin)).
missing_exec_test() ->
Bin = <<"[Desktop Entry]\nName=Foo\n">>,
- ?assertEqual({error, missing_exec}, er_xdg_pipe_menu_desktop_entry:parse(Bin)).
+ ?assertEqual({error, missing_exec}, xdg_pipe_menu_desktop_entry:parse(Bin)).
ignores_other_groups_test() ->
Bin = <<
@@ -74,7 +74,7 @@ ignores_other_groups_test() ->
>>,
?assertEqual(
{ok, #desktop_entry{name = <<"Foo">>, exec = <<"foo">>, icon = undefined, categories = [], hidden = false}},
- er_xdg_pipe_menu_desktop_entry:parse(Bin)
+ xdg_pipe_menu_desktop_entry:parse(Bin)
).
ignores_comments_and_blank_lines_test() ->
@@ -89,7 +89,7 @@ ignores_comments_and_blank_lines_test() ->
>>,
?assertEqual(
{ok, #desktop_entry{name = <<"Foo">>, exec = <<"foo">>, icon = undefined, categories = [], hidden = false}},
- er_xdg_pipe_menu_desktop_entry:parse(Bin)
+ xdg_pipe_menu_desktop_entry:parse(Bin)
).
strips_multiple_field_codes_test() ->
@@ -100,7 +100,7 @@ strips_multiple_field_codes_test() ->
>>,
?assertEqual(
{ok, #desktop_entry{name = <<"Foo">>, exec = <<"foo --flag">>, icon = undefined, categories = [], hidden = false}},
- er_xdg_pipe_menu_desktop_entry:parse(Bin)
+ xdg_pipe_menu_desktop_entry:parse(Bin)
).
literal_percent_is_unescaped_test() ->
@@ -113,39 +113,39 @@ literal_percent_is_unescaped_test() ->
{ok, #desktop_entry{
name = <<"Foo">>, exec = <<"foo --progress=%">>, icon = undefined, categories = [], hidden = false
}},
- er_xdg_pipe_menu_desktop_entry:parse(Bin)
+ xdg_pipe_menu_desktop_entry:parse(Bin)
).
unescapes_value_test() ->
Bin = <<"[Desktop Entry]\nName=Foo\\sBar\nExec=foo\n">>,
?assertEqual(
{ok, #desktop_entry{name = <<"Foo Bar">>, exec = <<"foo">>, icon = undefined, categories = [], hidden = false}},
- er_xdg_pipe_menu_desktop_entry:parse(Bin)
+ xdg_pipe_menu_desktop_entry:parse(Bin)
).
no_display_is_hidden_test() ->
Bin = <<"[Desktop Entry]\nName=Foo\nExec=foo\nNoDisplay=true\n">>,
- {ok, Entry} = er_xdg_pipe_menu_desktop_entry:parse(Bin),
+ {ok, Entry} = xdg_pipe_menu_desktop_entry:parse(Bin),
?assertEqual(true, Entry#desktop_entry.hidden).
hidden_key_is_hidden_test() ->
Bin = <<"[Desktop Entry]\nName=Foo\nExec=foo\nHidden=true\n">>,
- {ok, Entry} = er_xdg_pipe_menu_desktop_entry:parse(Bin),
+ {ok, Entry} = xdg_pipe_menu_desktop_entry:parse(Bin),
?assertEqual(true, Entry#desktop_entry.hidden).
non_application_type_is_hidden_test() ->
Bin = <<"[Desktop Entry]\nName=Foo\nExec=foo\nType=Link\n">>,
- {ok, Entry} = er_xdg_pipe_menu_desktop_entry:parse(Bin),
+ {ok, Entry} = xdg_pipe_menu_desktop_entry:parse(Bin),
?assertEqual(true, Entry#desktop_entry.hidden).
application_type_is_not_hidden_test() ->
Bin = <<"[Desktop Entry]\nName=Foo\nExec=foo\nType=Application\n">>,
- {ok, Entry} = er_xdg_pipe_menu_desktop_entry:parse(Bin),
+ {ok, Entry} = xdg_pipe_menu_desktop_entry:parse(Bin),
?assertEqual(false, Entry#desktop_entry.hidden).
missing_type_is_not_hidden_test() ->
Bin = <<"[Desktop Entry]\nName=Foo\nExec=foo\n">>,
- {ok, Entry} = er_xdg_pipe_menu_desktop_entry:parse(Bin),
+ {ok, Entry} = xdg_pipe_menu_desktop_entry:parse(Bin),
?assertEqual(false, Entry#desktop_entry.hidden).
false_values_are_not_hidden_test() ->
@@ -157,13 +157,13 @@ false_values_are_not_hidden_test() ->
"Hidden=false\n"
"Type=Application\n"
>>,
- {ok, Entry} = er_xdg_pipe_menu_desktop_entry:parse(Bin),
+ {ok, Entry} = xdg_pipe_menu_desktop_entry:parse(Bin),
?assertEqual(false, Entry#desktop_entry.hidden).
parse_file_test() ->
Path = filename:join(test_tmp_dir(), "eunit-desktop-entry-test.desktop"),
ok = file:write_file(Path, <<"[Desktop Entry]\nName=Foo\nExec=foo\n">>),
- Result = er_xdg_pipe_menu_desktop_entry:parse_file(Path),
+ Result = xdg_pipe_menu_desktop_entry:parse_file(Path),
ok = file:delete(Path),
?assertEqual(
{ok, #desktop_entry{name = <<"Foo">>, exec = <<"foo">>, icon = undefined, categories = [], hidden = false}},
@@ -173,7 +173,7 @@ parse_file_test() ->
parse_file_missing_test() ->
?assertEqual(
{error, enoent},
- er_xdg_pipe_menu_desktop_entry:parse_file("/nonexistent/does-not-exist.desktop")
+ xdg_pipe_menu_desktop_entry:parse_file("/nonexistent/does-not-exist.desktop")
).
test_tmp_dir() ->
diff --git a/test/er_xdg_pipe_menu_renderer_tests.erl b/test/xdg_pipe_menu_renderer_tests.erl
index 7273625..6d632cf 100644
--- a/test/er_xdg_pipe_menu_renderer_tests.erl
+++ b/test/xdg_pipe_menu_renderer_tests.erl
@@ -1,8 +1,8 @@
--module(er_xdg_pipe_menu_renderer_tests).
+-module(xdg_pipe_menu_renderer_tests).
-include_lib("eunit/include/eunit.hrl").
-include_lib("xmerl/include/xmerl.hrl").
--include("er_xdg_pipe_menu.hrl").
+-include("xdg_pipe_menu.hrl").
entry(Name, Exec, Icon) ->
entry(Name, Exec, Icon, []).
@@ -20,11 +20,11 @@ empty_list_renders_empty_menu_test() ->
<<"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<openbox_pipe_menu>\n"
"</openbox_pipe_menu>\n">>,
- er_xdg_pipe_menu_renderer:render([])
+ xdg_pipe_menu_renderer:render([])
).
single_entry_with_icon_test() ->
- Rendered = er_xdg_pipe_menu_renderer:render([
+ Rendered = xdg_pipe_menu_renderer:render([
entry(<<"Firefox">>, <<"firefox">>, <<"firefox">>, [<<"Network">>])
]),
?assertEqual(
@@ -42,7 +42,7 @@ single_entry_with_icon_test() ->
).
entry_without_icon_omits_icon_attr_test() ->
- Rendered = er_xdg_pipe_menu_renderer:render([
+ Rendered = xdg_pipe_menu_renderer:render([
entry(<<"Foo">>, <<"foo">>, undefined, [<<"Utility">>])
]),
?assertEqual(
@@ -60,7 +60,7 @@ entry_without_icon_omits_icon_attr_test() ->
).
entries_without_categories_go_in_other_submenu_test() ->
- Rendered = er_xdg_pipe_menu_renderer:render([entry(<<"Foo">>, <<"foo">>, undefined)]),
+ Rendered = xdg_pipe_menu_renderer:render([entry(<<"Foo">>, <<"foo">>, undefined)]),
?assertEqual(
<<"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<openbox_pipe_menu>\n"
@@ -80,13 +80,13 @@ hidden_entries_are_dropped_test() ->
entry(<<"Visible">>, <<"visible">>, undefined, [<<"Utility">>]),
entry(<<"Invisible">>, <<"invisible">>, undefined, [<<"Utility">>], true)
],
- Rendered = er_xdg_pipe_menu_renderer:render(Entries),
+ Rendered = xdg_pipe_menu_renderer:render(Entries),
?assertNot(binary:match(Rendered, <<"Invisible">>) =/= nomatch),
?assert(binary:match(Rendered, <<"Visible">>) =/= nomatch).
hidden_entry_leaves_no_empty_submenu_test() ->
Entries = [entry(<<"Invisible">>, <<"invisible">>, undefined, [<<"Utility">>], true)],
- Rendered = er_xdg_pipe_menu_renderer:render(Entries),
+ Rendered = xdg_pipe_menu_renderer:render(Entries),
?assertNot(binary:match(Rendered, <<"Utility">>) =/= nomatch).
entries_are_sorted_case_insensitively_within_a_submenu_test() ->
@@ -95,7 +95,7 @@ entries_are_sorted_case_insensitively_within_a_submenu_test() ->
entry(<<"Alpha">>, <<"alpha">>, undefined, [<<"Utility">>]),
entry(<<"beta">>, <<"beta">>, undefined, [<<"Utility">>])
],
- Rendered = er_xdg_pipe_menu_renderer:render(Entries),
+ Rendered = xdg_pipe_menu_renderer:render(Entries),
Positions = [
element(1, binary:match(Rendered, <<"label=\"Alpha\"">>)),
element(1, binary:match(Rendered, <<"label=\"beta\"">>)),
@@ -109,7 +109,7 @@ submenus_are_sorted_case_insensitively_test() ->
entry(<<"Alpha App">>, <<"alpha">>, undefined, [<<"Alpha">>]),
entry(<<"Beta App">>, <<"beta">>, undefined, [<<"beta">>])
],
- Rendered = er_xdg_pipe_menu_renderer:render(Entries),
+ Rendered = xdg_pipe_menu_renderer:render(Entries),
Positions = [
element(1, binary:match(Rendered, <<"label=\"Alpha\"">>)),
element(1, binary:match(Rendered, <<"label=\"beta\"">>)),
@@ -119,7 +119,7 @@ submenus_are_sorted_case_insensitively_test() ->
entry_with_multiple_categories_appears_in_each_submenu_test() ->
Entries = [entry(<<"Foo">>, <<"foo">>, undefined, [<<"Utility">>, <<"Development">>])],
- Rendered = er_xdg_pipe_menu_renderer:render(Entries),
+ Rendered = xdg_pipe_menu_renderer:render(Entries),
{Doc, _Rest} = xmerl_scan:string(binary_to_list(Rendered)),
Menus = [E || E = #xmlElement{name = menu} <- Doc#xmlElement.content],
?assertEqual([<<"Development">>, <<"Utility">>], lists:sort([menu_id(M) || M <- Menus])),
@@ -133,7 +133,7 @@ escapes_special_characters_test() ->
<<"icon\"&<>">>,
[<<"Foo & <Bar>">>]
),
- Rendered = er_xdg_pipe_menu_renderer:render([Entry]),
+ Rendered = xdg_pipe_menu_renderer:render([Entry]),
?assertEqual(
<<"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<openbox_pipe_menu>\n"
@@ -153,7 +153,7 @@ output_is_well_formed_xml_test() ->
entry(<<"Firefox">>, <<"firefox">>, <<"firefox">>, [<<"Network">>]),
entry(<<"Foo & Bar">>, <<"foo">>, undefined, [<<"Network">>])
],
- Rendered = er_xdg_pipe_menu_renderer:render(Entries),
+ Rendered = xdg_pipe_menu_renderer:render(Entries),
{Doc, _Rest} = xmerl_scan:string(binary_to_list(Rendered)),
?assertEqual(openbox_pipe_menu, Doc#xmlElement.name),
Menus = [E || E = #xmlElement{name = menu} <- Doc#xmlElement.content],
diff --git a/test/er_xdg_pipe_menu_scanner_tests.erl b/test/xdg_pipe_menu_scanner_tests.erl
index 3f93496..fa321ad 100644
--- a/test/er_xdg_pipe_menu_scanner_tests.erl
+++ b/test/xdg_pipe_menu_scanner_tests.erl
@@ -1,4 +1,4 @@
--module(er_xdg_pipe_menu_scanner_tests).
+-module(xdg_pipe_menu_scanner_tests).
-include_lib("eunit/include/eunit.hrl").
@@ -12,7 +12,7 @@ data_dirs_defaults_test() ->
"/usr/local/share/applications",
"/usr/share/applications"
],
- er_xdg_pipe_menu_scanner:data_dirs()
+ xdg_pipe_menu_scanner:data_dirs()
)
end
).
@@ -27,7 +27,7 @@ data_dirs_honors_xdg_data_home_test() ->
"/usr/local/share/applications",
"/usr/share/applications"
],
- er_xdg_pipe_menu_scanner:data_dirs()
+ xdg_pipe_menu_scanner:data_dirs()
)
end
).
@@ -46,7 +46,7 @@ data_dirs_honors_xdg_data_dirs_test() ->
"/opt/flatpak/share/applications",
"/var/lib/flatpak/exports/share/applications"
],
- er_xdg_pipe_menu_scanner:data_dirs()
+ xdg_pipe_menu_scanner:data_dirs()
)
end
).
@@ -61,7 +61,7 @@ data_dirs_treats_empty_as_unset_test() ->
"/usr/local/share/applications",
"/usr/share/applications"
],
- er_xdg_pipe_menu_scanner:data_dirs()
+ xdg_pipe_menu_scanner:data_dirs()
)
end
).
@@ -72,7 +72,7 @@ data_dirs_ignores_empty_segments_in_xdg_data_dirs_test() ->
fun() ->
?assertEqual(
["/home/testuser/.local/share/applications", "/a/applications", "/b/applications"],
- er_xdg_pipe_menu_scanner:data_dirs()
+ xdg_pipe_menu_scanner:data_dirs()
)
end
).
@@ -83,7 +83,7 @@ data_dirs_skips_data_home_without_xdg_data_home_or_home_test() ->
fun() ->
?assertEqual(
["/usr/local/share/applications", "/usr/share/applications"],
- er_xdg_pipe_menu_scanner:data_dirs()
+ xdg_pipe_menu_scanner:data_dirs()
)
end
).
@@ -96,7 +96,7 @@ find_desktop_files_recurses_and_skips_missing_dirs_test() ->
ok = file:write_file(filename:join(SubDir, "nested.desktop"), <<"[Desktop Entry]\n">>),
ok = file:write_file(filename:join(Root, "not-a-desktop-file.txt"), <<"ignore me">>),
Missing = filename:join(Root, "does-not-exist"),
- Found = er_xdg_pipe_menu_scanner:find_desktop_files([Root, Missing]),
+ Found = xdg_pipe_menu_scanner:find_desktop_files([Root, Missing]),
ok = rm_rf(Root),
?assertEqual(
lists:sort([filename:join(Root, "top.desktop"), filename:join(SubDir, "nested.desktop")]),
@@ -104,7 +104,7 @@ find_desktop_files_recurses_and_skips_missing_dirs_test() ->
).
find_desktop_files_empty_for_no_dirs_test() ->
- ?assertEqual([], er_xdg_pipe_menu_scanner:find_desktop_files([])).
+ ?assertEqual([], xdg_pipe_menu_scanner:find_desktop_files([])).
%% -- helpers ----------------------------------------------------------------
diff --git a/test/er_xdg_pipe_menu_socket_tests.erl b/test/xdg_pipe_menu_socket_tests.erl
index 08a4b56..91cd3e4 100644
--- a/test/er_xdg_pipe_menu_socket_tests.erl
+++ b/test/xdg_pipe_menu_socket_tests.erl
@@ -1,4 +1,4 @@
--module(er_xdg_pipe_menu_socket_tests).
+-module(xdg_pipe_menu_socket_tests).
-include_lib("eunit/include/eunit.hrl").
@@ -10,19 +10,19 @@ serves_the_cached_menu_test() ->
SockPath = filename:join(
test_tmp_dir(), "eunit-socket-" ++ integer_to_list(erlang:unique_integer([positive]))
),
- PrevSockPath = application:get_env(er_xdg_pipe_menu, socket_path),
- application:set_env(er_xdg_pipe_menu, socket_path, SockPath),
+ PrevSockPath = application:get_env(xdg_pipe_menu, socket_path),
+ application:set_env(xdg_pipe_menu, socket_path, SockPath),
with_env(
[{"XDG_DATA_HOME", Root}, {"XDG_DATA_DIRS", "/does-not-exist-eunit"}],
fun() ->
- {ok, CachePid} = er_xdg_pipe_menu_cache:start_link(),
- {ok, SocketPid} = er_xdg_pipe_menu_socket:start_link(),
+ {ok, CachePid} = xdg_pipe_menu_cache:start_link(),
+ {ok, SocketPid} = xdg_pipe_menu_socket:start_link(),
{ok, Conn} = gen_tcp:connect({local, SockPath}, 0, [binary, {active, false}], 1000),
Received = recv_all(Conn, []),
gen_tcp:close(Conn),
- Expected = er_xdg_pipe_menu_cache:get_menu(),
+ Expected = xdg_pipe_menu_cache:get_menu(),
stop(SocketPid),
stop(CachePid),
?assertEqual(Expected, Received),
@@ -31,7 +31,7 @@ serves_the_cached_menu_test() ->
),
_ = file:delete(SockPath),
ok = rm_rf(Root),
- restore_env(er_xdg_pipe_menu, socket_path, PrevSockPath).
+ restore_env(xdg_pipe_menu, socket_path, PrevSockPath).
%% -- helpers ----------------------------------------------------------------
diff --git a/test/er_xdg_pipe_menu_watcher_tests.erl b/test/xdg_pipe_menu_watcher_tests.erl
index 6754f24..cca5cc2 100644
--- a/test/er_xdg_pipe_menu_watcher_tests.erl
+++ b/test/xdg_pipe_menu_watcher_tests.erl
@@ -1,4 +1,4 @@
--module(er_xdg_pipe_menu_watcher_tests).
+-module(xdg_pipe_menu_watcher_tests).
-include_lib("eunit/include/eunit.hrl").
@@ -11,26 +11,26 @@ debounced_event_invalidates_cache_test() ->
AppDir = filename:join(Root, "applications"),
ok = file:make_dir(AppDir),
write_desktop(AppDir, "foo.desktop", "Foo", "foo"),
- PrevDebounce = application:get_env(er_xdg_pipe_menu, debounce_ms),
- application:set_env(er_xdg_pipe_menu, debounce_ms, 20),
+ PrevDebounce = application:get_env(xdg_pipe_menu, debounce_ms),
+ application:set_env(xdg_pipe_menu, debounce_ms, 20),
with_env(
[{"XDG_DATA_HOME", Root}, {"XDG_DATA_DIRS", "/does-not-exist-eunit"}],
fun() ->
- {ok, CachePid} = er_xdg_pipe_menu_cache:start_link(),
- {ok, WatcherPid} = er_xdg_pipe_menu_watcher:start_link(),
+ {ok, CachePid} = xdg_pipe_menu_cache:start_link(),
+ {ok, WatcherPid} = xdg_pipe_menu_watcher:start_link(),
write_desktop(AppDir, "bar.desktop", "Bar", "bar"),
WatcherPid ! {self(), {fs, file_event}, {"dummy", [modified]}},
timer:sleep(100),
- Menu = er_xdg_pipe_menu_cache:get_menu(),
+ Menu = xdg_pipe_menu_cache:get_menu(),
stop(WatcherPid),
stop(CachePid),
?assert(binary:match(Menu, <<"Bar">>) =/= nomatch)
end
),
ok = rm_rf(Root),
- restore_env(er_xdg_pipe_menu, debounce_ms, PrevDebounce).
+ restore_env(xdg_pipe_menu, debounce_ms, PrevDebounce).
%% -- helpers ----------------------------------------------------------------