diff --git a/devenv.custom-code.nix b/devenv.custom-code.nix index 0dfa950..f95e738 100644 --- a/devenv.custom-code.nix +++ b/devenv.custom-code.nix @@ -6,15 +6,19 @@ }: let - statusUrl = row: row.statusUrl or row.pkg.meta.changelog or ""; + bin = row: row.bin or row.pkg.meta.mainProgram or row.pkg.pname or (lib.getName row.pkg); repoUrl = pkg: pkg.src.gitRepoUrl or pkg.meta.homepage or ""; - linkColumnWidth = builtins.foldl' - (width: row: lib.max width (builtins.stringLength (statusUrl row))) + binColumnWidth = builtins.foldl' + (width: row: lib.max width (builtins.stringLength (bin row))) + 0 + rows; + versionColumnWidth = builtins.foldl' + (width: row: lib.max width (builtins.stringLength row.pkg.version)) 0 rows; renderRow = row: '' - row ${lib.escapeShellArg row.name} ${lib.escapeShellArg row.pkg.version} ${lib.escapeShellArg (statusUrl row)} ${lib.escapeShellArg (repoUrl row.pkg)} + row ${lib.escapeShellArg (bin row)} ${lib.escapeShellArg row.pkg.version} ${lib.escapeShellArg (repoUrl row.pkg)} ''; in '' @@ -39,22 +43,11 @@ in } row() { - local name="$1" + local bin="$1" local version="$2" - local changelog_url="$3" - local repo_url="$4" - local padding=0 + local repo_url="$3" - printf '%s- %s%-7s %s%-8s%s ' "$dim" "$reset" "$name" "$dim" "$version" "$reset" - if [ -n "$changelog_url" ]; then - printf '%s' "$muted" - link "$changelog_url" "$changelog_url" - padding=$(( ${toString linkColumnWidth} - ''${#changelog_url} )) - [ "$padding" -gt 0 ] && printf '%*s' "$padding" "" - printf ' ' - elif [ -n "$repo_url" ]; then - printf '%s%*s ' "$muted" ${toString linkColumnWidth} "" - fi + printf '%s- %s%-*s %s%-*s%s ' "$dim" "$reset" ${toString binColumnWidth} "$bin" "$dim" ${toString versionColumnWidth} "$version" "$reset" if [ -n "$repo_url" ]; then printf '%s' "$muted" link "$repo_url" "$repo_url" diff --git a/devenv.nix b/devenv.nix index 66f03ed..0c44ab4 100644 --- a/devenv.nix +++ b/devenv.nix @@ -10,23 +10,18 @@ in { # https://devenv.sh/packages/ packages = [ - pkgs.skills # used to manage .agents/skills - tang # tangled.org cli + pkgs.docker-compose # used by application + pkgs.skills # used to manage .agents/skills + tang # tangled.org cli ]; # https://devenv.sh/basics/ enterShell = devenvSummary { - title = "rssbase devenv:"; + title = "RSSBase devenv:"; rows = [ - { - name = "skills"; - pkg = pkgs.skills; - statusUrl = "https://github.com/vercel-labs/skills/compare/v${pkgs.skills.version}...main"; - } - { - name = "tang"; - pkg = tang; - } + { pkg = pkgs.docker-compose; } + { pkg = pkgs.skills; } + { pkg = tang; } ]; };