xref: /inferno-os/module/cfgfile.m (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
1*46439007SCharles.Forsyth#
2*46439007SCharles.Forsyth# simple adt that operates on whitespace separated config files
3*46439007SCharles.Forsyth# such as /services/webget/config
4*46439007SCharles.Forsyth#
5*46439007SCharles.ForsythCfgFile: module
6*46439007SCharles.Forsyth{
7*46439007SCharles.Forsyth	PATH: con	"/dis/lib/cfgfile.dis";
8*46439007SCharles.Forsyth	ConfigFile: adt
9*46439007SCharles.Forsyth	{
10*46439007SCharles.Forsyth		getcfg:	fn(me: self ref ConfigFile,field:string):list of string;
11*46439007SCharles.Forsyth		setcfg:	fn(me: self ref ConfigFile,field:string,val:string);
12*46439007SCharles.Forsyth		delete:	fn(me: self ref ConfigFile,field:string);
13*46439007SCharles.Forsyth		flush:	fn(me: self ref ConfigFile): string;
14*46439007SCharles.Forsyth
15*46439007SCharles.Forsyth		 # ----- private ------
16*46439007SCharles.Forsyth		lines:	list of string;
17*46439007SCharles.Forsyth		file:	string;
18*46439007SCharles.Forsyth		readonly:	int;
19*46439007SCharles.Forsyth	};
20*46439007SCharles.Forsyth
21*46439007SCharles.Forsyth	init:	fn(file:string):ref ConfigFile;
22*46439007SCharles.Forsyth	verify:	fn(defaultpath: string, path: string) :ref Sys->FD;
23*46439007SCharles.Forsyth};
24