|
|
|
@ -36,6 +36,11 @@ namespace Avalonia.FreeDesktop |
|
|
|
|
|
|
|
private string GetSymlinkTarget(string x) => Path.GetFullPath(Path.Combine(DevByLabelDir, NativeMethods.ReadLink(x))); |
|
|
|
|
|
|
|
private string UnescapeString(string input, string regexText, int escapeBase) => |
|
|
|
new Regex(regexText).Replace(input, m => Convert.ToChar(Convert.ToByte(m.Groups[1].Value, escapeBase)).ToString()); |
|
|
|
|
|
|
|
private string UnescapePathFromProcMounts(string input) => UnescapeString(input, @"\\(\d{3})", 8); |
|
|
|
|
|
|
|
private void Poll(long _) |
|
|
|
{ |
|
|
|
var fProcPartitions = File.ReadAllLines(ProcPartitionsDir) |
|
|
|
@ -47,7 +52,7 @@ namespace Avalonia.FreeDesktop |
|
|
|
|
|
|
|
var fProcMounts = File.ReadAllLines(ProcMountsDir) |
|
|
|
.Select(x => x.Split(' ')) |
|
|
|
.Select(x => (x[0], x[1])) |
|
|
|
.Select(x => (x[0], UnescapePathFromProcMounts(x[1]))) |
|
|
|
.Where(x => !x.Item2.StartsWith("/snap/", StringComparison.InvariantCultureIgnoreCase)); |
|
|
|
|
|
|
|
var labelDirEnum = Directory.Exists(DevByLabelDir) ? |
|
|
|
|