Major changes
Now saving the ouput of the diff to a file in tmp diff file can be loaded back into pacserver Rewrote how checkIfDatabasesWereModified works Slimmed down Program.cs to only have before and after Add packages and databases into one list for transfer
This commit is contained in:
parent
15220e7135
commit
58ceb31c1c
@ -10,7 +10,7 @@ public class TranserFilesTest {
|
|||||||
|
|
||||||
// Act
|
// Act
|
||||||
utils.readPacmanConfig();
|
utils.readPacmanConfig();
|
||||||
utils.transferPacmanCache();
|
utils.transfer();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
//Assert.NotEmpty(Directory.GetFiles("/home/rene/test/"));
|
//Assert.NotEmpty(Directory.GetFiles("/home/rene/test/"));
|
||||||
|
@ -85,35 +85,55 @@ public class PacserverUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> databases = new List<String>();
|
public void saveDiffToFile(string filePath) {
|
||||||
public void checkIfDatabasesWereModified(string mode, string filePath) {
|
|
||||||
string[] databases = Directory.GetFiles(pacmanDatabaseDirectory + "sync/");
|
|
||||||
|
|
||||||
foreach (string database in databases) {
|
|
||||||
switch (mode) {
|
|
||||||
case "before":
|
|
||||||
writeDatabaseAccessTimeToFile(filePath, database);
|
|
||||||
break;
|
|
||||||
case "after":
|
|
||||||
writeDatabaseAccessTimeToFile(filePath, database);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new ArgumentException("No valid mode was given. Valid modes are before and after");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void writeDatabaseAccessTimeToFile(string filePath, string database) {
|
|
||||||
if (File.Exists(filePath)) {
|
if (File.Exists(filePath)) {
|
||||||
File.Delete(filePath);
|
File.Delete(filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
using (File.Open(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) {
|
using (File.Open(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) {
|
||||||
using (StreamWriter sw = new StreamWriter(filePath)) {
|
using (StreamWriter sw = new StreamWriter(filePath)) {
|
||||||
|
foreach (string packageOrDatabase in diffOfPackagesOrDatabases) {
|
||||||
|
sw.WriteLine(packageOrDatabase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> readDiffFileToList(string filePath) {
|
||||||
|
using (File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
|
||||||
|
return File.ReadAllLines(filePath).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> databases = new List<String>();
|
||||||
|
public void checkIfDatabasesWereModified(string mode, string filePath) {
|
||||||
|
databases = Directory.GetFiles(pacmanDatabaseDirectory + "sync/").ToList();
|
||||||
|
|
||||||
|
switch (mode) {
|
||||||
|
case "before":
|
||||||
|
writeDatabaseAccessTimeToFile(filePath);
|
||||||
|
break;
|
||||||
|
case "after":
|
||||||
|
writeDatabaseAccessTimeToFile(filePath);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ArgumentException("No valid mode was given. Valid modes are before and after");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeDatabaseAccessTimeToFile(string filePath) {
|
||||||
|
if (File.Exists(filePath)) {
|
||||||
|
File.Delete(filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
using (File.Open(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read)) {
|
||||||
|
using (StreamWriter sw = new StreamWriter(filePath)) {
|
||||||
|
foreach (string database in databases) {
|
||||||
sw.WriteLine(database + " " + File.GetLastAccessTime(database));
|
sw.WriteLine(database + " " + File.GetLastAccessTime(database));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public List<String> databasesToTransfer = new List<String>();
|
public List<String> databasesToTransfer = new List<String>();
|
||||||
public void filterDiffOutputForDatabases() {
|
public void filterDiffOutputForDatabases() {
|
||||||
@ -123,7 +143,12 @@ public class PacserverUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static List<String> newerPackagesAndDatabases = new List<String>();
|
private static List<String> newerPackagesAndDatabases = new List<String>();
|
||||||
public async void transferPacmanCache() {
|
public void combinePackagesWithDatabases() {
|
||||||
|
newerPackagesAndDatabases.AddRange(packageNamesAndVersion);
|
||||||
|
newerPackagesAndDatabases.AddRange(databasesToTransfer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async void transfer() {
|
||||||
HttpClient client = new HttpClient();
|
HttpClient client = new HttpClient();
|
||||||
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://192.168.0.69:12000/upload?path=/");
|
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://192.168.0.69:12000/upload?path=/");
|
||||||
MultipartFormDataContent content = new MultipartFormDataContent();
|
MultipartFormDataContent content = new MultipartFormDataContent();
|
||||||
@ -135,8 +160,4 @@ public class PacserverUtils {
|
|||||||
|
|
||||||
await client.SendAsync(request);
|
await client.SendAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void transferPacmanDatabases() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -6,60 +6,39 @@ public class Program {
|
|||||||
Console.ForegroundColor = ConsoleColor.Red;
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
Console.WriteLine("Please specify an option.");
|
Console.WriteLine("Please specify an option.");
|
||||||
Console.ResetColor();
|
Console.ResetColor();
|
||||||
Console.WriteLine("Possible options are: determinePacmanCacheDirectory, packagesBefore, packagesAfter, diffPackages, databasesBefore, databasesAfter, diffDatabases, filter");
|
Console.WriteLine("Possible options are: before, after");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PacserverUtils utils = new PacserverUtils();
|
PacserverUtils utils = new PacserverUtils();
|
||||||
|
utils.readPacmanConfig();
|
||||||
|
|
||||||
switch (args[0]) {
|
switch (args[0]) {
|
||||||
case "determinePacmanCacheDirectory":
|
case "before":
|
||||||
utils.readPacmanConfig();
|
|
||||||
Console.WriteLine(utils.pacmanCacheDirectory);
|
|
||||||
break;
|
|
||||||
case "packagesBefore":
|
|
||||||
utils.readPacmanConfig();
|
|
||||||
utils.getEveryPackageNameAndVersion("before", "/tmp/packages_before.txt");
|
utils.getEveryPackageNameAndVersion("before", "/tmp/packages_before.txt");
|
||||||
break;
|
|
||||||
case "packagesAfter":
|
|
||||||
utils.readPacmanConfig();
|
|
||||||
utils.getEveryPackageNameAndVersion("after", "/tmp/packages_after.txt");
|
|
||||||
break;
|
|
||||||
case "diffPackages":
|
|
||||||
utils.diff("/tmp/packages_before.txt", "/tmp/packages_after.txt");
|
|
||||||
string packages = string.Join("\n", utils.diffOfPackagesOrDatabases);
|
|
||||||
Console.WriteLine(packages);
|
|
||||||
break;
|
|
||||||
case "databasesBefore":
|
|
||||||
utils.readPacmanConfig();
|
|
||||||
utils.checkIfDatabasesWereModified("before", "/tmp/databases_before.txt");
|
utils.checkIfDatabasesWereModified("before", "/tmp/databases_before.txt");
|
||||||
break;
|
break;
|
||||||
case "databasesAfter":
|
case "after":
|
||||||
utils.readPacmanConfig();
|
utils.getEveryPackageNameAndVersion("after", "/tmp/packages_after.txt");
|
||||||
utils.checkIfDatabasesWereModified("after", "/tmp/databases_after.txt");
|
utils.checkIfDatabasesWereModified("after", "/tmp/databases_after.txt");
|
||||||
break;
|
|
||||||
case "diffDatabases":
|
utils.diff("/tmp/packages_before.txt", "/tmp/packages_after.txt");
|
||||||
utils.diff("/tmp/databases_before.txt", "/tmp/databases_after.txt");
|
utils.saveDiffToFile("/tmp/package_diff.txt");
|
||||||
string databases = string.Join("\n", utils.diffOfPackagesOrDatabases);
|
|
||||||
Console.WriteLine(databases);
|
|
||||||
break;
|
|
||||||
case "filter":
|
|
||||||
utils.diff("/tmp/databases_before.txt", "/tmp/databases_after.txt");
|
utils.diff("/tmp/databases_before.txt", "/tmp/databases_after.txt");
|
||||||
|
utils.saveDiffToFile("/tmp/database_diff.txt");
|
||||||
utils.filterDiffOutputForDatabases();
|
utils.filterDiffOutputForDatabases();
|
||||||
string filteredDatabases = string.Join("\n", utils.databasesToTransfer);
|
|
||||||
Console.WriteLine(filteredDatabases);
|
utils.packageNamesAndVersion = utils.readDiffFileToList("/tmp/package_diff.txt");
|
||||||
break;
|
|
||||||
case "getEveryPackageInCache":
|
utils.combinePackagesWithDatabases();
|
||||||
utils.readPacmanConfig();
|
utils.transfer();
|
||||||
utils.getEveryPackageNameAndVersion("before", "/tmp/packages_before.txt");
|
|
||||||
string allPackages = string.Join("\n", utils.packageNamesAndVersion);
|
|
||||||
Console.WriteLine(allPackages);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Console.ForegroundColor = ConsoleColor.Red;
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
Console.WriteLine(args[0] + " is not a recognized option.");
|
Console.WriteLine(args[0] + " is not a recognized option.");
|
||||||
Console.ResetColor();
|
Console.ResetColor();
|
||||||
Console.WriteLine("Possible options are: determinePacmanCacheDirectory, packagesBefore, packagesAfter, diffPackages, databasesBefore, databasesAfter, diffDatabases, filter");
|
Console.WriteLine("Possible options are: before, after");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user