Add links to gir files, and tidy up code
[gnome.introspection-doc-generator] / File.js
diff --git a/File.js b/File.js
index f0da9ff..29cff4a 100755 (executable)
--- a/File.js
+++ b/File.js
@@ -4,6 +4,20 @@ Gio = imports.gi.Gio;
 
 imports['String.js'].load(String);
 
+/**
+* @namespace File
+* 
+* Library to wrap GLib and Gio basic File related methods
+* 
+* usage:
+* 
+* File = import.File.File;
+* 
+* var contents = File.read("/tmp/test.txt");
+*
+* 
+* 
+*/
 var File = {
 
     SEPARATOR : '/',
@@ -74,14 +88,44 @@ var File = {
         var can = f.resolve_relative_path('');
         return can.get_path();
     },
-
+    /**
+     * write
+     * @arg path {String} File to write to
+     * @arg string {String} Contents of file.
+     * 
+     */
     write : function (path, string) {
         var f = Gio.file_new_for_path(String(path));
         var data_out = new Gio.DataOutputStream({base_stream:f.replace(null, false, Gio.FileCreateFlags.NONE, null)});
         data_out.put_string(string, null);
         data_out.close(null);
     },
-
+    /**
+     * append
+     * @arg path {String} File to write to
+     * @arg string {String} string to append to file.
+     * 
+     */
+    append : function (path, string) {
+        var f = Gio.file_new_for_path(String(path));
+        var data_out = new Gio.DataOutputStream({
+                base_stream:f.append_to(Gio.FileCreateFlags.NONE, null)
+        });
+        data_out.put_string(string, null);
+        data_out.close(null);
+    },
+    /**
+     * remove 
+     * Delete a file.
+     * @arg path {String} File to remove
+     * 
+     * 
+     */
+    remove : function (path)
+    {
+        var f = Gio.file_new_for_path(String(path));
+        return f['delete']();
+    },
     // copy files recursively from fromDir, silently ignore them if they already exist in toDir
     silentRecursiveCopy : function (fromDir, toDir) {
         var filesToCopy = File.recursiveListing(fromDir);
@@ -105,14 +149,23 @@ var File = {
         var dest = Gio.file_new_for_path(String(destPath));
         return dest.make_directory(null, null);
     },
-
-    copyFile : function (srcPath, destPath) {
+    /**
+     * copyFile
+     * @arg {String} src source path
+     * @arg {String} dest destination path
+     * @arg {Gio.FileCopyFlags} options (optional)  - use Gio.FileCopyFlags.OVERWRITE to .. overwrite..
+     * 
+     */
+    copyFile : function (srcPath, destPath, opts) {
+        if (typeof(opts) =='undefined') {
+            opts = Gio.FileCopyFlags.NONE
+        }
         var dest = Gio.file_new_for_path(String(destPath));
         var src = Gio.file_new_for_path(String(srcPath));
 
         // a bit of a hack for the fact that Gio.File.copy arguments
         // can be nulled, but not according to the GIR file
-        return src.copy(dest, Gio.FileCopyFlags.NONE);
+        return src.copy(dest, opts);
     },
 
     recursiveListing : function (dir) {