/**
* Monitor class - handles monitor managment for a large tree...
+ *
+ *
+ * This
*
* usage :
* x = new Monitor({
_this.onEvent(fm, f, of, event_type, uh);
}
- // if we are not at top level.. and there is a .git directory (it's a submodule .. ignore)
- if (depth > 1 && GLib.file_test(path + '/.git' , GLib.FileTest.IS_DIR)) {
- return;
- }
-
-
-
-
+
var f = Gio.file_new_for_path(path);
//var cancel = new Gio.Cancellable ();
if (depth > 0) {
// print("ADD path " + depth + ' ' + path);
}
// iterate children?
-
- if (GLib.file_test(path + '/.git' , GLib.FileTest.IS_DIR) && this.initRepo) {
+ // - this is not used.
+ //if (GLib.file_test(path + '/.git' , GLib.FileTest.IS_DIR) && this.initRepo) {
- this.initRepo(path);
- }
+ // this.initRepo(path);
+ //}
var file_enum = f.enumerate_children(
if (GLib.file_test(file.get_path(), GLib.FileTest.EXISTS)) {
var rp = imports.os.realpath(file.get_path());
-
return Gio.file_new_for_path(rp);
-
}
// file does not currently exist..
// check parent.
- var bn = file.basename();
+ var bn = file.get_basename();
var ar = file.get_path().split('/');
ar.pop();
var dirname = ar.join('/');
},
- onEvent : function(fm, f, of, event_type, uh)
+
+ onEvent : function(fm, f_orig, of_orig, event_type, uh)
{
if (this.paused) {
return;
}
-
- if (event_type != Gio.FileMonitorEvent.DELETED &&
- event_type != Gio.FileMonitorEvent.MOVED) {
- // it's not moved or deleted, and the file does not actually exist.
- if (!GLib.file_test(f.get_path(), GLib.FileTest.EXISTS)) {
- return;
- }
-
+ var f = this.realpath(f_orig);
-
- }
- var rp = imports.os.realpath(f.get_path());
-
- var can = rp ? Gio.file_new_for_path(rp) : f;
-
- print(event_type + " : " + can.get_path() + "\n");
+ var of = this.realpath(of_orig);
+
var src = {
- name : can.get_basename(),
- path : can.get_path(),
- dir : GLib.path_get_dirname(can.get_path())
+ name : f.get_basename(),
+ path : f.get_path(),
+ dir : GLib.path_get_dirname(f.get_path())
};
var dest = false;
if (of) {
- rp = imports.os.realpath(of.get_path());
- var can = rp ? Gio.file_new_for_path(rp) : of;
+
dest = {
- name : can.get_basename(),
- path : can.get_path(),
- dir : GLib.path_get_dirname(can.get_path())
+ name : of.get_basename(),
+ path : of.get_path(),
+ dir : GLib.path_get_dirname(of.get_path())
}
}
event_name = i;
}
}
- //print ("got event: " +event_name);
+
+ //print (JSON.stringify([event_name , f.get_path(), of ? of.get_path() : false ] ));
//print ("got src: " + src.toString());
//print ("got event: " + src.toString());
try {