[Frugalware-git] frugal-mono-tools: *check if some packages are available for update *should test the version better and use ignorepkg

bouleetbil bouleetbil at frogdev.info
Fri Aug 27 15:30:59 CEST 2010


Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugal-mono-tools.git;a=commitdiff;h=820d20d960c8b9ec61f2f6c4d2b28fdb15880b8a

commit 820d20d960c8b9ec61f2f6c4d2b28fdb15880b8a
Author: bouleetbil <bouleetbil at frogdev.info>
Date:   Fri Aug 27 15:52:35 2010 +0000

*check if some packages are available for update
*should test the version better and use ignorepkg

diff --git a/frugal-mono-tools/Main.cs b/frugal-mono-tools/Main.cs
index c586672..e90ab14 100644
--- a/frugal-mono-tools/Main.cs
+++ b/frugal-mono-tools/Main.cs
@@ -60,9 +60,15 @@ namespace frugalmonotools
case "--update":
//check if an update is avalaible
//started with X session
-						if (Update.packageCheck())
+						Console.WriteLine("check update packages.");
+						Update update=new Update();
+						if (update.CheckUpdate())
{
Console.WriteLine("Some packages can be updated.");
+							foreach (packageCheck pkg in update.UpdatePkg)
+							{
+								Console.WriteLine(pkg.packagename+" can be updated to "+pkg.packageversion);
+							}
}
break;
default:
diff --git a/frugal-mono-tools/Update.cs b/frugal-mono-tools/Update.cs
index 656637e..cf41f90 100644
--- a/frugal-mono-tools/Update.cs
+++ b/frugal-mono-tools/Update.cs
@@ -4,20 +4,21 @@ using System.Collections.Generic;

namespace frugalmonotools
{
+
public class packageCheck
{
-		string packagename;
-		string packageversion;
+		public string packagename;
+		public string packageversion;
}

-	public static class Update
+	public class Update
{
-		static private List<packageCheck> InstallPkg = new List<packageCheck>();
-		static private List<packageCheck> Pkg = new List<packageCheck>();
-		static private List<packageCheck> UpdatePkg = new List<packageCheck>();
-		static private PacmanG2 pacman = new PacmanG2();
+		private List<packageCheck> InstallPkg = new List<packageCheck>();
+		private List<packageCheck> Pkg = new List<packageCheck>();
+		public List<packageCheck> UpdatePkg = new List<packageCheck>();
+		private PacmanG2 pacman = new PacmanG2();

-		static public bool packageCheck()
+		public Update()
{
_init();

@@ -33,30 +34,77 @@ namespace frugalmonotools
}

}
-			return true;
+			foreach (packageCheck pkginstall in InstallPkg)
+			{
+				//TODO : respect Ignorepkg
+				foreach (packageCheck pkg in Pkg)
+				{
+					if(pkg.packagename==pkginstall.packagename)
+					{
+						//basic test for beginning
+						if(pkg.packageversion!=pkginstall.packageversion)
+						{
+							UpdatePkg.Add(pkg);
+						}
+						break;
+					}
+
+				}
+
+			}
+		}
+		public bool CheckUpdate()
+		{
+			if(UpdatePkg.Count>0) return true;
+			return false;
}

-		static private void _init()
+		private void _init()
{
InstallPkg.Clear();
Pkg.Clear();
UpdatePkg.Clear();
}

-		static private void addList(List<packageCheck> pkgs,string repo)
+		private void addList(List<packageCheck> pkgs,string repo)
{
List<Package> packages=pacman.Search("*",repo);
-			pkgs.Clear();
foreach (Package package in packages)
{
if(repo=="local")
{
-					//
+					//for repo local we can added all packages
+					packageCheck pkgrepo = new packageCheck();
+					pkgrepo.packagename=package.pkgname;
+					pkgrepo.packageversion=package.pkgversion;
+					pkgs.Add(pkgrepo);
+				}
+				else
+				{
+					//don't add the package if already in the list
+					//in case of user use some wip
+					bool findIt = false;
+					foreach (packageCheck pkg in pkgs)
+					{
+						if(package.pkgname==pkg.packagename)
+						{
+							findIt=true;
+							break;
+						}
+					}
+					if(!findIt)
+					{
+						packageCheck pkgrepo = new packageCheck();
+						pkgrepo.packagename=package.pkgname;
+						pkgrepo.packageversion=package.pkgversion;
+						pkgs.Add(pkgrepo);
+					}
}
}

}

}
+
}


More information about the Frugalware-git mailing list