mirror of https://git.jolheiser.com/dotnix.git
105 lines
2.8 KiB
Plaintext
105 lines
2.8 KiB
Plaintext
## Aliases ##
|
|
alias cat = bat
|
|
alias find = fd
|
|
alias df = duf
|
|
alias du = dust -b -d 1
|
|
alias just = just --shell "nu" --shell-arg "-c"
|
|
alias ll = ls -al
|
|
|
|
## Functions ##
|
|
def sshdev [port: int = 8080] {
|
|
$"Listening on localhost:($port)"
|
|
^ssh -i ~/.ssh/dev -N -T -R $"1337:localhost:($port)" dev@jolheiser.com
|
|
}
|
|
|
|
def nixdev [
|
|
name: string # Name of the dev shell to use
|
|
--bash # Use bash instead of nushell
|
|
--refresh # Refresh the flake
|
|
] {
|
|
let url = $"git+https://git.jojodev.com/jolheiser/dev-shells\#($name)"
|
|
let c = if ($bash) {""} else {"-c nu"}
|
|
let refresh = if ($refresh) {"--refresh"} else {""}
|
|
let cmd = $"nix develop ($refresh) ($url) ($c)"
|
|
^nu -c $cmd
|
|
}
|
|
|
|
def "forge types" [] {
|
|
["github", "gitea", "jojodev", "codeberg"]
|
|
}
|
|
|
|
def clone [
|
|
repo: string # Repo name
|
|
--forge (-f) = "github": string@"forge types" # Forge type (github, gitea, jojodev, codeberg)
|
|
--owner (-o): string # Owner (default: current dir name)
|
|
] {
|
|
mut id = 'gh'
|
|
if $forge == 'gitea' {
|
|
$id = 'gt'
|
|
} else if $forge == 'jojodev' {
|
|
$id = 'jj'
|
|
} else if $forge == 'codeberg' {
|
|
$id = 'cb'
|
|
}
|
|
mut namespace = ($env.PWD | path basename)
|
|
if $owner != '' {
|
|
$namespace = $owner
|
|
}
|
|
let origin = $'ssh:($id):jolheiser/($repo).git'
|
|
let upstream = $'($id):($namespace)/($repo).git'
|
|
^git clone $origin
|
|
cd $repo
|
|
if $namespace != 'jolheiser' {
|
|
^git remote add upstream $upstream
|
|
^git fetch upstream
|
|
}
|
|
}
|
|
|
|
def fg [args ...string] {
|
|
^rg --ignore-case --color=always --line-number --no-heading $args
|
|
| ^fzf --ansi --color 'hl:-1:underline,hl+:-1:underline:reverse' --delimiter ':' --preview "bat --color=always {1} --theme='ctp-mocha' --highlight-line {2}" --preview-window 'up,60%,border-bottom,+{2}+3/3,~3' --bind $"enter:become\(($env.EDITOR) +{2} {1}\)"
|
|
}
|
|
|
|
def gomodsri [] {
|
|
let tmp = (mktemp -d)
|
|
go mod vendor -o $tmp
|
|
let sri = (go run tailscale.com/cmd/nardump@latest --sri $tmp)
|
|
$sri | save -f go.mod.sri
|
|
rm -rf $tmp
|
|
echo 'nixpkgs.lib.fileContents ./go.mod.sri'
|
|
}
|
|
|
|
def q [
|
|
--debug # Debug mode, only echo query
|
|
...args: string
|
|
] {
|
|
let input = $in
|
|
mut query = $args | str join ' '
|
|
if ($input | is-not-empty) {
|
|
$query = $"($query)\n\n($input)"
|
|
}
|
|
if ($debug) {
|
|
print $query
|
|
return
|
|
}
|
|
^llm -s "Answer in as few words as possible. Use a brief style with short replies." -m claude-3.5-sonnet $"($query)"
|
|
}
|
|
|
|
# Run a command if known, otherwise run it with nix
|
|
def , [
|
|
cmd: string # The command to run
|
|
...args: string # Command arguments; all flags MUST be quoted
|
|
] {
|
|
if (not (which $cmd | is-empty)) {
|
|
^$cmd ...$args
|
|
return
|
|
}
|
|
^nix run $"nixpkgs#($cmd)" -- ...$args
|
|
}
|
|
|
|
## Other ##
|
|
$env.EDITOR = hx
|
|
$env.SSH_AUTH_SOCK = '/run/user/1000/ssh-agent'
|
|
source ~/.config/nushell/ohmyposh.nu
|
|
source ~/.config/nushell/ssh.nu
|