case filelib:ensure_dir(freetds_config()) of
ok ->
try
- ok = file:write_file(freetds_config(), FreeTDS, [append]),
- ok = file:write_file(odbcinst_config(), ODBCINST),
- ok = file:write_file(odbc_config(), ODBCINI, [append]),
+ ok = write_file_if_new(freetds_config(), FreeTDS),
+ ok = write_file_if_new(odbcinst_config(), ODBCINST),
+ ok = write_file_if_new(odbc_config(), ODBCINI),
os:putenv("ODBCSYSINI", tmp_dir()),
os:putenv("FREETDS", freetds_config()),
os:putenv("FREETDSCONF", freetds_config()),
Err
end.
+write_file_if_new(File, Payload) ->
+ case filelib:is_file(File) of
+ true -> ok;
+ false -> file:write_file(File, Payload)
+ end.
+
tmp_dir() ->
case os:type() of
{win32, _} -> filename:join([os:getenv("HOME"), "conf"]);