master
1//! Verifies that a file exists in a directory.
2//!
3//! Usage:
4//!
5//! ```
6//! exists_in <dir> <path>
7//! ```
8//!
9//! Where `<dir>/<path>` is the full path to the file.
10//! `<dir>` must be an absolute path.
11
12const std = @import("std");
13
14pub fn main() !void {
15 var arena_state = std.heap.ArenaAllocator.init(std.heap.page_allocator);
16 const arena = arena_state.allocator();
17 defer arena_state.deinit();
18
19 try run(arena);
20}
21
22fn run(allocator: std.mem.Allocator) !void {
23 var args = try std.process.argsWithAllocator(allocator);
24 defer args.deinit();
25 _ = args.next() orelse unreachable; // skip binary name
26
27 const dir_path = args.next() orelse {
28 std.log.err("missing <dir> argument", .{});
29 return error.BadUsage;
30 };
31
32 const relpath = args.next() orelse {
33 std.log.err("missing <path> argument", .{});
34 return error.BadUsage;
35 };
36
37 var dir = try std.fs.cwd().openDir(dir_path, .{});
38 defer dir.close();
39
40 _ = try dir.statFile(relpath);
41}