-module(gleem@install). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/gleem/install.gleam"). -export([get_line/1, ask/0, main/0]). -export_type([answer/0]). -type answer() :: yes | no. -file("src/gleem/install.gleam", 5). -spec get_line(binary()) -> binary(). get_line(Prompt) -> io:get_line(Prompt). -file("src/gleem/install.gleam", 15). -spec ask() -> answer(). ask() -> case io:get_line(<<"Do you wish to install Gleem? (y/n) "/utf8>>) of <<"y\n"/utf8>> -> yes; <<"n\n"/utf8>> -> no; _ -> ask() end. -file("src/gleem/install.gleam", 23). -spec install() -> {ok, nil} | {error, binary()}. install() -> gleam_stdlib:println( <<"Downloading Gleem binary and making it executable..."/utf8>> ), Output = gleem_ffi:cmd( <<"curl -L https://github.com/Thebugcanfly13/gleem/releases/latest/download && chmod +x /usr/bin/gleem"/utf8>> ), case Output of <<""/utf8>> -> gleam_stdlib:println( gleam_community@ansi:green(<<"Installation successful!"/utf8>>) ), gleam_stdlib:println(<<"Thank you for using Gleem!"/utf8>>), {ok, nil}; Err -> {error, Err} end. -file("src/gleem/install.gleam", 39). -spec main() -> nil. main() -> gleam_stdlib:println( gleam_community@ansi:pink(<<"Welcome to the Gleem installer!"/utf8>>) ), gleam_stdlib:println( <<"Gleem currently only supports Linux systems with the /usr/bin directory."/utf8>> ), _pipe = case ask() of yes -> case install() of {ok, _} -> gleam_community@ansi:green( <<"Installed binary successfully!"/utf8>> ); {error, Err} -> gleam_community@ansi:red( <<"Installation failed: "/utf8, Err/binary>> ) end; no -> gleam_community@ansi:red(<<"Installation cancelled."/utf8>>) end, gleam_stdlib:println(_pipe).