sdbd-demo/SDBD.Demo/Program.cs
2024-01-09 17:32:46 -05:00

27 lines
No EOL
753 B
C#

SDBD.ICodec codec = new SDBD.Codec();
var (encode, filename) = ParseArgs(args);
var inputData = File.ReadAllBytes(filename);
if(encode) {
SDBD.Document document = new (
new() {
{ "content-name", filename }
},
inputData
);
var outputData = codec.Encode(document);
File.WriteAllBytes($"{filename}.sbdb", outputData);
} else {
var document = codec.Decode(inputData);
File.WriteAllBytes(document.Metadata["content-name"], document.Data);
}
(bool encode, string filename) ParseArgs(string[] args) {
return args switch {
[var filename] => (true, filename),
["-d", var filename] => (false, filename),
["-e", var filename] => (true, filename),
_ => throw new Exception("I don't like those arguments")
};
}