Browse Source

added postInstall

Nicolas Cannasse 16 years ago
parent
commit
11044ba85f
3 changed files with 17 additions and 1 deletions
  1. 1 0
      std/tools/haxelib/Main.hx
  2. 13 0
      std/tools/haxelib/SiteApi.hx
  3. 3 1
      std/tools/haxelib/SiteDb.hx

+ 1 - 0
std/tools/haxelib/Main.hx

@@ -395,6 +395,7 @@ class Main {
 		h.customRequest(false,progress);
 
 		doInstallFile(filepath,setcurrent);
+		site.postInstall(project,version);
 	}
 
 	function doInstallFile(filepath,setcurrent,?nodelete) {

+ 13 - 0
std/tools/haxelib/SiteApi.hx

@@ -238,5 +238,18 @@ class SiteApi {
 		return "Version "+v.name+" (id#"+v.id+") added";
 	}
 
+	public function postInstall( project : String, version : String ) {
+		var p = Project.manager.search({ name : project }).first();
+		if( p == null )
+			throw "No such Project : "+project;
+		var v = Version.manager.search({ project : p.id, name : version }).first();
+		if( v == null )
+			throw "No such Version : "+version;
+		v.downloads++;
+		v.update();
+		p.downloads++;
+		p.update();
+	}
+
 }
 

+ 3 - 1
std/tools/haxelib/SiteDb.hx

@@ -28,6 +28,7 @@ class Project extends neko.db.Object {
 	public var description : String;
 	public var website : String;
 	public var license : String;
+	public var downloads : Int;
 	public var owner(dynamic,dynamic) : User;
 	public var version(dynamic,dynamic) : Version;
 
@@ -139,7 +140,8 @@ class SiteDb {
 				license VARCHAR(20) NOT NULL,
 				description TEXT NOT NULL,
 				website VARCHAR(100) NOT NULL,
-				version INT
+				version INT,
+				downloads INT NOT NULL
 			)
 		");
 		db.request("DROP TABLE IF EXISTS Version");