diff --git a/main.zig b/main.zig deleted file mode 100644 index 19961a6..0000000 --- a/main.zig +++ /dev/null @@ -1,67 +0,0 @@ -const std = @import("std"); -const eql = std.mem.eql; - - -pub fn main() !void { - var gpa = std.heap.GeneralPurposeAllocator(.{}){}; - defer _ = gpa.deinit(); - const allocator = gpa.allocator(); - - const stdin = std.io.getStdIn().reader(); - const stdout = std.io.getStdOut().writer(); - - const args = try std.process.argsAlloc(allocator); - defer std.process.argsFree(allocator, args); - - var path: []const u8 = undefined; - - if (args.len > 2) { - if (eql(u8, args[1], "-c")) { - path = args[2]; - } - } - else if (args.len == 2) { - if (eql(u8, args[1], "-h") or eql(u8, args[1], "help")) { - try stdout.print("(opt) -c /path/to/json_file\n", .{}); - try stdout.print("(opt) help / -h", .{}); - std.posix.exit(1); - } - } - - const env = try std.process.getEnvVarOwned(allocator, "USER"); - defer allocator.free(env); - - path = try std.fmt.allocPrint(allocator, "/home/{s}/.config/lister/data.json", .{env}); - defer allocator.free(path); - - const file = try std.fs.cwd().openFile(path, .{}); - defer file.close(); - - const data = try file.reader().readAllAlloc(allocator, 32768); - defer allocator.free(data); - - const Smth = struct { - name: []const u8, - desc: []const u8, - }; - - const Smths = []Smth; - - const json = try std.json.parseFromSlice(Smths, allocator, data, .{}); - defer json.deinit(); - - var buff: [256]u8 = undefined; - try stdout.print("Enter name: ", .{}); - const inp_wthd = try stdin.readUntilDelimiter(buff[0..], '\n'); - - var found = false; - for (json.value) |smth| { - if (eql(u8, smth.name, inp_wthd)) { - try stdout.print("{s} -> {s}\n", .{smth.name, smth.desc}); - found = true; - } - } - if (!found) { - try stdout.print("Bad value :(", .{}); - } -}