aboutsummaryrefslogtreecommitdiffstats
path: root/.iex.exs
blob: 780c15d0c12d6231f0b72aa77e687e91c08c23cd (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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,
      alive_prompt: [
        # "\e[1A",
        "\e[G",    # ANSI CHA, move cursor to column 1
        :bright,
        :white,
        "┌[(",
        :blue,
        "%node",
        :white,
        ")",
        :magenta,
        (if user, do: user <> "@", else: ""),
        "elixir-",
        Elixir.System.version,
        "@",
        hostname,
        " ",
        :blue,
        dir,
        :white,
        "]\n",
        "└:",
        :reset
      ] |> IO.ANSI.format |> IO.chardata_to_string,
      continuation_prompt: "   ",
      alive_continuation_prompt: "   "
    )
  end

end

IExConfigInit.init