浏览代码

exclude packages from zipping with account of the 'only' option

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8318 8c9fc860-2736-0410-a75d-ab315db34111
eth.morozova 6 年之前
父节点
当前提交
b538ec6707
共有 1 个文件被更改,包括 19 次插入1 次删除
  1. 19 1
      source/Release.Mod

+ 19 - 1
source/Release.Mod

@@ -934,13 +934,31 @@ TYPE
 					out.Int(nofFilesAdded, 0); out.String(" files added."); out.Ln; out.Update;
 				END;
 			END GenerateZipFile;
+			
+			PROCEDURE PackageIsExcludedFromZip(package: Package): BOOLEAN;
+			VAR k: SIZE;
+			BEGIN
+				IF PackageIsExcluded(package) THEN
+					RETURN TRUE;
+				END;
+				IF onlyPackages # NIL THEN
+					k := 0;
+					WHILE (k < LEN(onlyPackages)) & (package.name # onlyPackages[k]^) DO
+						INC(k);
+					END;
+					IF k = LEN(onlyPackages) THEN
+						RETURN TRUE;
+					END;
+				END;
+				RETURN FALSE;
+			END PackageIsExcludedFromZip;
 
 		BEGIN
 			packageArray := packages.GetAll();
 			IF (packageArray # NIL) THEN
 				DeleteOldZipFiles(packageArray);
 				FOR i := 0 TO LEN(packageArray)-1 DO
-					IF ~PackageIsExcluded(packageArray[i]) THEN
+					IF ~PackageIsExcludedFromZip(packageArray[i]) THEN
 						GenerateZipFile(packageArray[i], TRUE, res);
 						IF (res # Zip.Ok) THEN err := TRUE; RETURN END;
 						GenerateZipFile(packageArray[i], FALSE, res);