@ -196,6 +196,21 @@ maybe_warn_about_name(Vars) ->
ok
end .
maybe_warn_about_name_clash ( File ) - >
case filename : extension ( File ) of
" .erl " - >
Module0 = re : replace ( filename : basename ( File ) , " \ .erl " , " " , [ { return , list } ] ) ,
Module = list_to_atom ( Module0 ) ,
try Module : module_info ( ) of
_ - > ? WARN ( " The module definition of ' ~ ts' in file ~ ts "
" will clash with an existing Erlang module. " ,
[ Module , File ] )
catch
_ : _ - > ok
end ;
_ - > ok
end .
validate_atom ( Str ) - >
case io_lib : fread ( " ~ a " , unicode : characters_to_list ( Str ) ) of
{ ok , [ Atom ] , " " } - >
@ -258,6 +273,7 @@ execute_template([{template, From, To} | Terms], Files, {Template, Type, Cwd}, V
In = expand_path ( From , Vars ) ,
Out = expand_path ( To , Vars ) ,
Tpl = load_file ( Files , Type , filename : join ( Cwd , In ) ) ,
maybe_warn_about_name_clash ( Out ) ,
case write_file ( Out , render ( Tpl , Vars ) , Force ) of
ok - >
ok ;