zig fmt: update to new I/O API
This commit is contained in:
66
src/fmt.zig
66
src/fmt.zig
@@ -35,15 +35,12 @@ const Fmt = struct {
|
||||
gpa: Allocator,
|
||||
arena: Allocator,
|
||||
out_buffer: std.Io.Writer.Allocating,
|
||||
stdout_writer: *fs.File.Writer,
|
||||
|
||||
const SeenMap = std.AutoHashMap(fs.File.INode, void);
|
||||
};
|
||||
|
||||
pub fn run(
|
||||
gpa: Allocator,
|
||||
arena: Allocator,
|
||||
args: []const []const u8,
|
||||
) !void {
|
||||
pub fn run(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
|
||||
var color: Color = .auto;
|
||||
var stdin_flag = false;
|
||||
var check_flag = false;
|
||||
@@ -60,8 +57,7 @@ pub fn run(
|
||||
const arg = args[i];
|
||||
if (mem.startsWith(u8, arg, "-")) {
|
||||
if (mem.eql(u8, arg, "-h") or mem.eql(u8, arg, "--help")) {
|
||||
const stdout = std.fs.File.stdout().deprecatedWriter();
|
||||
try stdout.writeAll(usage_fmt);
|
||||
try fs.File.stdout().writeAll(usage_fmt);
|
||||
return process.cleanExit();
|
||||
} else if (mem.eql(u8, arg, "--color")) {
|
||||
if (i + 1 >= args.len) {
|
||||
@@ -156,13 +152,16 @@ pub fn run(
|
||||
process.exit(code);
|
||||
}
|
||||
|
||||
return std.fs.File.stdout().writeAll(formatted);
|
||||
return fs.File.stdout().writeAll(formatted);
|
||||
}
|
||||
|
||||
if (input_files.items.len == 0) {
|
||||
fatal("expected at least one source file argument", .{});
|
||||
}
|
||||
|
||||
var stdout_buffer: [4096]u8 = undefined;
|
||||
var stdout_writer = fs.File.stdout().writer(&stdout_buffer);
|
||||
|
||||
var fmt: Fmt = .{
|
||||
.gpa = gpa,
|
||||
.arena = arena,
|
||||
@@ -172,6 +171,7 @@ pub fn run(
|
||||
.force_zon = force_zon,
|
||||
.color = color,
|
||||
.out_buffer = .init(gpa),
|
||||
.stdout_writer = &stdout_writer,
|
||||
};
|
||||
defer fmt.seen.deinit();
|
||||
defer fmt.out_buffer.deinit();
|
||||
@@ -198,46 +198,10 @@ pub fn run(
|
||||
if (fmt.any_error) {
|
||||
process.exit(1);
|
||||
}
|
||||
try fmt.stdout_writer.interface.flush();
|
||||
}
|
||||
|
||||
const FmtError = error{
|
||||
SystemResources,
|
||||
OperationAborted,
|
||||
IoPending,
|
||||
BrokenPipe,
|
||||
Unexpected,
|
||||
WouldBlock,
|
||||
Canceled,
|
||||
FileClosed,
|
||||
DestinationAddressRequired,
|
||||
DiskQuota,
|
||||
FileTooBig,
|
||||
MessageTooBig,
|
||||
InputOutput,
|
||||
NoSpaceLeft,
|
||||
AccessDenied,
|
||||
OutOfMemory,
|
||||
RenameAcrossMountPoints,
|
||||
ReadOnlyFileSystem,
|
||||
LinkQuotaExceeded,
|
||||
FileBusy,
|
||||
EndOfStream,
|
||||
Unseekable,
|
||||
NotOpenForWriting,
|
||||
UnsupportedEncoding,
|
||||
InvalidEncoding,
|
||||
ConnectionResetByPeer,
|
||||
SocketNotConnected,
|
||||
LockViolation,
|
||||
NetNameDeleted,
|
||||
InvalidArgument,
|
||||
ProcessNotFound,
|
||||
ConnectionTimedOut,
|
||||
NotOpenForReading,
|
||||
StreamTooLong,
|
||||
} || fs.File.OpenError;
|
||||
|
||||
fn fmtPath(fmt: *Fmt, file_path: []const u8, check_mode: bool, dir: fs.Dir, sub_path: []const u8) FmtError!void {
|
||||
fn fmtPath(fmt: *Fmt, file_path: []const u8, check_mode: bool, dir: fs.Dir, sub_path: []const u8) !void {
|
||||
fmtPathFile(fmt, file_path, check_mode, dir, sub_path) catch |err| switch (err) {
|
||||
error.IsDir, error.AccessDenied => return fmtPathDir(fmt, file_path, check_mode, dir, sub_path),
|
||||
else => {
|
||||
@@ -254,7 +218,7 @@ fn fmtPathDir(
|
||||
check_mode: bool,
|
||||
parent_dir: fs.Dir,
|
||||
parent_sub_path: []const u8,
|
||||
) FmtError!void {
|
||||
) !void {
|
||||
var dir = try parent_dir.openDir(parent_sub_path, .{ .iterate = true });
|
||||
defer dir.close();
|
||||
|
||||
@@ -290,7 +254,7 @@ fn fmtPathFile(
|
||||
check_mode: bool,
|
||||
dir: fs.Dir,
|
||||
sub_path: []const u8,
|
||||
) FmtError!void {
|
||||
) !void {
|
||||
const source_file = try dir.openFile(sub_path, .{});
|
||||
var file_closed = false;
|
||||
errdefer if (!file_closed) source_file.close();
|
||||
@@ -381,8 +345,7 @@ fn fmtPathFile(
|
||||
return;
|
||||
|
||||
if (check_mode) {
|
||||
const stdout = std.fs.File.stdout().deprecatedWriter();
|
||||
try stdout.print("{s}\n", .{file_path});
|
||||
try fmt.stdout_writer.interface.print("{s}\n", .{file_path});
|
||||
fmt.any_error = true;
|
||||
} else {
|
||||
var af = try dir.atomicFile(sub_path, .{ .mode = stat.mode });
|
||||
@@ -390,8 +353,7 @@ fn fmtPathFile(
|
||||
|
||||
try af.file.writeAll(fmt.out_buffer.getWritten());
|
||||
try af.finish();
|
||||
const stdout = std.fs.File.stdout().deprecatedWriter();
|
||||
try stdout.print("{s}\n", .{file_path});
|
||||
try fmt.stdout_writer.interface.print("{s}\n", .{file_path});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user