GitRepo.vala
[gitlive] / GitRepo.vala
index 5fbdb0d..fd202f8 100644 (file)
@@ -189,23 +189,37 @@ public class GitRepo : Object
        return this.currentBranch.name == "master" || this.currentBranch.name == "roojs";
                
     }
+    public void init_config()
+    {
+       // managed = 
+       if (this.get_config("managed") == "") {
+               this.set_config("managed", this.host == "git.roojs.com" ? "1" : "0");
+               }
+       if (this.get_config("autocommit") == "") {
+               this.set_config("autocommit", this.host == "git.roojs.com" ? "1" : "0");
+               }
+    
+    }
+    
+    
+    
+    public string get_config(string key) {
+       return this.git({ "config" , "gitlive." + key });
+       }
+    public string set_config(string key, string value) {
+       return this.git({ "config" , "gitlive." + key, value });
+       }
     
     public bool is_managed()
     {
-       // is it a roojs origin?
-       var r = this.git({ "remote" , "get-url" , "--push" , "origin"});
-       var uri = new Soup.URI(r);
-       if (uri.get_host() != "git.roojs.com") { // we can only push to this url. -- unless we have forced it to be managed.
-               return FileUtils.test(this.gitdir + "/.gitlive-managed" , FileTest.EXISTS);
-       }
-       // otherwise see if unmanaged is set to disable it..
-       return !FileUtils.test(this.gitdir + "/.gitlive-unmanaged" , FileTest.EXISTS);  
+       return this.get_config("managed") == "1";
 
     }
     
     
     public bool is_autocommit ()
     {          
+       
        return !FileUtils.test(this.gitdir + "/.gitlive-disable-autocommit" , FileTest.EXISTS);
     }
     public void set_autocommit(bool val)
@@ -248,12 +262,24 @@ public class GitRepo : Object
                if (cur == val) {
                        return; // no change..
                }
-               if (val) {
-                       FileUtils.set_contents(this.gitdir + "/.gitlive-enable-auto-branch" , "x");
+       if (this.host != "git.roojs.com") { // we can only push to this url. -- unless we have forced it to be managed.
+               // remote is not our server..
+               if (val) {
+                       FileUtils.set_contents(this.gitdir + "/.gitlive-managed" , "x");
+               } else {
+                       FileUtils.remove(this.gitdir + "/.gitlive-managed" ); 
+                       }
+               return;
+
+       }
+       
+       if (val) {
+                       FileUtils.remove(this.gitdir + "/.gitlive-unmanaged" ); 
                } else {
-                       // it exists...
-                       FileUtils.remove(this.gitdir + "/.gitlive-enable-auto-branch" ); 
+               FileUtils.set_contents(this.gitdir + "/.gitlive-unmanaged" , "x");              
+
                }
+         
     
     }
     public bool is_autopush ()