aboutsummaryrefslogtreecommitdiff
path: root/shenanigans.sh
blob: 37716f2693ed25de8ec176cbc95a8909f59b3ce1 (plain)
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
# Software list.
# cifs-utils tree s3cmd xclip mc gnupg ripgrep
# jq xmlstarlet tilix fzf hx newsbeuter

# Magical environment variables.

NIX_SHELL_PRESERVE_PROMPT=1
TERM=xterm-256color
EDITOR=hx

# Better prompt.

parse_git_branch() {
	git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

is_inside_nix_shell() {
	nix_shell_name="$(basename "$IN_NIX_SHELL" 2>/dev/null)"
	if [[ -n "$nix_shell_name" ]]; then
		echo " \e[0;36m(nix-shell)\e[0m"
	fi
}

export PS1="[\033[38;5;9m\]\u@\h\[$(tput sgr0)\]]$(is_inside_nix_shell)\[\033[33m\]\$(parse_git_branch)\[\033[00m\] \w\[$(tput sgr0)\] \n$ "

# General aliases.

alias c='clear'
alias l='ls -lh'
alias ll='ls -lha'
alias t='tree -L 2'
alias ..='cd ..'
alias h='history'
alias x='exit'
alias grep='grep --color=always'
alias less='less -R'
alias gg='lazygit'
alias server='python3 -m http.server 6969'

# Custom folder jump commands.

alias p='cd ~/Vault/projects'
alias j='cd ~/Junk/current'
alias d='cd ~/Downloads'
alias v='cd ~/Vault'

# Additional path settings.

export PATH=$HOME/Vault/bin:$PATH
export PATH=$HOME/Applications:$PATH
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/go/bin:$PATH
export PATH=$HOME/Android/Sdk/platform-tools:$PATH
export PATH=$HOME/Android/Sdk/tools:$PATH

# History and search.

HISTCONTROL=ignoreboth
shopt -s histappend
export HISTSIZE=
export HISTFILESIZE=
export HISTFILE=~/.bash_history_infinite
PROMPT_COMMAND="history -a; history -n; ${PROMPT_COMMAND}"
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'
alias hh=hstr
export HSTR_CONFIG=hicolor
if [[ $- =~ .i. ]]; then bind '"\C-h": "\C-a hstr -- \C-j"'; fi

# Useful function. Much wow!

turtle() {
	cd ~/Games/Turtle
	./start.sh
}

backup() {
	VHOME=/home/$USER/Vault
	ME=$(whoami)@$(hostname)

	mkdir -p $VHOME/dotfiles
	cd $VHOME/dotfiles

	# Make a copy of dotfiles.
	cp /home/$USER/.shenanigans.sh shenanigans.sh
	cp /home/$USER/.bash_history_infinite bash_history_infinite
	cp /home/$USER/.smbcredentials smbcredentials
	cp /home/$USER/.gitconfig gitconfig
	cp /home/$USER/.s3cfg s3cfg

	cp /home/$USER/.vimrc vimrc
	cp /home/$USER/.config/emacs/init.el init.el
	cp /home/$USER/.config/helix/config.toml config.toml
	cp /home/$USER/.newsboat/urls urls
	cp /home/$USER/.newsboat/cache.db cache.db

	cp -Rf /home/$USER/.ssh/ ./
	cp -Rf /home/$USER/.aws/ ./

	dconf dump /com/gexperts/Tilix/ > tilix.dconf
	# dconf load /com/gexperts/Tilix/ < tilix.dconf

	# Backup screenshots.
	mkdir -p $VHOME/pictures
	cp -rfn ~/Pictures/* $VHOME/pictures/

	# Backup screencasts.
	mkdir -p $VHOME/videos
	cp -rfn ~/Videos/* $VHOME/videos/

	# Backup Turtle WoW stuff.
	mkdir -p $VHOME/turtle-wow
	cp -rfn ~/Games/Turtle/Interface $VHOME/turtle-wow/
	cp -rfn ~/Games/Turtle/WTF $VHOME/turtle-wow/
	cp -rfn ~/Games/Turtle/start.sh $VHOME/turtle-wow/
	
	# Sync with NAS.
	rsync -azv \
		--exclude '.venv/' \
		--exclude '.git/' \
		--exclude '.import/' \
		--exclude '.godot/' \
		--exclude 'node_modules/' \
		--delete \
		$VHOME/ /media/Void/Backup/$ME/

	# Sync to off-site DO S3 bucket.
	s3cmd sync \
		--host-bucket=vault \
		--delete-removed \
		--exclude 'node_modules/*' \
		--exclude '.git/*' \
		--exclude '.import/*' \
		--exclude '.godot/*' \
		--exclude '.venv/*' \
		$VHOME/ s3://vault/backup/$ME/

	# Add to log file.
	echo `date +"%D %T"` >> ~/.vault.log
}