Skip to content

Commit

Permalink
Remove Mono.Posix
Browse files Browse the repository at this point in the history
  • Loading branch information
Joel Christner committed May 16, 2019
1 parent 2bc36e4 commit d8512e5
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 177 deletions.
171 changes: 4 additions & 167 deletions WatsonSyslog/Classes/Common.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@
using System.Xml.Linq;
using System.Xml.Serialization;
using System.Xml.XPath;
using Newtonsoft.Json;
using Mono.Posix;
using Mono.Unix;
using Mono.Unix.Native;
using Newtonsoft.Json;

namespace WatsonSyslog
{
Expand Down Expand Up @@ -53,57 +50,7 @@ public static class Common
#endregion

#region Public-Methods

#region Environment

public static bool IsAdmin()
{
int platform = (int)Environment.OSVersion.Platform;
if ((platform == 4) || (platform == 6) || (platform == 128))
{
#region Linux

// see http://stackoverflow.com/questions/2615997/winforms-console-application-on-mono-how-to-know-it-runs-as-root
if (Mono.Unix.Native.Syscall.getuid() == 0) return true;

#endregion
}
else
{
#region Windows

// see http://stackoverflow.com/questions/11660184/c-sharp-check-if-run-as-administrator
var identity = WindowsIdentity.GetCurrent();
var principal = new WindowsPrincipal(identity);
if (principal.IsInRole(WindowsBuiltInRole.Administrator)) return true;

#endregion
}

return false;
}

public static void ExitApplication(string method, string text, int returnCode)
{
Console.WriteLine("---");
Console.WriteLine("");
Console.WriteLine("The application has exited.");
Console.WriteLine("");
Console.WriteLine(" Requested by : " + method);
Console.WriteLine(" Reason text : " + text);
Console.WriteLine("");
Console.WriteLine("---");
Environment.Exit(returnCode);
return;
}

public static string GetPathSeparator()
{
return @"\";
}

#endregion


#region Serialization

public static string SerializeJsonBuiltIn(object obj)
Expand Down Expand Up @@ -1954,87 +1901,7 @@ public static bool MoveDirectory(string from, string to)
return false;
}
}

public static bool WalkDirectory(
int depth,
string directory,
bool prependFilename,
out List<string> subdirectories,
out List<string> files,
out long bytes,
bool recursive)
{
subdirectories = new List<string>();
files = new List<string>();
bytes = 0;

try
{
subdirectories = Common.GetSubdirectoryList(directory, false);
files = Common.GetFileList(directory, prependFilename);

if (files != null && files.Count > 0)
{
foreach (String currFile in files)
{
FileInfo fi = new FileInfo(currFile);
bytes += fi.Length;
}
}

List<string> queueSubdirectories = new List<string>();
List<string> queueFiles = new List<string>();
long queueBytes = 0;

if (recursive)
{
if (subdirectories == null || subdirectories.Count < 1) return true;
depth += 2;

foreach (string curr in subdirectories)
{
List<string> childSubdirectories = new List<string>();
List<string> childFiles = new List<string>();
long childBytes = 0;

WalkDirectory(
depth,
curr,
prependFilename,
out childSubdirectories,
out childFiles,
out childBytes,
true);

if (childSubdirectories != null)
foreach (string childSubdir in childSubdirectories)
queueSubdirectories.Add(childSubdir);

if (childFiles != null)
foreach (string childFile in childFiles)
queueFiles.Add(childFile);

queueBytes += childBytes;
}
}

if (queueSubdirectories != null)
foreach (string queueSubdir in queueSubdirectories)
subdirectories.Add(queueSubdir);

if (queueFiles != null)
foreach (string queueFile in queueFiles)
files.Add(queueFile);

bytes += queueBytes;
return true;
}
catch (Exception)
{
return false;
}
}


public static bool DirectoryStatistics(
DirectoryInfo dirinfo,
bool recursive,
Expand Down Expand Up @@ -2125,37 +1992,7 @@ public static bool VerifyFileReadAccess(string filename)
return false;
}
}

public static List<string> GetFileList(string directory, bool prependFilename)
{
try
{
/*
*
* Returns only the filename unless prependFilename is set
* If prependFilename is set, directory is prepended
*
*/

string separator = GetPathSeparator();
DirectoryInfo info = new DirectoryInfo(directory);
FileInfo[] files = info.GetFiles().OrderBy(p => p.CreationTime).ToArray();
List<string> fileList = new List<string>();

foreach (FileInfo file in files)
{
if (prependFilename) fileList.Add(directory + separator + file.Name);
else fileList.Add(file.Name);
}

return fileList;
}
catch (Exception)
{
return null;
}
}


public static bool WriteFile(string filename, string content, bool append)
{
using (StreamWriter writer = new StreamWriter(filename, append))
Expand Down
13 changes: 5 additions & 8 deletions WatsonSyslog/SyslogServer.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,8 @@
<NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>
<ItemGroup>
<Reference Include="Mono.Posix, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
<HintPath>..\packages\Mono.Posix.4.0.0.0\lib\net40\Mono.Posix.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
Expand All @@ -82,9 +79,6 @@
<Compile Include="SyslogServer.cs" />
<Compile Include="WriterTask.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.5">
<Visible>False</Visible>
Expand All @@ -102,6 +96,9 @@
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
Expand Down
3 changes: 1 addition & 2 deletions WatsonSyslog/packages.config
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Mono.Posix" version="4.0.0.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net45" />
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net45" />
</packages>

0 comments on commit d8512e5

Please sign in to comment.