| ... | ... | @@ -1,37 +0,0 @@ |
| 1 | | //! Checks that the basename of the given path matches a string. |
| 2 | | //! |
| 3 | | //! Usage: |
| 4 | | //! |
| 5 | | //! ``` |
| 6 | | //! has_basename <path> <basename> |
| 7 | | //! ``` |
| 8 | | //! |
| 9 | | //! <path> must be absolute. |
| 10 | | //! |
| 11 | | //! Returns a non-zero exit code if basename |
| 12 | | //! does not match the given string. |
| 13 | | |
| 14 | | const std = @import("std"); |
| 15 | | |
| 16 | | pub fn main(init: std.process.Init) !void { |
| 17 | | var args = try init.minimal.args.iterateAllocator(init.gpa); |
| 18 | | defer args.deinit(); |
| 19 | | _ = args.next() orelse unreachable; // skip binary name |
| 20 | | |
| 21 | | const path = args.next() orelse { |
| 22 | | std.log.err("missing <path> argument", .{}); |
| 23 | | return error.BadUsage; |
| 24 | | }; |
| 25 | | |
| 26 | | const basename = args.next() orelse { |
| 27 | | std.log.err("missing <basename> argument", .{}); |
| 28 | | return error.BadUsage; |
| 29 | | }; |
| 30 | | |
| 31 | | const actual_basename = std.fs.path.basename(path); |
| 32 | | if (std.mem.eql(u8, actual_basename, basename)) { |
| 33 | | return; |
| 34 | | } |
| 35 | | |
| 36 | | return error.NotEqual; |
| 37 | | } |