diff --git a/.woodpecker/.image.yml b/.woodpecker/.image.yml deleted file mode 100644 index 6b78861..0000000 --- a/.woodpecker/.image.yml +++ /dev/null @@ -1,17 +0,0 @@ -# These checks already get performed on the feature branches -branches: - exclude: [ main, dev ] -platform: linux/amd64 - -pipeline: - dryrun: - image: woodpeckerci/plugin-docker-buildx - secrets: [ docker_username, docker_password ] - settings: - repo: chewingbever/vieter - tag: dev - platforms: [ linux/arm/v7, linux/arm64/v8, linux/amd64 ] - dry_run: true - when: - event: pull_request - branch: dev diff --git a/.woodpecker/.publish.yml b/.woodpecker/.publish.yml index 9e5f39a..6d3b34e 100644 --- a/.woodpecker/.publish.yml +++ b/.woodpecker/.publish.yml @@ -1,7 +1,19 @@ -branches: [main, dev] +# branches: [main, dev] platform: linux/amd64 pipeline: + dryrun: + image: woodpeckerci/plugin-docker-buildx + secrets: [ docker_username, docker_password ] + settings: + repo: chewingbever/vieter + tag: dev + platforms: [ linux/arm/v7, linux/arm64/v8, linux/amd64 ] + dry_run: true + when: + event: pull_request + branch: dev + dev: image: woodpeckerci/plugin-docker-buildx secrets: [ docker_username, docker_password ] diff --git a/src/archive.v b/src/archive.v deleted file mode 100644 index ee72e3a..0000000 --- a/src/archive.v +++ /dev/null @@ -1,85 +0,0 @@ -// Bindings for the libarchive library - -#flag -larchive - -#include "archive.h" - -struct C.archive {} - -// Create a new archive struct for reading -fn C.archive_read_new() &C.archive - -// Configure the archive to work with zstd compression -fn C.archive_read_support_filter_zstd(&C.archive) - -// Configure the archive to work with a tarball content -fn C.archive_read_support_format_tar(&C.archive) - -// Open an archive for reading -fn C.archive_read_open_filename(&C.archive, &char, int) int - -// Go to next entry header in archive -fn C.archive_read_next_header(&C.archive, &&C.archive_entry) int - -// Skip reading the current entry -fn C.archive_read_data_skip(&C.archive) - -// Free an archive -fn C.archive_read_free(&C.archive) int - -// Read an archive entry's contents into a pointer -fn C.archive_read_data(&C.archive, voidptr, int) - -// Create a new archive struct for writing -fn C.archive_write_new() &C.archive - -// Sets the filter for the archive to gzip -fn C.archive_write_add_filter_gzip(&C.archive) - -// Sets to archive to "pax restricted" mode. Libarchive's "pax restricted" -// format is a tar format that uses pax extensions only when absolutely -// necessary. Most of the time, it will write plain ustar entries. This is the -// recommended tar format for most uses. You should explicitly use ustar format -// only when you have to create archives that will be readable on older -// systems; you should explicitly request pax format only when you need to -// preserve as many attributes as possible. -fn C.archive_write_set_format_pax_restricted(&C.archive) - -// Opens up the filename for writing -fn C.archive_write_open_filename(&C.archive, &char) - -// Write an entry to the archive file -fn C.archive_write_header(&C.archive, &C.archive_entry) - -#include "archive_entry.h" - -struct C.archive_entry {} - -// Create a new archive_entry struct -fn C.archive_entry_new() &C.archive_entry - -// Get the filename of the given entry -fn C.archive_entry_pathname(&C.archive_entry) &char - -// Get an entry's file size -// Note: this function actually returns an i64, but as this can't be used as an -// arugment to malloc, we'll just roll with it & assume an entry is never -// bigger than 4 gigs -fn C.archive_entry_size(&C.archive_entry) int - -// Set the pathname for the entry -fn C.archive_entry_set_pathname(&C.archive_entry, &char) - -// Sets the file size of the entry -fn C.archive_entry_set_size(&C.archive_entry, i64) - -// Sets the file type for an entry -fn C.archive_entry_set_filetype(&C.archive_entry, u32) - -// Sets the file permissions for an entry -fn C.archive_entry_set_perm(&C.archive_entry, int) - -#include - -// Compare two C strings; 0 means they're equal -fn C.strcmp(&char, &char) int diff --git a/src/package.v b/src/package.v index 9e8e503..cf727a9 100644 --- a/src/package.v +++ b/src/package.v @@ -3,6 +3,57 @@ module package import os import util +#flag -larchive + +#include "archive.h" + +struct C.archive {} + +// Create a new archive struct +fn C.archive_read_new() &C.archive + +// Configure the archive to work with zstd compression +fn C.archive_read_support_filter_zstd(&C.archive) + +// Configure the archive to work with a tarball content +fn C.archive_read_support_format_tar(&C.archive) + +// Open an archive for reading +fn C.archive_read_open_filename(&C.archive, &char, int) int + +// Go to next entry header in archive +fn C.archive_read_next_header(&C.archive, &&C.archive_entry) int + +// Skip reading the current entry +fn C.archive_read_data_skip(&C.archive) + +// Free an archive +fn C.archive_read_free(&C.archive) int + +// Read an archive entry's contents into a pointer +fn C.archive_read_data(&C.archive, voidptr, int) + +#include "archive_entry.h" + +struct C.archive_entry {} + +// Create a new archive_entry struct +fn C.archive_entry_new() &C.archive_entry + +// Get the filename of the given entry +fn C.archive_entry_pathname(&C.archive_entry) &char + +// Get an entry's file size +// Note: this function actually returns an i64, but as this can't be used as an +// arugment to malloc, we'll just roll with it & assume an entry is never +// bigger than 4 gigs +fn C.archive_entry_size(&C.archive_entry) int + +#include + +// Compare two C strings; 0 means they're equal +fn C.strcmp(&char, &char) int + // Represents a read archive struct Pkg { pub: