mirror of
https://github.com/Ahwxorg/nixos-config.git
synced 2025-12-04 15:00:13 +01:00
feat: adds back overlays and adds nix-search-fzf stolen from this file: https://github.com/IvarWithoutBones/dotfiles/blob/main/home-manager/modules/zsh.nix#L65
This commit is contained in:
parent
071540b706
commit
16fee58705
4 changed files with 285 additions and 1 deletions
73
pkgs/nix-search-fzf/fzf-preview.sh
Normal file
73
pkgs/nix-search-fzf/fzf-preview.sh
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p
|
||||
# shellcheck shell=bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
PKG_NAME="$1"
|
||||
FLAKE="$2"
|
||||
FLAKE_PATH="${FLAKE}#${PKG_NAME}"
|
||||
|
||||
removeQuotes() {
|
||||
local flag="$*"
|
||||
flag="${flag%\"}"
|
||||
echo "${flag#\"}"
|
||||
}
|
||||
|
||||
newlinesToCommaSeperated() {
|
||||
echo "$@" | sed ':a;N;$!ba;s/\n/, /g'
|
||||
}
|
||||
|
||||
evalAttr() {
|
||||
local attr data
|
||||
attr="$1"
|
||||
data="$(nix eval "$FLAKE_PATH"."$attr" 2>/dev/null)"
|
||||
[[ $data != "null" && $data != "false" && -n $data ]] && removeQuotes "$data"
|
||||
}
|
||||
|
||||
evalJsonAttr() {
|
||||
local attr jqArgs data
|
||||
attr="$1"
|
||||
jqArgs="$2"
|
||||
data="$(nix eval --json "$FLAKE_PATH"."$attr" 2>/dev/null | jq -r "$jqArgs")"
|
||||
[[ $data != "null" && -n $data ]] && echo "$data"
|
||||
}
|
||||
|
||||
evalNixpkgsLib() {
|
||||
local function data
|
||||
function="$1"
|
||||
# Impure is needed to import the flake reference
|
||||
data="$(nix eval --raw --impure --expr "let pkgs = (builtins.getFlake \"flake:$FLAKE\"); in pkgs.lib.$function pkgs.$PKG_NAME" 2>/dev/null)"
|
||||
[[ $data != "null" && -n $data ]] && echo "$data"
|
||||
}
|
||||
|
||||
maybeEcho() {
|
||||
local -r prefix="$1"
|
||||
local flag="$2"
|
||||
local -r commaSeperated="${3:-false}"
|
||||
[[ $commaSeperated == "true" ]] && flag="$(newlinesToCommaSeperated "$flag")"
|
||||
test -n "$flag" && echo "$prefix $flag"
|
||||
}
|
||||
|
||||
test -n "$(evalAttr "meta.broken")" && echo "broken: true"
|
||||
test -n "$(evalAttr "meta.insecure")" && echo "insecure: true"
|
||||
|
||||
version="$(evalAttr "version")"
|
||||
# Derive the version from "name" using 'lib.getVersion' if it's not set
|
||||
test -z "$version" && version="$(evalNixpkgsLib "getVersion")"
|
||||
maybeEcho "version:" "$version"
|
||||
|
||||
homepage="$(evalAttr "meta.homepage")"
|
||||
maybeEcho "homepage:" "$homepage"
|
||||
|
||||
description="$(evalAttr "meta.description")"
|
||||
maybeEcho "description:" "$description"
|
||||
|
||||
license="$(evalJsonAttr "meta.license" 'if type=="array" then .[].fullName else .fullName end')"
|
||||
maybeEcho "license:" "$license" true
|
||||
|
||||
maintainers="$(evalJsonAttr "meta.maintainers" '.[].github')"
|
||||
maybeEcho "maintainers:" "$maintainers" true
|
||||
|
||||
platforms="$(evalJsonAttr "meta.platforms" 'if type=="array" then .[] else . end')"
|
||||
maybeEcho "platforms:" "$platforms" true
|
||||
Loading…
Add table
Add a link
Reference in a new issue