Innovenergy_trunk/csharp/App/OpenVpnCertificatesServer/Utils.cs

38 lines
1.3 KiB
C#

using System.Text;
using ICSharpCode.SharpZipLib.Tar;
namespace InnovEnergy.App.OpenVpnCertificatesServer;
public static class Utils
{
public static void WriteFile(this TarOutputStream tar, String fileName, Byte[] contents, Boolean executable = false)
{
var header = new TarHeader
{
Name = fileName.Trim('\\', '/'),
Mode = executable ? 33261 : 33188, // chmod: 100755, 100644
Size = contents.Length,
ModTime = DateTime.UtcNow,
TypeFlag = TarHeader.LF_NORMAL, // normal file
UserName = "",
GroupName = "",
};
var entry = new TarEntry(header);
tar.PutNextEntry(entry);
tar.Write(contents);
tar.CloseEntry();
}
public static void WriteTextFile(this TarOutputStream tar,
String fileName,
String contents,
Encoding? encoding = null,
Boolean executable = false)
{
encoding ??= Encoding.UTF8;
var data = encoding.GetBytes(contents);
tar.WriteFile(fileName, data, executable);
}
}