From 64e84be23dadfd85806d0e02f2addfbb1e483923 Mon Sep 17 00:00:00 2001
From: Bensong Liu <bensl@microsoft.com>
Date: Wed, 24 Feb 2021 14:27:02 +0800
Subject: [PATCH] bug fix

---
 README.md         | 2 ++
 main.go           | 6 +++++-
 packageManager.go | 5 ++++-
 util.go           | 8 +++++---
 4 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 96f6dbe..b66c209 100644
--- a/README.md
+++ b/README.md
@@ -85,3 +85,5 @@ dotnet build
 
 2. deps de-duplicate
 
+3. Parallelize `openxt sync` with multiple fake environment. 
+
diff --git a/main.go b/main.go
index 2366d30..c253038 100644
--- a/main.go
+++ b/main.go
@@ -3,13 +3,17 @@ package main
 import (
 	"flag"
 	"fmt"
+	"log"
 	"os"
 )
 
-// Some options here
+// Some options here. Would be improved in beta release.
 const DeductPkgNameFromVarName = true
+const OPENXT_VERSION = "0.1.2a"
 
 func main() {
+	log.Println("OpenXT version " + OPENXT_VERSION)
+
 	nugetConfigPath := "/home/recolic/tmp/test.nuget.config" // warning: not supported yet
 	projectDir := flag.String("project-dir", "", "Path to the CoreXT/OpenXT project. ")
 	localRepoDir := flag.String("local-repo-dir", "", "Path to local nuget repo. (known as CxCache in CoreXT)")
diff --git a/packageManager.go b/packageManager.go
index b7ebc20..e509a8a 100644
--- a/packageManager.go
+++ b/packageManager.go
@@ -45,7 +45,10 @@ func SyncPackages(nugetConfigPath, localRepoPath string, allDeps []dependencyIte
 			targetNetVer = "net472" // Default dotnet version
 		}
 		if DeductPkgNameFromVarName {
-			pkgName = varNameToPkgName(dep.envName) // PkgCis_SdkV2 requires this to work.
+			guessedName := guessPkgNameFromVarName(dep.envName) // PkgCis_SdkV2 requires this to work.
+			if guessedName != "" {
+				pkgName = guessedName
+			}
 		}
 
 		log.Println("DEBUG: Downloading pkg: " + pkgName + ":" + targetNetVer + " as var " + dep.envName)
diff --git a/util.go b/util.go
index 2b5ae85..b864233 100644
--- a/util.go
+++ b/util.go
@@ -55,9 +55,11 @@ func assertStringNotEmpty(s, msg string) {
 	}
 }
 
-func varNameToPkgName(varName string) string {
-	if varName[:3] != "Pkg" {
-		return "InvalidVarName_" + varName
+// PkgCis_SdkV2 => Cis.SdkV2
+// On error, returns empty string.
+func guessPkgNameFromVarName(varName string) string {
+	if len(varName) <= 3 || varName[:3] != "Pkg" {
+		return ""
 	}
 	return strings.ReplaceAll(varName[3:], "_", ".")
 }
-- 
GitLab