this.new_sha = new_sha;
this.cur_sha = "";
this.update_cur_sha();
- print("New ResourcesItem %s (%s) => %s\n", target , this.cur_sha ,src);
+ print("New ResourcesItem %s (%s) => (%s) %s\n", target , this.cur_sha , new_sha, src);
}
public void update_cur_sha()
{
return;
}
uint8[] data;
+ uint8[] zero = { 0 };
GLib.FileUtils.get_data(tfn, out data);
var file = File.new_for_path (tfn);
"standard::*",
FileQueryInfoFlags.NONE
);
- var csdata = new GLib.ByteArray.take("blob %s\0".printf(info.get_size().to_string()).data);
+ 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...
public class Resources : Object
{
- public signal void updateProgress(uint cur_pos);
+ public signal void updateProgress(uint cur_pos, uint total);
static Resources singleton_val;
}
public Resources ()
{
+ this.initFiles();
+ }
+
+ public void initFiles()
+ {
string[] avail_files = {
"roodata.json",
"*",
- "Editors/*.js"
+ "Editors/*.js",
+ "vapi/*"
};
this.fetch_files = new Gee.ArrayList<ResourcesItem>();
}
if (target.contains("*")) {
var split = target.split("*");
+
src = "https://api.github.com/repos/roojs/app.Builder.js/contents/resources/" + split[0];
+ if (split[0] == "vapi/") {
+ src = "https://api.github.com/repos/roojs/app.Builder.js/contents/src/vapi";
+
+ }
+
}
- this.fetch_files.add(new ResourcesItem(src,target));
+ this.fetch_files.add(new ResourcesItem(src,target, ""));
}
-
-
-
- }
-
+
+ }
int fetch_pos = 0;
public void fetchStart()
{
+ this.initFiles();
if (this.fetch_pos > 0) { // only fetch one at a time...
return;
}
{
var cur = this.fetch_pos;
this.fetch_pos++;
- this.updateProgress(this.fetch_pos); // min=0;
+ this.updateProgress(this.fetch_pos, this.fetch_files.size); // min=0;
if (this.fetch_pos > this.fetch_files.size) {
- this.updateProgress(0);
+ this.updateProgress(0,0);
this.fetch_pos = 0;
return;
}
+ /**
+ * called on start to check we have all the required files..
+ */
public void checkResources()
{
bool needsload = false;
-
-
- for (var i = 0; i < this.fetch_files.size; i++ ) {
+
+ // this has to check the required files, not the list...
+ string[] required = {
+ "bootstrap.builder.html",
+ "Gir.overides",
+ "GtkUsage.txt",
+ "mailer.builder.html",
+ "roo.builder.html",
+ "roo.builder.js",
+ "roodata.json",
+ "RooUsage.txt"
+ };
+
+ for (var i = 0; i < required.length; i++ ) {
if (!FileUtils.test(
- BuilderApplication.configDirectory() + "/resources/" + this.fetch_files.get(i).target,
+ BuilderApplication.configDirectory() + "/resources/" + required[i],
FileTest.EXISTS
)) {
needsload = true;
public void parseDirectory(string json, string target)
{
+ print("%s\n", json);
var pa = new Json.Parser();
pa.load_from_data(json);
var node = pa.get_root();
if (this.files_has_target(split[0] + n)) {
continue;
}
- var src = "https://raw.githubusercontent.com/roojs/app.Builder.js/master/resources/" + split[0] + n;
- var add = new ResourcesItem(src, split[0] + n);
- add.new_sha = ob.get_string_member("sha");
+
+
+
+ var src = ob.get_string_member("download_url");
+ // "https://raw.githubusercontent.com/roojs/app.Builder.js/master/resources/" + split[0] + n;
+ var add = new ResourcesItem(src, split[0] + n, ob.get_string_member("sha") );
+ //add.new_sha = ob.get_string_member("sha");
this.fetch_files.add(add);
}