Update to latest master.

This commit is contained in:
Felix (xq) Queißner 2021-01-04 11:37:36 +01:00
parent e062a59aa2
commit 8bc65a2846
5 changed files with 42 additions and 68 deletions

View file

@ -1,62 +0,0 @@
name: Build
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
schedule:
- cron: '0 5 * * *' # run at 5 AM UTC
jobs:
linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v1
with:
version: master
- name: Build demo
run: |
zig build-exe demo.zig
- name: Run demo
run: ./demo
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v1
with:
version: master
- name: Build demo
run: zig build-exe demo.zig
- name: Run demo
run: ./demo.exe
macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v1
with:
version: master
- name: Build demo
run: zig build-exe demo.zig
- name: Run demo
run: ./demo

32
.github/workflows/cross-build.yml vendored Normal file
View file

@ -0,0 +1,32 @@
name: Build
on:
push:
branches: [master]
pull_request:
branches: [master]
schedule:
- cron: "0 5 * * *" # run at 5 AM UTC
jobs:
cross-build:
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v2
- name: Setup Zig
uses: goto-bus-stop/setup-zig@v1
with:
version: master
- name: Build demo
run: |
zig build-exe demo.zig
- name: Run demo
run: ./demo --output demo --with-offset --signed_number=-10 --unsigned_number 20 --mode slow help this is borked

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
zig-cache
demo
demo.exe

View file

@ -86,15 +86,16 @@ pub fn parse(comptime Spec: type, args: *std.process.ArgIterator, allocator: *st
if (fld.name.len != 1)
@compileError("All shorthand fields must be exactly one character long!");
if (fld.name[0] == char) {
const real_fld = std.meta.fieldInfo(Spec, @field(Spec.shorthands, fld.name));
const real_name = @field(Spec.shorthands, fld.name);
const real_fld_type = @TypeOf(@field(result.options, real_name));
// -2 because we stripped of the "-" at the beginning
if (requiresArg(real_fld.field_type) and index != item.len - 2) {
if (requiresArg(real_fld_type) and index != item.len - 2) {
try std.io.getStdErr().writer().writeAll("An option with argument must be the last option for short command line options.\n");
return error.EncounteredUnexpectedArgument;
}
try parseOption(Spec, &result, args, real_fld.name, null);
try parseOption(Spec, &result, args, real_name, null);
found = true;
}

View file

@ -25,11 +25,11 @@ pub fn main() !void {
}, argsAllocator);
defer options.deinit();
std.debug.print("executable name: {}\n", .{options.executable_name});
std.debug.print("executable name: {s}\n", .{options.executable_name});
std.debug.print("parsed options:\n", .{});
inline for (std.meta.fields(@TypeOf(options.options))) |fld| {
std.debug.print("\t{} = {}\n", .{
std.debug.print("\t{s} = {}\n", .{
fld.name,
@field(options.options, fld.name),
});
@ -37,6 +37,6 @@ pub fn main() !void {
std.debug.print("parsed positionals:\n", .{});
for (options.positionals) |arg| {
std.debug.print("\t'{}'\n", .{arg});
std.debug.print("\t'{s}'\n", .{arg});
}
}