mirror of https://git.jolheiser.com/dotnix.git
69 lines
2.0 KiB
Plaintext
69 lines
2.0 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: bool # Use bash instead of nushell
|
|
--refresh: bool # 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}\)"
|
|
}
|
|
|
|
## Other ##
|
|
$env.EDITOR = hx
|
|
$env.config = ($env.config | upsert "shell_integration" ("WEZTERM_PANE" not-in $env and "SSH_CLIENT" not-in $env))
|
|
source ~/.config/nushell/zoxide.nu
|
|
source ~/.config/nushell/ohmyposh.nu
|
|
|