예제 #1
0
        public static async Task Run(string[] args)
        {
            v = AssemblyExtras.GetEntryAssemblyInfo();
            var n = v.GetAppString();

            Console.Title = n;

            bool error = false;

            //parse args
            var packagename = "";
            var filetype    = "";
            var version     = "";
            var startpath   = "";

            try
            {
                for (int ai = 0; ai < args.Length; ai += 2)
                {
                    var index = args[ai];
                    var value = args[ai + 1];

                    if (index == "-n")
                    {
                        packagename = value;
                    }
                    else if (index == "-t")
                    {
                        filetype = "*." + value;
                    }
                    else if (index == "-v")
                    {
                        version = value;
                    }
                    else if (index == "-p")
                    {
                        startpath = value;
                    }
                }
            }
            catch (Exception e)
            {
                error = true;
            }

            if (string.IsNullOrEmpty(version))
            {
                version = null;
            }

            if (string.IsNullOrEmpty(filetype))
            {
                filetype = "*.csproj";
            }
            else
            {
                if (filetype.StartsWith("*.") == false)
                {
                    filetype = "*." + filetype;
                }
            }

            if (string.IsNullOrEmpty(packagename))
            {
                error = true;
            }

            if (string.IsNullOrEmpty(startpath))
            {
                startpath = null;
            }

            System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
            FileVersionInfo            fvi      = FileVersionInfo.GetVersionInfo(assembly.Location);
            string aversion = fvi.FileVersion;

            if (args.Length == 0 || error)
            {
                Console.WriteLine("\r\nNugetPackageUpdater V" + aversion + "\n");
                Console.WriteLine("Args: NugetPackageUpdater.exe");
                Console.WriteLine("-n PackageName (eg Antlr)");
                Console.WriteLine("[-t FileType (default: csproj)]");
                Console.WriteLine("[-v Version (default: newest from nuget)]");
                Console.WriteLine("[-p Start Path (default: current directory)]");
                if (await Licensing.IsUpdateConsoleRequired(HelpString, OtherText) == false)
                {
                    KeyboardAndClose();
                }
            }

            Console.WriteLine("\r\nNugetPackageUpdater V" + aversion + "\n");

            try
            {
                NugetRepos = NugetHelpers.GetLocalNugetRepos();
                ProjectFileChanges(filetype, packagename, version, startpath);
                PackagesChanges(packagename, version, startpath);
            }
            catch (Exception ex)
            {
                l.Error(ex, "Error occured:" + ex);
            }
        }