pkin/strff_test.c
2026-09-04 19:59:24 +02:00

63 lines
1.8 KiB
C

#include <libowfat/open.h>
#include <libowfat/errmsg.h>
#include <libowfat/stralloc.h>
#include "strff.h"
typedef struct {
stralloc name;
stralloc version;
stralloc makedeps;
stralloc buildcmd;
stralloc installcmd;
} pkg;
static struct strff cfgff;
static void pkg_load(pkg *pkg, char *path)
{
int fd;
fd = open_read(path);
if (fd < 0)
diesys(111, "open_read ", path);
stralloc_init(&pkg->name);
stralloc_init(&pkg->version);
stralloc_init(&pkg->makedeps);
stralloc_init(&pkg->buildcmd);
stralloc_init(&pkg->installcmd);
strff_open(&cfgff, fd);
if (!strff_get(&cfgff, "name", &pkg->name))
diesys(111, "cannot get value for name");
if (!strff_get(&cfgff, "version", &pkg->version))
diesys(111, "cannot get value for version");
if (!strff_get(&cfgff, "makedeps", &pkg->makedeps))
diesys(111, "cannot get value for makedeps");
if (!strff_get(&cfgff, "build", &pkg->buildcmd))
diesys(111, "cannot get value for buildcmd");
if (!strff_get(&cfgff, "install", &pkg->installcmd))
diesys(111, "cannot get value for installcmd");
}
int main()
{
pkg pkg;
pkg_load(&pkg, "./conf.strff");
buffer_puts(buffer_1, "name is '");
buffer_put(buffer_1, pkg.name.s, pkg.name.len);
buffer_puts(buffer_1, "', ");
buffer_puts(buffer_1, "version is '");
buffer_put(buffer_1, pkg.version.s, pkg.version.len);
buffer_puts(buffer_1, "', ");
buffer_puts(buffer_1, "makedeps is '");
buffer_put(buffer_1, pkg.makedeps.s, pkg.makedeps.len);
buffer_puts(buffer_1, "', ");
buffer_puts(buffer_1, "buildcmd is '");
buffer_put(buffer_1, pkg.buildcmd.s, pkg.buildcmd.len);
buffer_puts(buffer_1, "', ");
buffer_puts(buffer_1, "installcmd is '");
buffer_put(buffer_1, pkg.installcmd.s, pkg.installcmd.len);
buffer_putsflush(buffer_1, "'\n");
return 0;
}