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}); } }