diff --git a/README.md b/README.md index aadb37b..ba01cd0 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,6 @@ git clone https://git.medvidek77.tech/Medvidek77/lister.git && cd lister/ zig build ``` -* For build with zig 0.13.x or older(untested) you can apply patch for build.zig.zon -``` -patch build.zig.zon < zig-0.13.0-build.patch -``` - * (Optional) Add binary file to /usr/bin as root ``` cp zig-out/bin/lister /usr/bin diff --git a/build.zig.zon b/build.zig.zon index 2ae1585..c476690 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,10 +1,66 @@ .{ - .name = .lister, + // This is the default name used by packages depending on this one. For + // example, when a user runs `zig fetch --save `, this field is used + // as the key in the `dependencies` table. Although the user can choose a + // different name, most users will stick with this provided value. + // + // It is redundant to include "zig" in this name because it is already + // within the Zig package namespace. + .name = "lister", - .fingerprint=0xd6253bb2c7545428, + // This is a [Semantic Version](https://semver.org/). + // In a future version of Zig it will be used for package deduplication. + .version = "0.1.0", - .version = "0.2.0", + // This field is optional. + // This is currently advisory only; Zig does not yet do anything + // with this value. + //.minimum_zig_version = "0.11.0", + // This field is optional. + // Each dependency must either provide a `url` and `hash`, or a `path`. + // `zig build --fetch` can be used to fetch all dependencies of a package, recursively. + // Once all dependencies are fetched, `zig build` no longer requires + // internet connectivity. + .dependencies = .{ + // See `zig fetch --save ` for a command-line interface for adding dependencies. + //.example = .{ + // // When updating this field to a new URL, be sure to delete the corresponding + // // `hash`, otherwise you are communicating that you expect to find the old hash at + // // the new URL. + // .url = "https://example.com/foo.tar.gz", + // + // // This is computed from the file contents of the directory of files that is + // // obtained after fetching `url` and applying the inclusion rules given by + // // `paths`. + // // + // // This field is the source of truth; packages do not come from a `url`; they + // // come from a `hash`. `url` is just one of many possible mirrors for how to + // // obtain a package matching this `hash`. + // // + // // Uses the [multihash](https://multiformats.io/multihash/) format. + // .hash = "...", + // + // // When this is provided, the package is found in a directory relative to the + // // build root. In this case the package's hash is irrelevant and therefore not + // // computed. This field and `url` are mutually exclusive. + // .path = "foo", + + // // When this is set to `true`, a package is declared to be lazily + // // fetched. This makes the dependency only get fetched if it is + // // actually used. + // .lazy = false, + //}, + }, + + // Specifies the set of files and directories that are included in this package. + // Only files and directories listed here are included in the `hash` that + // is computed for this package. Only files listed here will remain on disk + // when using the zig package manager. As a rule of thumb, one should list + // files required for compilation plus any license(s). + // Paths are relative to the build root. Use the empty string (`""`) to refer to + // the build root itself. + // A directory listed here means that all files within, recursively, are included. .paths = .{ "build.zig", "build.zig.zon", diff --git a/src/main.zig b/src/main.zig index 19961a6..d460eb8 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,5 +1,4 @@ const std = @import("std"); -const eql = std.mem.eql; pub fn main() !void { @@ -7,31 +6,10 @@ pub fn main() !void { 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}); + const 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, .{}); @@ -49,19 +27,8 @@ pub fn main() !void { 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 :(", .{}); + std.debug.print("{s} -> {s}\n", .{smth.name, smth.desc}); } } diff --git a/zig-0.13.0-build.patch b/zig-0.13.0-build.patch deleted file mode 100644 index ae8cac2..0000000 --- a/zig-0.13.0-build.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- build.zig.zon 2025-04-20 15:27:21.145626049 +0200 -+++ build.zig.zon.13 2025-04-20 15:28:05.406763225 +0200 -@@ -1,7 +1,5 @@ - .{ -- .name = .lister, -- -- .fingerprint=0xd6253bb2c7545428, -+ .name = "lister", - - .version = "0.2.0", -