Exemplo n.º 1
0
        private async Task <bool> DeleteRedirectFileAsync(string packageName)
        {
            var packageDir = commandDirectory.GetDirectoryForPackage(packageName);

            if (!Directory.Exists(packageDir))
            {
                WriteLine($"Package {packageName} is not installed.");
                return(false);
            }
            var packageDirs = Directory.EnumerateDirectories(packageDir);

            foreach (var packageAndVersionDir in packageDirs)
            {
                var packageInfo = await PackageInfo.GetMainFilePathAsync(packageName, packageAndVersionDir);

                if (packageInfo == null || !packageInfo.Commands.Any())
                {
                    return(true);
                }
                foreach (var command in packageInfo.Commands)
                {
                    var binFile = commandDirectory.GetBinFile(command.Name + (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? ".cmd" : ""));
                    try
                    {
                        if (File.Exists(binFile))
                        {
                            WriteLineIfVerbose($"Deleting bin file '{binFile}'.");
                            File.Delete(binFile);
                        }
                        else
                        {
                            WriteLineIfVerbose($"Bin file '{binFile}' does not exist.");
                        }
                    }
                    catch (Exception ex)
                    {
                        WriteLine($"Could not delete bin file '{binFile}'.");
                        WriteLineIfVerbose(ex.ToString());
                        return(false);
                    }
                }
            }
            return(true);
        }