WIP: Windows install/starup tweaks
This commit is contained in:
+31
-9
@@ -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) ->
|
||||
|
||||
Reference in New Issue
Block a user