Esempio n. 1
0
        public CompareResult CompareVersions(string a, string b)
        {
            VersionStruct versionA = ParseVersion(a);
            VersionStruct versionB = ParseVersion(b);

            return(CompareVersions(versionA, versionB));
        }
Esempio n. 2
0
 public bool Equal(VersionStruct target)
 {
     return(this.master == target.master &&
            this.minor == target.minor &&
            this.revised == target.revised &&
            this.revised2 == target.revised2);
 }
Esempio n. 3
0
        public CompareResult CompareVersions(Upset package, DependencyDefinition dependencyDefinition)
        {
            VersionStruct packageVersion    = ParseVersion(package);
            VersionStruct dependencyVersion = ParseVersion(dependencyDefinition);

            return(CompareVersions(packageVersion, dependencyVersion));
        }
Esempio n. 4
0
 public void CopyValue(VersionStruct target)
 {
     master   = target.master;
     minor    = target.minor;
     revised  = target.revised;
     revised2 = target.revised2;
 }
        public bool checkVersion(VersionStruct aVersionStruct)
        {
            bool lresult = false;

            do
            {
                try
                {
                    if (mVersionControl == null)
                    {
                        break;
                    }

                    sbyte lcheckResult = 0;

                    (mVersionControl as IVersionControlInner).checkVersion(
                        aVersionStruct.mMAJOR,
                        aVersionStruct.mMINOR,
                        aVersionStruct.mPATCH,
                        out lcheckResult);


                    if (lcheckResult > 0)
                    {
                        lresult = true;
                    }
                }
                catch (Exception exc)
                {
                    LogManager.getInstance().write(exc.Message);
                }
            } while (false);

            return(lresult);
        }
Esempio n. 6
0
    public void SaveData()
    {
        if (!Directory.Exists(DirectName))
        {
            Directory.CreateDirectory(DirectName);
        }
        {
            StreamWriter  servWriter = new StreamWriter(new FileStream(FileName, FileMode.Create));
            List <string> strings    = new List <string>();
            foreach (string k in m_mFileMd5.Keys)
            {
                strings.Add(k);
            }
            strings.Sort();

            foreach (string s in strings)
            {
                servWriter.WriteLine(s + '$' + m_mFileMd5[s]);
            }
            servWriter.Close();
        }

        {
            foreach (string key in m_mDepends.Keys)
            {
                if (m_mDepends[key].GetDirty())
                {
                    if (m_mVersion.ContainsKey(key))
                    {
                        m_mVersion[key].value = m_maxValue;
                        m_mVersion[key].date  = m_currDate;
                    }
                    else
                    {
                        VersionStruct vs = new VersionStruct();
                        vs.value = m_maxValue;
                        vs.date  = m_currDate;
                        m_mVersion.Add(key, vs);
                    }
                }
            }

            StreamWriter  verWriter = new StreamWriter(new FileStream(VersionName, FileMode.Create));
            List <string> strings   = new List <string>();
            foreach (string k in m_mVersion.Keys)
            {
                strings.Add(k);
            }
            strings.Sort();

            foreach (string s in strings)
            {
                verWriter.WriteLine(s + '$' + m_mVersion[s].value.ToString() + '$' + m_mVersion[s].date);
            }
            verWriter.Close();
        }
    }
Esempio n. 7
0
    public void OpenData()
    {
        if (File.Exists(FileName))
        {
            StreamReader sr        = new StreamReader(new FileStream(FileName, FileMode.Open));
            char[]       spiltChar = new char[1] {
                '$'
            };
            while (!sr.EndOfStream)
            {
                string line = sr.ReadLine();

                string[] strings = line.Split(spiltChar);
                if (strings.Length == 2)
                {
                    m_mFileMd5.Add(strings[0], strings[1]);
                    m_mFileDirty.Add(strings[0], FileDirtyEnum.FRESH);
                }
            }
            sr.Close();
        }

        if (File.Exists(VersionName))
        {
            StreamReader sr        = new StreamReader(new FileStream(VersionName, FileMode.Open));
            char[]       spiltChar = new char[1] {
                '$'
            };
            while (!sr.EndOfStream)
            {
                string line = sr.ReadLine();

                string[] strings = line.Split(spiltChar);
                if (strings.Length == 3)
                {
                    VersionStruct vs = new VersionStruct();
                    vs.value = int.Parse(strings[1]);
                    vs.date  = strings[2];
                    m_mVersion.Add(strings[0], vs);
                    if (vs.value > m_maxValue)
                    {
                        m_maxValue = vs.value;
                    }
                }
            }
            sr.Close();
        }
        m_maxValue++;
    }
Esempio n. 8
0
        public static void Initialize()
        {
            WebClient wc      = new WebClient();
            var       jsonstr = wc.DownloadString("https://github.com/laiglinne-ff/Aliapoh.Overlay/raw/aliapoh-versions/version.json");
            var       json    = JObject.Parse(jsonstr);
            var       cur     = new VersionStruct(Application.ProductVersion);
            var       git     = new VersionStruct(json["Stable"].Value <string>());

            LOG.Logger.Log(LogLevel.Warning, "Latest version: " + git.ToString());
            LOG.Logger.Log(LogLevel.Warning, "Current version: " + cur.ToString());

            if (cur.Diff(git) == -1)
            {
                LOG.Logger.Log(LogLevel.Warning, "Patch required");
            }
        }
Esempio n. 9
0
        public static VersionStruct ParseVersion(string versionString)
        {
            const string versionMatcherRegexp = @"(?<major>\d+)(\.(?<minor>\d+))?(\.(?<build>\d+))?(((?<release>\w)|\.)(?<revision>\d+))?";

            Match matchObject = Regex.Match(versionString, versionMatcherRegexp);

            VersionStruct result = new VersionStruct
            {
                Major    = ExtractVersion(matchObject, "major"),
                Minor    = ExtractVersion(matchObject, "minor"),
                Build    = ExtractVersion(matchObject, "build"),
                Release  = ExtractRelease(matchObject),
                Revision = ExtractVersion(matchObject, "revision")
            };

            return(result);
        }
Esempio n. 10
0
        public bool getVersion(ref VersionStruct aVersionStruct)
        {
            bool lresult = false;

            IntPtr lPtrXMLstring = IntPtr.Zero;

            do
            {
                try
                {
                    if (mVersionControl == null)
                    {
                        break;
                    }

                    (mVersionControl as IVersionControlInner).getVersion(
                        out aVersionStruct.mMAJOR,
                        out aVersionStruct.mMINOR,
                        out aVersionStruct.mPATCH,
                        out lPtrXMLstring);

                    if (lPtrXMLstring != IntPtr.Zero)
                    {
                        aVersionStruct.mAdditionalLabel = Marshal.PtrToStringBSTR(lPtrXMLstring);
                    }

                    lresult = true;
                }
                catch (Exception exc)
                {
                    LogManager.getInstance().write(exc.Message);
                }
            } while (false);

            if (lPtrXMLstring != IntPtr.Zero)
            {
                Marshal.FreeBSTR(lPtrXMLstring);
            }

            return(lresult);
        }
Esempio n. 11
0
        public int Diff(VersionStruct vs)
        {
            if (vs.Major > Major)
            {
                return(-1);
            }
            if (vs.Minor > Minor)
            {
                return(-1);
            }
            if (vs.Build > Build)
            {
                return(-1);
            }
            if (vs.Revision > Revision)
            {
                return(-1);
            }

            return(0);
        }
Esempio n. 12
0
        public CompareResult CompareVersions(VersionStruct packageVersion, VersionStruct dependencyVersion)
        {
            CompareResult result = new CompareResult();

            // Major version comparison
            if (packageVersion.Major < dependencyVersion.Major)
            {
                result.Major = Comparison.LOWER;
                return(result);
            }
            else if (packageVersion.Major > dependencyVersion.Major)
            {
                result.Major = Comparison.HIGHER;
                return(result);
            }
            else if (packageVersion.Major == dependencyVersion.Major)
            {
                result.Major = Comparison.SAME;
            }
            else
            {
                result.Major = Comparison.NA;
                return(result);
            }

            // Minor version comparison
            if (packageVersion.Minor < dependencyVersion.Minor)
            {
                result.Minor = Comparison.LOWER;
                return(result);
            }
            else if (packageVersion.Minor > dependencyVersion.Minor)
            {
                result.Minor = Comparison.HIGHER;
                return(result);
            }
            else if (packageVersion.Minor == dependencyVersion.Minor)
            {
                result.Minor = Comparison.SAME;
            }
            else
            {
                result.Minor = Comparison.NA;
                return(result);
            }

            // Build version comparison
            if (packageVersion.Build < dependencyVersion.Build)
            {
                result.Build = Comparison.LOWER;
                return(result);
            }
            else if (packageVersion.Build > dependencyVersion.Build)
            {
                result.Build = Comparison.HIGHER;
                return(result);
            }
            else if (packageVersion.Build == dependencyVersion.Build)
            {
                result.Build = Comparison.SAME;
            }
            else
            {
                result.Build = Comparison.NA;
                return(result);
            }

            // Release strength comparison
            if (packageVersion.Release < dependencyVersion.Release)
            {
                result.Release = Comparison.LOWER;
                return(result);
            }
            else if (packageVersion.Release > dependencyVersion.Release)
            {
                result.Release = Comparison.HIGHER;
                return(result);
            }
            else if (packageVersion.Release == dependencyVersion.Release)
            {
                result.Release = Comparison.SAME;
            }
            else
            {
                result.Release = Comparison.NA;
                return(result);
            }

            // Revision version comparison
            if (packageVersion.Revision < dependencyVersion.Revision)
            {
                result.Revision = Comparison.LOWER;
                return(result);
            }
            else if (packageVersion.Revision > dependencyVersion.Revision)
            {
                result.Revision = Comparison.HIGHER;
                return(result);
            }
            else if (packageVersion.Revision == dependencyVersion.Revision)
            {
                result.Revision = Comparison.SAME;
            }
            else
            {
                result.Revision = Comparison.NA;
                return(result);
            }

            return(result);
        }