aboutsummaryrefslogtreecommitdiffstats
path: root/.iex.exs
blob: fcd3931bdbb6ea7f627a6ee6aba5cc6f8a287c8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
defmodule IExConfigInit do

  def init do
    user = System.get_env "USER"    

    hostname = case :inet.gethostname do
      {:ok, s} -> s
      _ -> "?"
    end

    dir = case Elixir.File.cwd do
      {:ok, s} -> s
      _ -> "?"
    end

    home = System.get_env "HOME"

    dir = if home do
      dir = case Regex.compile("^" <> home) do
        {:ok, r} -> Regex.replace r, dir, "~"
        _ -> dir
      end
      dir
    else
      dir
    end

    Application.put_env(:elixir, :ansi_enabled, true)

    IEx.configure(
      colors: [enabled: true],
      default_prompt: [
        # "\e[1A",
        "\e[G",    # ANSI CHA, move cursor to column 1
        :bright,
        :white,
        "┌[",
        :magenta,
        (if user, do: user <> "@", else: ""),
        "elixir-",
        Elixir.System.version,
        "@",
        hostname,
        " ",
        :blue,
        dir,
        :white,
        "]\n",
        "└:",
        :reset
      ] |> IO.ANSI.format |> IO.chardata_to_string
    )
  end

end

IExConfigInit.init