diff --git a/.gitignore b/.gitignore index acf3c11..0ec8652 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ rebar rt.work .hgignore .eunit +rebar.cmd +rebar.ps1 diff --git a/bootstrap b/bootstrap index 024fa6d..75c2ffc 100755 --- a/bootstrap +++ b/bootstrap @@ -79,11 +79,15 @@ main(Args) -> halt(1) end, - %% Finally, update executable perms for our script + %% Finally, update executable perms for our script on *nix, + %% or write out script files on win32. case os:type() of {unix,_} -> [] = os:cmd("chmod u+x rebar"), ok; + {win32,_} -> + write_windows_scripts(), + ok; _ -> ok end, @@ -126,3 +130,18 @@ vcs_info([{Id, Dir, Cmd} | Rest]) -> false -> vcs_info(Rest) end. + +write_windows_scripts() -> + PowershellScript= + "$basedir = Split-Path -Parent $MyInvocation.MyCommand.Path\r\n" + "$rebar = Join-Path $basedir \"rebar\"\r\n" + "escript.exe $rebar $args\r\n", + CmdScript= + "@echo off\r\n" + "setlocal\r\n" + "set rebarscript=%~f0\r\n" + "escript.exe \"%rebarscript:.bat=%i\" %*\r\n", + file:write_file("rebar.cmd", CmdScript), + UTF16BE = {utf16, big}, + file:write_file("rebar.ps1", [unicode:encoding_to_bom(UTF16BE), + unicode:characters_to_binary(PowershellScript, utf8, UTF16BE)]). diff --git a/rebar.bat b/rebar.bat deleted file mode 100644 index 5cb5681..0000000 --- a/rebar.bat +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -setlocal -set rebarscript=%~f0 -escript.exe "%rebarscript:.bat=%" %*