+ public void update_cur_sha()
+ {
+ if (this.target.contains("*")) {
+ return;
+ }
+ var tfn = BuilderApplication.configDirectory() + "/resources/" + this.target;
+ if (!GLib.FileUtils.test (tfn, FileTest.IS_REGULAR)) {
+ return;
+ }
+ uint8[] data;
+ uint8[] zero = { 0 };
+ GLib.FileUtils.get_data(tfn, out data);
+
+ var file = File.new_for_path (tfn);
+
+ var info = file.query_info(
+ "standard::*",
+ FileQueryInfoFlags.NONE
+ );
+ var csdata = new GLib.ByteArray.take("blob %s".printf(info.get_size().to_string()).data);
+ csdata.append(zero);
+ csdata.append(data);
+
+ // git method... blob %d\0...string...
+ this.cur_sha = GLib.Checksum.compute_for_data(GLib.ChecksumType.SHA1, csdata.data );
+ }