summaryrefslogtreecommitdiff
path: root/bootstrap
diff options
context:
space:
mode:
authorMatt Campbell <matthew.campbell@asolutions.com>2011-12-21 23:27:42 -0600
committerTuncer Ayaz <tuncer.ayaz@gmail.com>2011-12-25 16:46:13 +0100
commit8c01734e98c3eedfd299884e1553ca315e55bda4 (patch)
tree89dd12234c2da1b055a37b0021317e5c97e9e2ac /bootstrap
parente4c427be2142a08e5f287050116837ae70d502f8 (diff)
downloadrebar-8c01734e98c3eedfd299884e1553ca315e55bda4.tar.gz
bootstrap: generate windows scripts
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap21
1 files changed, 20 insertions, 1 deletions
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)]).