Commit f8b86410 authored by Anton Makeev's avatar Anton Makeev
Browse files

Updates: os exclusions for patches

parent a585d8f3
Showing with 33 additions and 5 deletions
+33 -5
...@@ -96,7 +96,8 @@ public class BuildInfo implements Comparable<BuildInfo> { ...@@ -96,7 +96,8 @@ public class BuildInfo implements Comparable<BuildInfo> {
public PatchInfo findPatchForCurrentBuild() { public PatchInfo findPatchForCurrentBuild() {
BuildNumber currentBuild = ApplicationInfo.getInstance().getBuild(); BuildNumber currentBuild = ApplicationInfo.getInstance().getBuild();
for (PatchInfo each : myPatches) { for (PatchInfo each : myPatches) {
if (each.getFromBuild().asStringWithoutProductCode().equals(currentBuild.asStringWithoutProductCode())) return each; if (each.isAvailable() && each.getFromBuild().asStringWithoutProductCode().equals(currentBuild.asStringWithoutProductCode()))
return each;
} }
return null; return null;
} }
......
...@@ -20,15 +20,34 @@ ...@@ -20,15 +20,34 @@
package com.intellij.openapi.updateSettings.impl; package com.intellij.openapi.updateSettings.impl;
import com.intellij.openapi.util.BuildNumber; import com.intellij.openapi.util.BuildNumber;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.Function;
import com.intellij.util.containers.ContainerUtil;
import org.jdom.Element; import org.jdom.Element;
import java.util.HashSet;
import java.util.Set;
public class PatchInfo { public class PatchInfo {
private final BuildNumber myFromBuild; private final BuildNumber myFromBuild;
private final String mySize; private final String mySize;
private final Set<String> myExcludedOSes = new HashSet<String>();
public PatchInfo(Element node) { public PatchInfo(Element node) {
myFromBuild = BuildNumber.fromString(node.getAttributeValue("from")); myFromBuild = BuildNumber.fromString(node.getAttributeValue("from"));
mySize = node.getAttributeValue("size"); mySize = node.getAttributeValue("size");
String excluded = node.getAttributeValue("exclusions");
if (excluded != null) {
myExcludedOSes.addAll(ContainerUtil.map(StringUtil.split(excluded, ","), new Function<String, String>() {
@Override
public String fun(String s) {
return s.trim();
}
}));
}
} }
public BuildNumber getFromBuild() { public BuildNumber getFromBuild() {
...@@ -38,4 +57,15 @@ public class PatchInfo { ...@@ -38,4 +57,15 @@ public class PatchInfo {
public String getSize() { public String getSize() {
return mySize; return mySize;
} }
public boolean isAvailable() {
return !myExcludedOSes.contains(getOSSuffix());
}
public String getOSSuffix() {
if (SystemInfo.isWindows) return "win";
if (SystemInfo.isMac) return "mac";
if (SystemInfo.isUnix) return "unix";
return "unknown";
}
} }
...@@ -645,10 +645,7 @@ public final class UpdateChecker { ...@@ -645,10 +645,7 @@ public final class UpdateChecker {
String productCode = ApplicationInfo.getInstance().getBuild().getProductCode(); String productCode = ApplicationInfo.getInstance().getBuild().getProductCode();
String osSuffix = ""; String osSuffix = "-" + patch.getOSSuffix();
if (SystemInfo.isWindows) osSuffix = "-win";
else if (SystemInfo.isMac) osSuffix = "-mac";
else if (SystemInfo.isUnix) osSuffix = "-unix";
String fromBuildNumber = patch.getFromBuild().asStringWithoutProductCode(); String fromBuildNumber = patch.getFromBuild().asStringWithoutProductCode();
String toBuildNumber = newVersion.getNumber().asStringWithoutProductCode(); String toBuildNumber = newVersion.getNumber().asStringWithoutProductCode();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment