+public class ResourcesItem : Object {
+ public string target;
+ public string src;
+ public string new_sha;
+ public string cur_sha;
+ public ResourcesItem(string src, string target, string new_sha)
+ {
+ this.target = target;
+ this.src = src;
+ this.new_sha = new_sha;
+ this.cur_sha = "";
+ this.update_cur_sha();
+ print("New ResourcesItem %s (%s) => (%s) %s\n", target , this.cur_sha , new_sha, src);
+ }
+ 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 );
+ }
+
+}
+
+