Organises things
Mainly organising aliases and functions, also adds some environment variables
This commit is contained in:
parent
f8249886c3
commit
170ecf906d
3 changed files with 357 additions and 261 deletions
|
@ -1,14 +1,6 @@
|
|||
function big-chromium () {
|
||||
chromium --force-device-scale-factor=$1
|
||||
}
|
||||
|
||||
function big-new-chromium () {
|
||||
chromium-snapshot-bin --force-device-scale-factor=$1
|
||||
}
|
||||
|
||||
# make xclip work as I would expect. Copy to clipboard if piped data. Paste from otherwise
|
||||
function clip(){
|
||||
if command -v /usr/bin/xclip 1>/dev/null; then
|
||||
if type -p /usr/bin/xclip >/dev/null; then
|
||||
if [[ -p /dev/stdin ]] ; then
|
||||
# stdin is a pipe
|
||||
# stdin -> clipboard
|
||||
|
@ -25,66 +17,162 @@ fi
|
|||
|
||||
#Swap two files
|
||||
function swap() {
|
||||
mv $1 $1._tmp;
|
||||
mv $2 $1;
|
||||
mv $1._tmp $2;
|
||||
[ -e "$1._tmp" ] && return
|
||||
mv "$1" "$1._tmp"
|
||||
mv "$2" "$1"
|
||||
mv "$1._tmp" "$2"
|
||||
}
|
||||
|
||||
# Add old extention
|
||||
function old() {
|
||||
mv "$1" "$1.old"
|
||||
for file in "$@"; do
|
||||
mv "$file" "$file.old"
|
||||
done
|
||||
}
|
||||
|
||||
function mycd() {
|
||||
cd "$@" 2> /dev/null
|
||||
# Cd that does what I normally want
|
||||
function cd() {
|
||||
# Try a normal cd
|
||||
builtin cd "$@" 2> /dev/null
|
||||
if [ $? = 0 ]; then
|
||||
# If we get here cd was successful
|
||||
# If we get here cd was successful so do a ls
|
||||
ls
|
||||
else
|
||||
# If we get here, cd was not successful
|
||||
if [ -f "$1" ]; then
|
||||
# If there is a file there, try and open it in vim
|
||||
# ToDo: smarter open so it will open in zathura if it's a pdf for
|
||||
# example
|
||||
$EDITOR "$1"
|
||||
else
|
||||
# Otherwise fail clearly
|
||||
echo "Can't cd"
|
||||
fi
|
||||
fi
|
||||
#updatePath
|
||||
}
|
||||
alias cd="mycd"
|
||||
|
||||
# Make a folder then cd into it
|
||||
function mkcd() {
|
||||
mkdir -p "$1"
|
||||
cd "$1"
|
||||
}
|
||||
|
||||
function createLetter(){
|
||||
if [ "$1" ]; then
|
||||
if [ "$2" ]; then
|
||||
newFile="$2"
|
||||
else
|
||||
newFile="$1"
|
||||
newFile="${newFile%.*}.pdf"
|
||||
# Adds sub folders in by .bin directory to the PATH if they are not already in it
|
||||
# Also adds .bin to the path adjacent to any public_html folder
|
||||
function updatePath(){
|
||||
# Reset the path
|
||||
PATH=$(echo $PATH | sed -E "s/:\/home\/jonathan\/\.bin\/.*//g")
|
||||
for d in ~/.bin/*/; do
|
||||
if [[ :$PATH: != *:"$d":* ]] ; then
|
||||
PATH+=":$d"
|
||||
fi
|
||||
done
|
||||
public_html=${PWD%/public_html*}/public_html
|
||||
if [ -d $public_html ]; then
|
||||
PATH+=":${PWD%/public_html*}/.bin"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function reset_colourscheme(){
|
||||
if [ -L $HOME/.dotfiles/shells/zsh/current-color-scheme ]; then
|
||||
source $HOME/.dotfiles/shells/zsh/current-color-scheme
|
||||
fi
|
||||
exit 2
|
||||
}
|
||||
|
||||
# If running ssh interactively (not tab completion) change the colour scheme
|
||||
function ssh(){
|
||||
if [[ -t 0 ]]; then
|
||||
if [ -L $HOME/.dotfiles/shells/zsh/ssh-color-scheme ]; then
|
||||
source $HOME/.dotfiles/shells/zsh/ssh-color-scheme
|
||||
trap "reset_colourscheme" 2
|
||||
fi
|
||||
fi
|
||||
command /usr/bin/ssh "$@"
|
||||
if [[ -t 0 ]]; then
|
||||
if [ -L $HOME/.dotfiles/shells/zsh/current-color-scheme ]; then
|
||||
source $HOME/.dotfiles/shells/zsh/current-color-scheme
|
||||
fi
|
||||
pandoc --template template-letter.tex $1 -o $newFile
|
||||
else
|
||||
echo "Oops. You need to suply a file"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function createFPLreport(){
|
||||
if [ "$1" ]; then
|
||||
if [ "$2" ]; then
|
||||
newFile="$2"
|
||||
else
|
||||
newFile="$1"
|
||||
newFile="${newFile%.*}.pdf"
|
||||
# Turn on a proxy
|
||||
# Note that this is not fool proof. It is up to applications to check the
|
||||
# environment variables
|
||||
function proxy_on() {
|
||||
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
|
||||
|
||||
if (( $# > 0 )); then
|
||||
valid=$(echo $@ | sed -n 's/\([0-9]\{1,3\}.\?\)\{4\}:\([0-9]\+\)/&/p')
|
||||
if [[ $valid != $@ ]]; then
|
||||
>&2 echo "Invalid address"
|
||||
return 1
|
||||
fi
|
||||
pandoc --template fellowship.latex --listings --highlight-style=pygments --pdf-engine=xelatex $1 -o $newFile
|
||||
local proxy=$1
|
||||
export http_proxy="$proxy" \
|
||||
https_proxy=$proxy \
|
||||
ftp_proxy=$proxy \
|
||||
rsync_proxy=$proxy
|
||||
echo "Proxy environment variable set."
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo -n "username: "; read username
|
||||
if [[ $username != "" ]]; then
|
||||
echo -n "password: "
|
||||
read -es password
|
||||
local pre="$username:$password@"
|
||||
fi
|
||||
|
||||
echo -n "server: "; read server
|
||||
echo -n "port: "; read port
|
||||
local proxy=$pre$server:$port
|
||||
export http_proxy="$proxy" \
|
||||
https_proxy=$proxy \
|
||||
ftp_proxy=$proxy \
|
||||
rsync_proxy=$proxy \
|
||||
HTTP_PROXY=$proxy \
|
||||
HTTPS_PROXY=$proxy \
|
||||
FTP_PROXY=$proxy \
|
||||
RSYNC_PROXY=$proxy
|
||||
}
|
||||
|
||||
function proxy_off(){
|
||||
unset http_proxy https_proxy ftp_proxy rsync_proxy \
|
||||
HTTP_PROXY HTTPS_PROXY FTP_PROXY RSYNC_PROXY
|
||||
echo -e "Proxy environment variable removed."
|
||||
}
|
||||
|
||||
# Sanity check for dd
|
||||
function dd(){
|
||||
local drive="$(echo "$@" | grep -oE 'of=[^ ]+' | cut -d '=' -f 2-)"
|
||||
if [ -n "$drive" ]; then
|
||||
if mount | grep -q "$drive"; then
|
||||
echo "It looks like that's mounted, probably not the drive you're after"
|
||||
echo "If you are sure, run /usr/bin/dd ..."
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
/usr/bin/dd "$@"
|
||||
}
|
||||
|
||||
# Man without options will use fzf to select a page
|
||||
function man(){
|
||||
MAN="/usr/bin/man"
|
||||
if [ -n "$1" ]; then
|
||||
$MAN "$@"
|
||||
return $?
|
||||
else
|
||||
echo "Oops. You need to suply a file"
|
||||
return 1
|
||||
$MAN -k . | fzf --reverse --preview="echo {1,2} | sed 's/ (/./' | sed -E 's/\)\s*$//' | xargs $MAN" | awk '{print $1 "." $2}' | tr -d '()' | xargs -r $MAN
|
||||
return $?
|
||||
fi
|
||||
}
|
||||
#
|
||||
#######################
|
||||
# Wordpress Helpers #
|
||||
#######################
|
||||
|
||||
#Takes you to the parent theme
|
||||
function ptheme() {
|
||||
|
@ -218,93 +306,3 @@ function debugToggle(){
|
|||
fi
|
||||
}
|
||||
|
||||
# Adds sub folders in by .bin directory to the PATH if they are not already in it
|
||||
# Also adds .bin to the path adjacent to any public_html folder
|
||||
function updatePath(){
|
||||
# Reset the path
|
||||
PATH=$(echo $PATH | sed -E "s/:\/home\/jonathan\/\.bin\/.*//g")
|
||||
for d in ~/.bin/*/; do
|
||||
if [[ :$PATH: != *:"$d":* ]] ; then
|
||||
PATH+=":$d"
|
||||
fi
|
||||
done
|
||||
public_html=${PWD%/public_html*}/public_html
|
||||
if [ -d $public_html ]; then
|
||||
PATH+=":${PWD%/public_html*}/.bin"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
function reset_colourscheme(){
|
||||
if [ -L $HOME/.dotfiles/shells/zsh/current-color-scheme ]; then
|
||||
source $HOME/.dotfiles/shells/zsh/current-color-scheme
|
||||
fi
|
||||
exit 2
|
||||
}
|
||||
|
||||
function ssh(){
|
||||
if [ -L $HOME/.dotfiles/shells/zsh/ssh-color-scheme ]; then
|
||||
source $HOME/.dotfiles/shells/zsh/ssh-color-scheme
|
||||
fi
|
||||
trap "reset_colourscheme" 2
|
||||
command /usr/bin/ssh "$@"
|
||||
if [ -L $HOME/.dotfiles/shells/zsh/current-color-scheme ]; then
|
||||
source $HOME/.dotfiles/shells/zsh/current-color-scheme
|
||||
fi
|
||||
}
|
||||
|
||||
function proxy_on() {
|
||||
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
|
||||
|
||||
if (( $# > 0 )); then
|
||||
valid=$(echo $@ | sed -n 's/\([0-9]\{1,3\}.\?\)\{4\}:\([0-9]\+\)/&/p')
|
||||
if [[ $valid != $@ ]]; then
|
||||
>&2 echo "Invalid address"
|
||||
return 1
|
||||
fi
|
||||
local proxy=$1
|
||||
export http_proxy="$proxy" \
|
||||
https_proxy=$proxy \
|
||||
ftp_proxy=$proxy \
|
||||
rsync_proxy=$proxy
|
||||
echo "Proxy environment variable set."
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo -n "username: "; read username
|
||||
if [[ $username != "" ]]; then
|
||||
echo -n "password: "
|
||||
read -es password
|
||||
local pre="$username:$password@"
|
||||
fi
|
||||
|
||||
echo -n "server: "; read server
|
||||
echo -n "port: "; read port
|
||||
local proxy=$pre$server:$port
|
||||
export http_proxy="$proxy" \
|
||||
https_proxy=$proxy \
|
||||
ftp_proxy=$proxy \
|
||||
rsync_proxy=$proxy \
|
||||
HTTP_PROXY=$proxy \
|
||||
HTTPS_PROXY=$proxy \
|
||||
FTP_PROXY=$proxy \
|
||||
RSYNC_PROXY=$proxy
|
||||
}
|
||||
|
||||
function proxy_off(){
|
||||
unset http_proxy https_proxy ftp_proxy rsync_proxy \
|
||||
HTTP_PROXY HTTPS_PROXY FTP_PROXY RSYNC_PROXY
|
||||
echo -e "Proxy environment variable removed."
|
||||
}
|
||||
|
||||
function man(){
|
||||
MAN="/usr/bin/man"
|
||||
if [ -n "$1" ]; then
|
||||
$MAN "$@"
|
||||
return $?
|
||||
else
|
||||
$MAN -k . | fzf --reverse --preview="echo {1,2} | sed 's/ (/./' | sed -E 's/\)\s*$//' | xargs $MAN" | awk '{print $1 "." $2}' | tr -d '()' | xargs -r $MAN
|
||||
return $?
|
||||
fi
|
||||
}
|
||||
#alias man="myman"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue