anchor.diff:  			RespPipe = open_port("/tmp/actordb.resp", [out,eof,binary]),
   			P = parse_args(#dp{req = ReqPipe, resp = RespPipe, env = shell},Args)
   	end,
  +	dologin(P),
  +	case P#dp.filebin of
  +		undefined ->
  +			% port_command(RespPipe, [?COMMANDS,<<"\r\n">>]),
  +			print(P,?COMMANDS),
  +			dopipe(P);
  +		_ ->
  +			cmd_lines(P,binary:split(P#dp.filebin,<<"\n">>,[global])),
  +			halt(1)
  +	end.
  +
  +dologin(P) ->
   	PoolInfo = [{size, 1}, {max_overflow, 5}],
   	WorkerParams = [{hostname, P#dp.addr},
   		{username, P#dp.username},
  
positive.code: 	append(P,Bin).
  
  send_cfg_query(P,Bin) ->
  	case actordb_client:exec_config(butil:tobin(Bin)) of
  		{ok,{false,Map}} ->
  			map_print(P,Map);
  		{ok,{changes,_Rowid,_NChanged}} ->
  			print(P,"Config updated.",[]);
  		Err ->
  			print(P,"Error: ~p",[Err])
  	end.
  
  send_schema_query(P,Bin) ->
  	case actordb_client:exec_schema(butil:tobin(Bin)) of
  		{ok,{false,Map}} ->
  			map_print(P,Map);
  		{ok,{changes,_Rowid,_NChanged}} ->
  			print(P,"Schema updated.",[]);
  		Err ->
  			print(P,"Error: ~p",[Err])
  	end.
  
negative.code: 	wxEvtHandler:connect(TextInput,key_down,[{callback,fun input/2},{userData,{TextInput,?PROMPT}}]),
  	wxloop(#wc{wx = Wx, dlg = Dlg, input = TextInput, disp = TextDisplay}),
  	wx:destroy(Wx).
  
  -record(lg,{dlg, uinp, pinp, btn}).
  
  wxloop(P) ->
  	receive
  