From 952d5480bcd29ba28991503c25863c736e9ff85b Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Mon, 5 Apr 2021 13:56:17 +0200 Subject: feat(third_party/gopkgs): add charmbracelet/{bubbletea,bubbles} A small go TUI framework based on the Elm Architecture. Change-Id: I0c400a7b25af682735bfc5061db179e5d1dd75ab Reviewed-on: https://cl.tvl.fyi/c/depot/+/2853 Reviewed-by: Profpatsch Reviewed-by: lukegb Tested-by: BuildkiteCI --- .../github.com/charmbracelet/bubbles/default.nix | 16 +++++++++++++ .../github.com/charmbracelet/bubbletea/default.nix | 28 ++++++++++++++++++++++ .../github.com/charmbracelet/lipgloss/default.nix | 21 ++++++++++++++++ .../github.com/containerd/console/default.nix | 15 ++++++++++++ .../github.com/lucasb-eyer/go-colorful/default.nix | 12 ++++++++++ .../gopkgs/github.com/mattn/go-isatty/default.nix | 15 ++++++++++++ .../github.com/mattn/go-runewidth/default.nix | 15 ++++++++++++ .../gopkgs/github.com/muesli/reflow/default.nix | 16 +++++++++++++ .../gopkgs/github.com/muesli/termenv/default.nix | 19 +++++++++++++++ .../gopkgs/github.com/rivo/uniseg/default.nix | 14 +++++++++++ 10 files changed, 171 insertions(+) create mode 100644 third_party/gopkgs/github.com/charmbracelet/bubbles/default.nix create mode 100644 third_party/gopkgs/github.com/charmbracelet/bubbletea/default.nix create mode 100644 third_party/gopkgs/github.com/charmbracelet/lipgloss/default.nix create mode 100644 third_party/gopkgs/github.com/containerd/console/default.nix create mode 100644 third_party/gopkgs/github.com/lucasb-eyer/go-colorful/default.nix create mode 100644 third_party/gopkgs/github.com/mattn/go-isatty/default.nix create mode 100644 third_party/gopkgs/github.com/mattn/go-runewidth/default.nix create mode 100644 third_party/gopkgs/github.com/muesli/reflow/default.nix create mode 100644 third_party/gopkgs/github.com/muesli/termenv/default.nix create mode 100644 third_party/gopkgs/github.com/rivo/uniseg/default.nix (limited to 'third_party/gopkgs/github.com') diff --git a/third_party/gopkgs/github.com/charmbracelet/bubbles/default.nix b/third_party/gopkgs/github.com/charmbracelet/bubbles/default.nix new file mode 100644 index 000000000000..e041edd4b698 --- /dev/null +++ b/third_party/gopkgs/github.com/charmbracelet/bubbles/default.nix @@ -0,0 +1,16 @@ +{ depot, pkgs, ... }: + +depot.nix.buildGo.external { + path = "github.com/charmbracelet/bubbles"; + src = pkgs.fetchFromGitHub { + owner = "charmbracelet"; + repo = "bubbles"; + # unreleased version required by bubbletea + rev = "v0.7.6"; + sha256 = "1gd4k4f2mj2dnqcbpdrh9plziz0l29ls6mgyy4mfdcdfijfyd30n"; + }; + + deps = with depot.third_party; [ + gopkgs."github.com".charmbracelet.bubbletea + ]; +} diff --git a/third_party/gopkgs/github.com/charmbracelet/bubbletea/default.nix b/third_party/gopkgs/github.com/charmbracelet/bubbletea/default.nix new file mode 100644 index 000000000000..75eb5402c17c --- /dev/null +++ b/third_party/gopkgs/github.com/charmbracelet/bubbletea/default.nix @@ -0,0 +1,28 @@ +{ depot, pkgs, ... }: + +depot.nix.buildGo.external { + path = "github.com/charmbracelet/bubbletea"; + src = + let gitSrc = pkgs.fetchFromGitHub { + owner = "charmbracelet"; + repo = "bubbletea"; + rev = "v0.13.1"; + sha256 = "0yf2fjkvx8ym9n6f3qp2z7sxs0qsfpj148sfvbrp38k67s3h20cs"; + }; + # The examples/ directory is fairly extensive, + # but it also adds most of the dependencies. + in pkgs.runCommand gitSrc.name {} '' + mkdir -p $out + ln -s "${gitSrc}"/* $out + rm -r $out/examples + rm -r $out/tutorials + ''; + deps = with depot.third_party; [ + gopkgs."github.com".containerd.console + gopkgs."github.com".mattn.go-isatty + gopkgs."github.com".muesli.reflow.truncate + gopkgs."github.com".muesli.termenv + gopkgs."golang.org".x.sys.unix + gopkgs."golang.org".x.crypto.ssh.terminal + ]; +} diff --git a/third_party/gopkgs/github.com/charmbracelet/lipgloss/default.nix b/third_party/gopkgs/github.com/charmbracelet/lipgloss/default.nix new file mode 100644 index 000000000000..d10332a1d572 --- /dev/null +++ b/third_party/gopkgs/github.com/charmbracelet/lipgloss/default.nix @@ -0,0 +1,21 @@ +{ depot, pkgs, ... }: + +depot.nix.buildGo.external { + path = "github.com/charmbracelet/lipgloss"; + src = pkgs.fetchFromGitHub { + owner = "charmbracelet"; + repo = "lipgloss"; + # unreleased version required by bubbletea + rev = "v0.1.0"; + sha256 = "1chhs492rsq7i4mr6qpjv3d89rvsd23ri6psnmil3ah6i286vl06"; + }; + + deps = with depot.third_party; [ + # gopkgs."github.com".charmbracelet.bubbletea + gopkgs."github.com".lucasb-eyer.go-colorful + gopkgs."github.com".muesli.reflow.ansi + gopkgs."github.com".muesli.reflow.truncate + gopkgs."github.com".muesli.reflow.wordwrap + gopkgs."github.com".muesli.termenv + ]; +} diff --git a/third_party/gopkgs/github.com/containerd/console/default.nix b/third_party/gopkgs/github.com/containerd/console/default.nix new file mode 100644 index 000000000000..3f451019e0fd --- /dev/null +++ b/third_party/gopkgs/github.com/containerd/console/default.nix @@ -0,0 +1,15 @@ +{ depot, pkgs, ... }: + +depot.nix.buildGo.external { + path = "github.com/containerd/console"; + src = pkgs.fetchFromGitHub { + owner = "containerd"; + repo = "console"; + rev = "v1.0.1"; + sha256 = "0s837wj6h80fykk2pdmaji75rw9c3863by0gh0cq51hh0lgyjpvg"; + }; + + deps = with depot.third_party; [ + gopkgs."golang.org".x.sys.unix + ]; +} diff --git a/third_party/gopkgs/github.com/lucasb-eyer/go-colorful/default.nix b/third_party/gopkgs/github.com/lucasb-eyer/go-colorful/default.nix new file mode 100644 index 000000000000..decb7f3db944 --- /dev/null +++ b/third_party/gopkgs/github.com/lucasb-eyer/go-colorful/default.nix @@ -0,0 +1,12 @@ +{ depot, pkgs, ... }: + +depot.nix.buildGo.external { + path = "github.com/lucasb-eyer/go-colorful"; + src = pkgs.fetchFromGitHub { + owner = "lucasb-eyer"; + repo = "go-colorful"; + # unreleased version required by bubbletea + rev = "v1.2.0"; + sha256 = "08c3fkf27r16izjjd4w94xd1z7w1r4mdalbl53ms2ka2j465s3qs"; + }; +} diff --git a/third_party/gopkgs/github.com/mattn/go-isatty/default.nix b/third_party/gopkgs/github.com/mattn/go-isatty/default.nix new file mode 100644 index 000000000000..6ba12afff763 --- /dev/null +++ b/third_party/gopkgs/github.com/mattn/go-isatty/default.nix @@ -0,0 +1,15 @@ +{ depot, pkgs, ... }: + +depot.nix.buildGo.external { + path = "github.com/mattn/go-isatty"; + src = pkgs.fetchFromGitHub { + owner = "mattn"; + repo = "go-isatty"; + rev = "v0.0.12"; + sha256 = "1dfsh27d52wmz0nmmzm2382pfrs2fcijvh6cgir7jbb4pnigr5w4"; + }; + + deps = with depot.third_party; [ + gopkgs."golang.org".x.sys.unix + ]; +} diff --git a/third_party/gopkgs/github.com/mattn/go-runewidth/default.nix b/third_party/gopkgs/github.com/mattn/go-runewidth/default.nix new file mode 100644 index 000000000000..3186a066291d --- /dev/null +++ b/third_party/gopkgs/github.com/mattn/go-runewidth/default.nix @@ -0,0 +1,15 @@ +{ depot, pkgs, ... }: + +depot.nix.buildGo.external { + path = "github.com/mattn/go-runewidth"; + src = pkgs.fetchFromGitHub { + owner = "mattn"; + repo = "go-runewidth"; + rev = "v0.0.10"; + sha256 = "0jh9552ppqvkdfni7x623n0x5mbiaqqhjhmr0zkh28x56k4ysii4"; + }; + + deps = with depot.third_party; [ + gopkgs."github.com".rivo.uniseg + ]; +} diff --git a/third_party/gopkgs/github.com/muesli/reflow/default.nix b/third_party/gopkgs/github.com/muesli/reflow/default.nix new file mode 100644 index 000000000000..c7c50795c017 --- /dev/null +++ b/third_party/gopkgs/github.com/muesli/reflow/default.nix @@ -0,0 +1,16 @@ +{ depot, pkgs, ... }: + +depot.nix.buildGo.external { + path = "github.com/muesli/reflow"; + src = pkgs.fetchFromGitHub { + owner = "muesli"; + repo = "reflow"; + # unreleased version required by bubbletea + rev = "9e1d0d53df68baf262851201166872afafd04e5d"; + sha256 = "08bmkqdn7sb5laqc1mvgk4xj31f600n1y04s1ifppjvszbcsxhid"; + }; + + deps = with depot.third_party; [ + gopkgs."github.com".mattn.go-runewidth + ]; +} diff --git a/third_party/gopkgs/github.com/muesli/termenv/default.nix b/third_party/gopkgs/github.com/muesli/termenv/default.nix new file mode 100644 index 000000000000..504d53595440 --- /dev/null +++ b/third_party/gopkgs/github.com/muesli/termenv/default.nix @@ -0,0 +1,19 @@ +{ depot, pkgs, ... }: + +depot.nix.buildGo.external { + path = "github.com/muesli/termenv"; + src = pkgs.fetchFromGitHub { + owner = "muesli"; + repo = "termenv"; + # unreleased version required by bubbletea + rev = "v0.8.1"; + sha256 = "0m24ljq1nq7z933fcvg99fw0fhxj9rb5ll4rlay7z2f2p59mrbdp"; + }; + + deps = with depot.third_party; [ + gopkgs."github.com".lucasb-eyer.go-colorful + gopkgs."github.com".mattn.go-isatty + gopkgs."github.com".mattn.go-runewidth + gopkgs."golang.org".x.sys.unix + ]; +} diff --git a/third_party/gopkgs/github.com/rivo/uniseg/default.nix b/third_party/gopkgs/github.com/rivo/uniseg/default.nix new file mode 100644 index 000000000000..f37d70bbda03 --- /dev/null +++ b/third_party/gopkgs/github.com/rivo/uniseg/default.nix @@ -0,0 +1,14 @@ +{ depot, pkgs, ... }: + +depot.nix.buildGo.external { + path = "github.com/rivo/uniseg"; + src = pkgs.fetchFromGitHub { + owner = "rivo"; + repo = "uniseg"; + rev = "v0.1.0"; + sha256 = "0flpc1px1l6b1lxzhdxi0mvpkkjchppvgxshxxnlmm40s76i9ww5"; + }; + + deps = with depot.third_party; [ + ]; +} -- cgit 1.4.1