parsav  Diff

Differences From Artifact [c623f2c8c5]:

To Artifact [03b0c72484]:


    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