Move the files into N1MM's own folder
The root is Documents/N1MM Logger+ now, so a station that runs both programs has one set of files rather than two: one Databases folder, one SupportFiles, one Wav with a folder per operator in it. What N1MM has no place for goes in a Nonemm folder inside it, which is where settings.json sits. A system that does not say where Documents is — most Linux systems — gets ~/Documents/N1MM Logger+. Files an older version kept in Documents\Nonemm or ~/.config/nonemm are copied in the first time this version runs, and the log and call history paths in the settings are moved with them, so the copy that opens is the copy that came over. The older folder is left as it was. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RoGtneMQaz4M9w7Kk49AVD
This commit is contained in:
@@ -26,8 +26,8 @@ public class UserPathsTests : IDisposable
|
||||
Assert.Equal(
|
||||
[
|
||||
"CallHistoryFiles", "Databases", "Diagnostics", "ExportFiles", "FunctionKeyMessages",
|
||||
"GoalFiles", "LettersFiles", "QsoRecording", "SkinsAndLayouts", "SupportFiles",
|
||||
"SystemFiles", "TransactionLogFiles", "UserDefinedContests", "Wav",
|
||||
"GoalFiles", "LettersFiles", "Nonemm", "QsoRecording", "SkinsAndLayouts",
|
||||
"SupportFiles", "SystemFiles", "TransactionLogFiles", "UserDefinedContests", "Wav",
|
||||
],
|
||||
made);
|
||||
}
|
||||
@@ -53,4 +53,45 @@ public class UserPathsTests : IDisposable
|
||||
|
||||
Assert.True(Directory.Exists(paths.Wav));
|
||||
}
|
||||
|
||||
/// What N1MM has no place for lives in a folder of this program's own.
|
||||
[Fact]
|
||||
public void TheSettingsFileIsInOurOwnFolder()
|
||||
{
|
||||
UserPaths paths = new(root);
|
||||
|
||||
Assert.Equal(Path.Combine(root, "Nonemm", "settings.json"), paths.SettingsFile);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AnOlderVersionsFilesAreCopiedInOnce()
|
||||
{
|
||||
string older = Path.Combine(root, "older");
|
||||
Directory.CreateDirectory(Path.Combine(older, "Databases"));
|
||||
File.WriteAllText(Path.Combine(older, "Databases", "om5m.s3db"), "log");
|
||||
string database = Path.Combine(older, "Databases", "om5m.s3db");
|
||||
new Settings { DatabasePath = database }.Save(Path.Combine(older, "settings.json"));
|
||||
UserPaths paths = new(Path.Combine(root, "new"));
|
||||
paths.CreateFolders();
|
||||
|
||||
Assert.True(paths.AdoptOlderFiles(older));
|
||||
|
||||
Assert.Equal("log", File.ReadAllText(Path.Combine(paths.Databases, "om5m.s3db")));
|
||||
// the log that was opened is the log that was brought over
|
||||
Assert.Equal(
|
||||
Path.Combine(paths.Databases, "om5m.s3db"),
|
||||
Settings.Load(paths.SettingsFile).DatabasePath);
|
||||
Assert.False(paths.AdoptOlderFiles(older));
|
||||
// the older folder is left as it was
|
||||
Assert.True(File.Exists(database));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NothingIsCopiedWhenThereIsNoOlderFolder()
|
||||
{
|
||||
UserPaths paths = new(root);
|
||||
paths.CreateFolders();
|
||||
|
||||
Assert.False(paths.AdoptOlderFiles(Path.Combine(root, "nowhere")));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user