aboutsummaryrefslogtreecommitdiff
path: root/strip-store-paths/strip-store-paths.zig
diff options
context:
space:
mode:
Diffstat (limited to 'strip-store-paths/strip-store-paths.zig')
-rw-r--r--strip-store-paths/strip-store-paths.zig23
1 files changed, 7 insertions, 16 deletions
diff --git a/strip-store-paths/strip-store-paths.zig b/strip-store-paths/strip-store-paths.zig
index 58d7504..243bd4a 100644
--- a/strip-store-paths/strip-store-paths.zig
+++ b/strip-store-paths/strip-store-paths.zig
@@ -3,21 +3,12 @@ const std = @import("std");
pub const File = struct {
ptr: []align(std.mem.page_size) u8,
len: u64,
- allocator: *std.mem.Allocator,
+ allocator: std.mem.Allocator,
- pub fn init(fd: std.os.fd_t, allocator: *std.mem.Allocator) !File {
+ pub fn init(fd: std.os.fd_t, allocator: std.mem.Allocator) !File {
var stats = try std.os.fstat(fd);
- var ptr = try std.os.mmap(null,
- @intCast(usize, stats.size),
- std.os.PROT_READ | std.os.PROT_WRITE,
- std.os.MAP_SHARED,
- fd,
- 0);
- return File {
- .ptr = ptr,
- .len = @intCast(u64, stats.size),
- .allocator = allocator
- };
+ var ptr = try std.os.mmap(null, @intCast(usize, stats.size), std.os.PROT.READ | std.os.PROT.WRITE, std.os.MAP.SHARED, fd, 0);
+ return File{ .ptr = ptr, .len = @intCast(u64, stats.size), .allocator = allocator };
}
pub fn deinit(self: *File) void {
@@ -30,7 +21,7 @@ pub const File = struct {
pub fn main() !void {
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
- const allocator = &arena.allocator;
+ const allocator = arena.allocator();
const args = try std.process.argsAlloc(allocator);
if (args.len != 2) {
@@ -40,7 +31,7 @@ pub fn main() !void {
const path = args[1];
// mmap input
- var fd = try std.os.open(path, std.os.O_RDWR, 0);
+ var fd = try std.os.open(path, std.os.O.RDWR, 0);
var input = try File.init(fd, allocator);
defer input.deinit();
@@ -48,7 +39,7 @@ pub fn main() !void {
var i: usize = 0;
const needle = "/nix/store/";
while (std.mem.indexOfPos(u8, input.ptr, i, needle)) |idx| {
- i = idx + needle.len;
+ i = idx + needle.len;
var j = i + 32; // pos of - in a true path
if (j < input.len and input.ptr[j] == '-') {
std.mem.copy(u8, input.ptr[i..], "00000000000000000000000000000000");