Имя докер машины в терминале

Некоторое время назад я начал использовать несколько удалённых машин для докера (с помощью docker-machine). И я подумал, что было бы неплохо видеть, к какой из машин я сейчас подключен. Так как я использую Powerline, проще всего было бы подключить сегмент с именем машины. Однако, ничего готового я не нашёл, поэтому пришлось сделать свой собственный.

Изначально я думал, что придётся разрабатывать отдельный сегмент на пайтоне, как я это делал ранее для отображения информации из моего списка дел (powerline-taskwarrior. Кстати, на анимации видно активную задачу и её идентификатор в зелёном сегменте.

Но всё оказалось гораздо проще. Имя текущей машины обычно хранится в переменной окружения DOCKER_MACHINE_NAME. И есть встроенный сегмент для отображения значения произвольной переменной окружения, называется powerline.segments.common.env.environment.

В итоге, понадобилось лишь добавить этот сегмент в конфиг:

1
2
3
4
5
6
7
8
9
"right": [
  {
    "function": "powerline.segments.common.env.environment",
    "priority": 10,
    "args": {
      "variable": "DOCKER_MACHINE_NAME"
    }
  }
]

Профит!