baze64/src/main.zig
2024-11-06 10:47:07 -08:00

38 lines
952 B
Zig

const std = @import("std");
const stdout = std.io.getStdOut().writer();
const b64 = @import("base64.zig");
const usageText =
\\Usage: baze64 {-d/-D} input
\\Args:
\\ -d -D: decode instead of encode
;
pub fn main() !void {
var gpa = std.heap.GeneralPurposeAllocator(.{}).init;
const allocator = gpa.allocator();
var args = try std.process.argsWithAllocator(allocator);
defer args.deinit();
var b = b64.Base64.init;
// Skip arg[0]
_ = args.skip();
var a = args.next();
if (a) |arg| {
if (std.mem.eql(u8, arg, "-d") or std.mem.eql(u8, arg, "-D")) {
a = args.next();
const decoded = try b.decode(allocator, arg);
try stdout.print("{s}", .{decoded});
} else {
const encoded = try b.decode(allocator, arg);
try stdout.print("{s}", .{encoded});
}
} else {
try stdout.print("{s}", .{usageText});
}
}