Skip to content

Commit 74ab167

Browse files
committed
Expanded API/arities for additional flexibility.
1 parent f74b96b commit 74ab167

File tree

7 files changed

+63
-38
lines changed

7 files changed

+63
-38
lines changed

.gitignore

+32
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,37 @@
11
deps
22
priv/mac_listener
33
*.d
4+
.DS_Store
5+
*.beam
6+
*.beam
7+
*.elc
8+
*.iml
49
*.o
10+
*.plt
11+
*.sublime-project
12+
*.sublime-workspace
13+
*.swo
14+
*.swp
15+
*~
16+
.\#*
17+
.erlang.cookie
18+
.eunit
19+
.idea
20+
.rebar/*
21+
.rebar3
22+
/.emacs.desktop
23+
/.emacs.desktop.lock
24+
\#*\#
25+
_*
26+
_build/*
27+
auto-save-list
28+
bin
29+
deps
530
ebin
31+
erl_crash.dump
32+
log
33+
logs
34+
rebar/*
35+
rebar3.crashdump
36+
tramp
37+
rebar.lock

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Shell got {<0.47.0>,
3838
### Sample Subscriber
3939

4040
```erlang
41-
> fs:start_looper(). % starts a sample process that logs events
41+
> fs_demo:start_looper(). % starts a sample process that logs events
4242
=INFO REPORT==== 28-Aug-2013::19:36:26 ===
4343
file_event: "/tank/proger/erlfsmon/src/4913" [closed,modified]
4444
```

include/const.hrl

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
-define(DEFAULT_NAME, default_fs).

src/fs.erl

+18-33
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
-module(fs).
22

33
-include_lib("kernel/include/file.hrl").
4+
-include_lib("fs/include/const.hrl").
45

5-
-export([start_link/1,
6-
start_link/2,
7-
subscribe/0,
8-
subscribe/1,
9-
known_events/0,
10-
known_events/1,
11-
start_looper/0,
12-
start_looper/1,
6+
-export([start_link/1, start_link/2,
7+
subscribe/0, subscribe/1, subscribe/2,
8+
known_events/0, known_events/1,
139
find_executable/2,
14-
path/0]).
10+
path/0, path/1]).
1511

1612
% sample subscriber
1713

@@ -22,41 +18,30 @@ start_link(Name, Path) ->
2218
FileHandler = name(Name, "file"),
2319
fs_sup:start_link(SupName, Name, FileHandler, Path).
2420

25-
subscribe() -> subscribe(default_fs).
21+
subscribe() -> subscribe(?DEFAULT_NAME).
2622

27-
subscribe(Name) ->
23+
subscribe(Name) -> subscribe(Name, self()).
24+
25+
subscribe(Name, Pid) ->
2826
gen_event:add_sup_handler(Name,
29-
{fs_event_bridge, self()},
30-
[self()]).
27+
{fs_event_bridge, Pid},
28+
[Pid]).
3129

3230
path() ->
33-
case application:get_env(fs, path) of
31+
path(application:get_env(fs, path)).
32+
33+
path(Path) ->
34+
case Path of
35+
undefined -> filename:absname("");
3436
{ok, P} -> filename:absname(P);
35-
undefined -> filename:absname("")
37+
P -> filename:absname(P)
3638
end.
3739

38-
known_events() -> known_events(default_fs).
40+
known_events() -> known_events(?DEFAULT_NAME).
3941

4042
known_events(Name) ->
4143
gen_server:call(name(Name, "file"), known_events).
4244

43-
start_looper() -> start_looper(default_fs).
44-
45-
start_looper(Name) ->
46-
spawn(fun () ->
47-
subscribe(Name),
48-
loop()
49-
end).
50-
51-
loop() ->
52-
receive
53-
{_Pid, {fs, file_event}, {Path, Flags}} ->
54-
error_logger:info_msg("file_event: ~p ~p",
55-
[Path, Flags]);
56-
_ -> ignore
57-
end,
58-
loop().
59-
6045
find_executable(Cmd, DepsPath) ->
6146
Executable =
6247
case priv_file(Cmd) of

src/fs_app.erl

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44

55
-export([start/2, stop/1]).
66

7+
-include_lib("fs/include/const.hrl").
8+
79
start(_StartType, _StartArgs) ->
810
case application:get_env(fs, backwards_compatible) of
911
{ok, false} -> {ok, self()};
10-
{ok, true} -> fs:start_link(default_fs)
12+
{ok, true} -> fs:start_link(?DEFAULT_NAME)
1113
end.
1214

1315
stop(_State) -> ok.

src/fs_demo.erl

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ start_looper() -> start_looper(?DEFAULT_NAME).
1111

1212
start_looper(Name) ->
1313
spawn(fun () ->
14-
subscribe(Name),
14+
fs:subscribe(Name),
1515
loop()
1616
end).
1717

src/fs_server.erl

+7-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,13 @@ start_link(Name, EventHandler, Backend, Path, Cwd) ->
2828
init([EventHandler, Backend, Path, Cwd]) ->
2929
{ok,
3030
#state{event_handler = EventHandler,
31-
port = Backend:start_port(Path, Cwd), path = Path,
32-
backend = Backend,cwd=Cwd,crashes=0}}.
31+
port = Backend:start_port(Path, Cwd),
32+
path = Path,
33+
backend = Backend,
34+
cwd=Cwd,
35+
crashes=0
36+
}
37+
}.
3338

3439
handle_call(known_events, _From,
3540
#state{backend = Backend} = State) ->

0 commit comments

Comments
 (0)