Differences From
Artifact [c623f2c8c5]:
67 67 local fn = f.field or f[1]
68 68 local ft = f.type or f[2]
69 69 if fn == meth then rt = ft.type.returntype break end
70 70 end
71 71
72 72 return quote
73 73 var r: rt
74 - if self.all
74 + if self.all or (self.srv ~= nil and self.srv.sources.ct == 1)
75 75 then r=self.srv:[meth]([expr])
76 76 elseif self.src ~= nil then r=self.src:[meth]([expr])
77 77 else lib.bail('no data source specified')
78 78 end
79 79 in r end
80 80 end)
81 81
................................................................................
271 271 return 1
272 272 end
273 273 if dbmode.arglist.ct < 1 then goto cmderr end
274 274
275 275 srv:setup(cnf)
276 276 if lib.str.cmp(dbmode.arglist(0),'init') == 0 and dbmode.arglist.ct == 2 then
277 277 lib.report('initializing new database structure for domain ', dbmode.arglist(1))
278 - dlg:dbsetup()
279 - srv:conprep(lib.store.prepmode.conf)
280 - dlg:conf_set('instance-name', dbmode.arglist(1))
281 - do var sec: int8[65] gensec(&sec[0])
282 - dlg:conf_set('server-secret', &sec[0])
283 - end
284 - lib.report('database setup complete; use mkroot to create an administrative user')
278 + if dlg:dbsetup() then
279 + srv:conprep(lib.store.prepmode.conf)
280 + dlg:conf_set('instance-name', dbmode.arglist(1))
281 + do var sec: int8[65] gensec(&sec[0])
282 + dlg:conf_set('server-secret', &sec[0])
283 + end
284 + lib.report('database setup complete; use mkroot to create an administrative user')
285 + else lib.bail('initialization process interrupted') end
285 286 elseif lib.str.cmp(dbmode.arglist(0),'obliterate') == 0 then
286 287 var confirmstrs = array(
287 - 'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'eta', 'nu', 'kappa'
288 + 'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'eta', 'nu', 'kappa',
289 + 'emerald', 'carnelian', 'sapphire', 'ruby', 'amethyst'
288 290 )
289 291 var cfmstr: int8[64] cfmstr[0] = 0
290 292 var tdx = lib.osclock.time(nil) / 60
291 293 for i=0,3 do
292 294 if i ~= 0 then lib.str.cat(&cfmstr[0], '-') end
293 295 lib.str.cat(&cfmstr[0], confirmstrs[(tdx ^ (173*i)) % [confirmstrs.type.N]])
294 296 end