WIP: Windows install/starup tweaks

This commit is contained in:
2020-01-19 23:44:46 +09:00
parent 9f1763ec1c
commit 4e3c5d7202
7 changed files with 69 additions and 30 deletions
+31 -9
View File
@@ -27,7 +27,8 @@ main(_) ->
unpack(OS, ZompDir) ->
BaseDir = filename:dirname(ZompDir),
ok = erl_tar:extract("zomp.tar.gz", [compressed, {cwd, BaseDir}]),
{ok, Files} = zip:extract("zomp.zip", [{cwd, BaseDir}]),
ok = io:format("Extracted: ~tp~n", [Files]),
add_launcher(OS, ZompDir).
@@ -37,13 +38,13 @@ unpack(OS, ZompDir) ->
ZompDir :: file:filename().
add_launcher({unix, linux}, ZompDir) ->
add_unix_link(ZompDir),
ok = add_unix_link(ZompDir),
halt(0);
add_launcher({unix, _}, ZompDir) ->
add_unix_link(ZompDir),
ok = add_unix_link(ZompDir),
halt(0);
add_launcher({win32, nt}, _ZompDir) ->
ok = io:format("This is going to be a bit of a rodeo...~n"),
add_launcher({win32, nt}, ZompDir) ->
ok = add_windows_link(ZompDir),
halt(0).
@@ -52,15 +53,15 @@ add_launcher({win32, nt}, _ZompDir) ->
add_unix_link(ZompDir) ->
Home = filename:dirname(ZompDir),
Link = filename:join(Home, "bin/zx"),
Link = filename:join(Home, "bin/zx"),
LinkH = filename:join(Home, "bin/zxh"),
HomeBin = filename:dirname(Link),
Target = filename:join(ZompDir, "zx"),
Target = filename:join(ZompDir, "zx"),
TargetH = filename:join(ZompDir, "zxh"),
ok = filelib:ensure_dir(Link),
LinkCommand = "env LANG=en ln -s " ++ Target ++ " " ++ Link,
LinkCommand = "env LANG=en ln -s " ++ Target ++ " " ++ Link,
LinkCommandH = "env LANG=en ln -s " ++ TargetH ++ " " ++ LinkH,
ModeCommand = "env LANG=en chmod +x " ++ Target,
ModeCommand = "env LANG=en chmod +x " ++ Target,
ModeCommandH = "env LANG=en chmod +x " ++ TargetH,
ok = os_cmd(LinkCommand),
ok = os_cmd(LinkCommandH),
@@ -86,6 +87,27 @@ add_unix_link(ZompDir) ->
io:format(Message, [Target, Link, HomeBin]).
-spec add_windows_link(ZompDir) -> ok
when ZompDir :: file:filename().
add_windows_link(ZompDir) ->
Home = filename:join(os:getenv("HOMEDRIVE"), os:getenv("HOMEPATH")),
Launcher = filename:join(ZompDir, "zx.cmd"),
LauncherH = filename:join(ZompDir, "zxh.cmd"),
Vapor = filename:join(ZompDir, "vapor.cmd"),
Target = filename:join(Home, "zx.cmd"),
TargetH = filename:join(Home, "zxh.cmd"),
VaporL = filename:join([Home, "Desktop", "Vapor.cmd"]),
{ok, _} = file:copy(Launcher, Target),
{ok, _} = file:copy(LauncherH, TargetH),
{ok, _} = file:copy(Vapor, VaporL),
Message =
"`zx` and `zxh` launch scripts have been added to ~p~n"
"(available from cmd.exe in your home directory)~n"
"A GUI program launcher script has been added to the desktop.~n",
io:format(Message, [Home]).
-spec os_cmd(Command :: string()) -> ok.
os_cmd(Command) ->