Changeset 57 for trunk


Ignore:
Timestamp:
07/07/09 04:17:29 (3 years ago)
Author:
dom
Message:

directory_watcher now adds type info when a file or directory is lost

Location:
trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/directory_watcher.erl

    r56 r57  
    105105    compare (Pid, Xs, Ys); 
    106106compare (Pid, [X, {F, V} | Xs], [{F, W} | Ys]) -> 
    107     {Filename, _} = X, 
    108     report_lost (Pid, Filename), 
     107    report_lost (Pid, X), 
    109108    compare (Pid, [{F, V} | Xs], [{F, W} | Ys]); 
    110109compare (Pid, [{F, V} | Xs], [Y, {F, W} | Ys]) -> 
     
    117116    compare (Pid, [], Ys); 
    118117compare (Pid, [X | Xs], []) -> 
    119     {Filename, _} = X, 
    120     report_lost (Pid, Filename), 
     118    report_lost (Pid, X), 
    121119    compare (Pid, Xs, []); 
    122120compare (_, [], []) -> 
     
    126124    notify (Pid, {type (Filename), Filename, found}). 
    127125 
    128 report_lost (Pid, Filename) -> 
    129     notify (Pid, {unknown, Filename, lost}). 
     126report_lost (Pid, {Filename, directory}) -> 
     127    notify (Pid, {directory, Filename, lost}); 
     128report_lost (Pid, {Filename, {regular, _}}) -> 
     129    notify (Pid, {{file, filename: extension (Filename)}, Filename, lost}). 
    130130 
    131131report_changed (Pid, Filename) -> 
  • trunk/src/directory_watcher_test.erl

    r56 r57  
    1010-export ([bad_symlinks_are_ignored/0]). 
    1111-export ([recursive/0]). 
    12 -export([directories_can_be_removed/0]). 
    13 -export([directories_can_be_removed_when_recursive/0]). 
     12-export ([directories_can_be_removed/0]). 
     13-export ([directories_can_be_removed_when_recursive/0]). 
     14-export ([change_from_directory_to_file/0]). 
    1415 
    1516tests_from_empty () -> 
     
    4647directories_can_be_removed_when_recursive () -> 
    4748    ok = fixtures: use_tree (tree (), fun directories_can_be_removed_when_recursive/2). 
     49 
     50change_from_directory_to_file () -> 
     51    Tree = [{directory, "foo", []}], 
     52    ok = fixtures: use_tree (Tree, fun change_from_directory_to_file/2). 
    4853 
    4954tree () -> 
     
    6469    fixtures: delete_tree (Subdir),  
    6570    Watcher ! check, 
    66     {unknown, Subdir, lost} = receive_one (), 
     71    {directory, Subdir, lost} = receive_one (), 
    6772    ok. 
    6873 
     
    7479    Watcher ! check, 
    7580    File = filename: join (Subdir, "subsubfile.sub"), 
    76     [{unknown, File, lost}, {unknown, Subdir, lost}] = receive_all (), 
     81    [{{file, ".sub"}, File, lost}, {directory, Subdir, lost}] = receive_all (), 
    7782    ok. 
    7883 
     
    128133    ok = file: del_dir (Subdir), 
    129134    Watcher ! check, 
    130     {unknown, Subdir, lost} = receive_one (), 
     135    {directory, Subdir, lost} = receive_one (), 
    131136 
    132137    rewrite_same_data (Filename), 
     
    187192            Acc 
    188193    end. 
     194 
     195change_from_directory_to_file (Root, [{directory, Name, []}]) -> 
     196    ok. 
     197%%     Watcher = spawn_link (directory_watcher, init, [Root, self ()]), 
     198%%     receive_all (), 
     199%%     Path = filename: join (Root, Name), 
     200%%     ok = file: del_dir (Path), 
     201%%     ok = file: write_file (Path, list_to_binary ("hello")), 
     202%%     Watcher ! check, 
     203%%     [{directory, "Name", lost} 
Note: See TracChangeset for help on using the changeset viewer.