summaryrefslogtreecommitdiffstats
path: root/.profile
blob: d31ede774a883f46fddd6e2a2bd7b60b00a3ea18 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# Moving aliases and other setup to non-shell-specific
# file ~/.profile

# === OSX ===
if [ "$(uname -s)" = "Darwin" ]; then
    # Make bash more posix compliant
    if [ $SHELL = "/bin/bash" ] || [ $SHELL = "/opt/homebrew/bin/bash" ] || [ $SHELL = "/opt/local/bin/bash" ] ; then
        set -o posix
        # OSX-specific bash warning
        export BASH_SILENCE_DEPRECATION_WARNING=1
    fi

    # MacPorts setup
    if [ -d '/opt/local' ]; then
        export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
        export MANPATH=/opt/local/share/man:$MANPATH
    fi

    # Brew (OSX) specifics
    if [ -f '/opt/homebrew/bin/brew' ]; then
        export HOMEBREW_PREFIX="/opt/homebrew"
        export HOMEBREW_CELLAR="/opt/homebrew/Cellar"
        export HOMEBREW_REPOSITORY="/opt/homebrew"
        export HOMEBREW_FORCE_BREWED_CURL=1 
        export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew/opt/curl/bin${PATH+:$PATH}"
        export MANPATH="/opt/homebrew/share/man${MANPATH+:$MANPATH}:"
        export INFOPATH="/opt/homebrew/share/info:${INFOPATH:-}"
        if [ -f "/opt/homebrew/etc/bash_completion.d/git-completion.bash" ]; then
            source /opt/homebrew/etc/bash_completion.d/git-completion.bash;
        fi
    fi

    if [ $(command -v python3) ]; then
        export PATH=$(python3 -m site --user-base)/bin:$PATH
    fi

    # Load config from filesystem
    export AWS_SDK_LOAD_CONFIG=1

    # Add Local bin
    export PATH=$PATH:$HOME/.local/bin

    # Unlock Keychain cli
    alias unlock='security unlock-keychain ~/Library/Keychains/login.keychain'

fi
# === END OSX ===

# Go setup
if [ -d "$HOME/.golang" ]; then
    ### Just in case it's missing
    mkdir -p ~/.golang/path
    # Go in the homedir
    export GOROOT_BOOTSTRAP=$HOME/.golang/bootstrap_go
    export GOROOT=$HOME/.golang/go
    export GOPATH=$HOME/.golang/path
    # Disable broken caching by proxy.golang
    export GOPROXY=direct
    export GOSUMDB=off
    export PATH=$HOME/.golang/go/bin:$PATH:$HOME/.cargo/bin:$HOME/.golang/path/bin:$HOME/.local/bin
fi

# == Editors ==
# Vim not detected? Use vi as a fallback
if [ ! "$(command -v vim)" ]; then
    alias vim=vi
    export EDITOR="vi"
fi

if [ "$(command -v code)" ] && [ "$(env | grep VSCODE)" ]; then
    export EDITOR="code"
    export VISUAL="code"
elif [ -d "$HOME/.config/doom" ] && [ "$(command -v emacs)" ]; then
    export EDITOR="emacs"
    export VISUAL="emacs"
    export PATH=$PATH:$HOME/.config/emacs/bin
elif [ "$(command -v hx)" ]; then
    export EDITOR="hx"
    export VISUAL="hx"
else
    export EDITOR="vim"
    export VISUAL="vim"
fi

# Ensure less always uses the one-page, raw control characters, and no-init settings
export LESS=FRX
# Defaults
alias ls='/bin/ls -F'

## Zstd always uses all cores
if [ "$(command -v zstd)" ]; then
    alias zstd='zstd -T0'
fi

# == Rust Tools ==#
# Add Rust paths if present
if [ -d "$HOME/.cargo/bin" ]; then
    if [ -f "$HOME/.cargo/env" ]; then
      source $HOME/.cargo/env
    fi
    export PATH=$HOME/.cargo/bin:$PATH
fi

if [ "$(command -v eza)" ]; then
    alias ls='eza -G --color never -a -s type -F --time-style=long-iso'
    alias ll='eza -l -b --color never -a -s type -F --time-style=long-iso'
elif [ "$(command -v exa)" ]; then
    alias ls='exa -G --color never -a -s type -F --time-style=long-iso'
    alias ll='exa -l -b --color never -a -s type -F --time-style=long-iso'
fi

if [ "$(command -v bat)" ]; then
    alias cat='bat -pp'
    export BAT_THEME="ansi"
fi

if [ "$(command -v ncdu)" ]; then
    alias ncdu="ncdu --color=off"
fi

#upcode alias for quickly updating code where gitrect cannot
if [ "$(command -v fd)" ]; then
    alias upcode="fd -H -t d -E mod -E vendor \".git$\" ~/.code -x fetchgit"
else
    alias upcode="find ~/.code -name \".git\" |xargs -n1 fetchgit "
fi

# Must put these after OSX setup so brew is part of the $PATH
# Colima / Podman
if [ $(command -v colima) ]; then
    alias docker='colima nerdctl --profile default -- '
    alias nerdctl='colima nerdctl --profile default -- '
elif [ "$(command -v podman)" ]; then
    alias docker=podman
    # User-hosted podman socket
    export DOCKER_HOST="unix:$XDG_RUNTIME_DIR/podman/podman.sock"
fi


# Presrving these for future use
#alias psc='ps xawf -eo pid,user,cgroup,args'
#alias gdb='gdb -tui'

alias gc_all="find ~/.code -name \".git\" | xargs -I {} -n 1 bash -c \"cd {}; echo {}; git gc --aggressive;\" "

#if [ "$TERM" = "tmux-256color" ]; then export TERM=xterm-256color; fi
# == END TOOLS ==

## == DOTFILES ==
# To load files
# git clone --bare git@git.sr.ht:~tydavis/dotfiles $HOME/.dotfiles

#shorten the git dotfiles management
alias dotfiles='git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
# Ignore files that aren't relevant
# dotfiles config --local status.showUntrackedFiles no
## == END DOTFILES ==

# Prompt
USER=$(id -un)
HOSTNAME=$(uname -n)
export PS1='$USER@$HOSTNAME:$PWD/\$ '

if [ ! $(echo $SHELL|grep -q "bash") ]; then
    if [ -f "$HOME/.bashrc" ]; then . $HOME/.bashrc; fi
fi