mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
49 lines
1.2 KiB
C#
49 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Linq;
|
|
|
|
namespace Semmle.BuildAnalyser
|
|
{
|
|
/// <summary>
|
|
/// Utilities to run the "dotnet" command.
|
|
/// </summary>
|
|
static class DotNet
|
|
{
|
|
public static int RestoreToDirectory(string projectOrSolutionFile, string packageDirectory)
|
|
{
|
|
using var proc = Process.Start("dotnet", $"restore --no-dependencies \"{projectOrSolutionFile}\" --packages \"{packageDirectory}\"");
|
|
proc.WaitForExit();
|
|
return proc.ExitCode;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Utility to temporarily rename a set of files.
|
|
/// </summary>
|
|
class FileRenamer : IDisposable
|
|
{
|
|
string[] files;
|
|
const string suffix = ".codeqlhidden";
|
|
|
|
public FileRenamer(IEnumerable<FileInfo> oldFiles)
|
|
{
|
|
files = oldFiles.Select(f => f.FullName).ToArray();
|
|
|
|
foreach(var file in files)
|
|
{
|
|
File.Move(file, file + suffix);
|
|
}
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
foreach (var file in files)
|
|
{
|
|
File.Move(file + suffix, file);
|
|
}
|
|
}
|
|
}
|
|
}
|