63 lines
1.8 KiB
C
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;
|
|
}
|