Home

Awesome

<!-- SPDX-FileCopyrightText: 2023 Shun Sakai SPDX-License-Identifier: Apache-2.0 OR MIT -->

sysexits-zig

CI

sysexits-zig is a library that provides the system exit code constants as defined by <sysexits.h>.

This library is a port of sysexits-rs.

Usage

Add this package to your build.zig.zon:

zig fetch --save git+https://github.com/sorairolake/sysexits-zig.git

Add the following to your build.zig:

const sysexits = b.dependency("sysexits", .{});
exe.root_module.addImport("sysexits", sysexits.module("sysexits"));

Example

const std = @import("std");

const sysexits = @import("sysexits");

pub fn main() !u8 {
    const bytes = [_]u8{ 0xf0, 0x9f, 0x92, 0x96 };
    if (std.unicode.utf8ValidateSlice(&bytes)) {
        try std.io.getStdOut().writer().print("{s}\n", .{bytes});
        return @intFromEnum(sysexits.ExitCode.ok);
    } else {
        try std.io.getStdErr().writer().print("Error: invalid UTF-8 sequence\n", .{});
        return @intFromEnum(sysexits.ExitCode.data_err);
    }
}

Documentation

To build the documentation:

zig build doc

The result is generated in zig-out/docs.

If you want to preview this, run a HTTP server locally. For example:

python -m http.server -d zig-out/docs

Then open http://localhost:8000/ in your browser.

Zig version

This library is compatible with Zig version 0.13.0.

Source code

The upstream repository is available at https://github.com/sorairolake/sysexits-zig.git.

The source code is also available at:

Changelog

Please see CHANGELOG.adoc.

Contributing

Please see CONTRIBUTING.adoc.

License

Copyright © 2023–2024 Shun Sakai (see AUTHORS.adoc)

This library is distributed under the terms of either the Apache License 2.0 or the MIT License.

This project is compliant with version 3.2 of the REUSE Specification. See copyright notices of individual files for more details on copyright and licensing information.