# ============================================================================== # Auth: Alex Celani # File: .bash_profile # Revn: 03-06-2022 2.3 # Func: Define user-made aliases and functions to make using the terminal easier # # TODO: fix alias to cd # color files in ls, and color different file differently # pick a new color and prompt scheme # rename mkcd() # ============================================================================== # CHANGE LOG # ------------------------------------------------------------------------------ # ??-??-2018: init # 05-31-2019: added header comment block # 06-01-2019: fixed newcd, added alias of cc to newcd # commented functions # removed mkcd # made hide, ssy, and SSY aliases instead of functions # 06-21-2019: finally wrote Func field in header # 03-25-2020: copied from .bashrc # removed school-based functions to go to directories that do not # exist on boofnet # 05-11-2020: added control structure to detect architecure and make decisions # about directories for grad() and src() # 09-29-2020: wrote gitMake() # renamed newcd() to mkcd() # 10-07-2020: fixed src() and grad() not working on colossus by changing call # to arch from "arch" to "$(arch)" # added call to src() at the beginning of the file # 10-12-2020: added -F to ll and l aliases # 10-21-2020: added alias to spotify to make it work globally to # avoid setting PATH # added alias for neofetch # finally made PS1 work with PROMPT_COMMAND # made short function for showing short now playing # 10-24-2020: deleted .bashrc; call to static .bashrc on colossus # will change source to .bash_profile # changed alias for spotify to sp # added parse_git_branch() to get branch name for PS1 # changed grad() to work without probing the architecture # removed colors from PS1, got obnoxious # added mkcd() again # 01-18-2021: added alias for 'remake' # 03-06-2022: added alias for donut, and wordle executables # # ============================================================================== # User specific aliases and functions ## Aliases ### Shows everything in detail, except . and .. alias ll="ls -AFGhl" alias l="ls -AFGhl" ### Used for login alias s="ssh sacelani@colossus.it.mtu.edu" ### Move to desktop fast alias desk="cd ~/Desktop" ### Move to desktop fast, verbose alias DESK="CD ~/Desktop" ### Go home alias home="cd ~" ### Go home, verbose alias HOME="CD ~" ### Control Spotify with command line alias sp="~/spotify" ### neofetch alias neofetch="~/neofetch" ### donut alias donut="~/donut" ### wordle alias wordle="~/wordle" alias worlde="~/wordle" ## Aliases ## Exports # Holy shit, export PS1 kept failing, so I had to make it reload every # time a command is run. Hacky and probably really slow, but it works # PROMPT_COMMAND is a command run before it prints the prompt # export PS1 is the command prompt, won't run in this file, only runs # in actual terminal, or here apparently # \e[0;31m is red # \W is the current folder # \e[0;34m is blue # ' -> ' is a space and then an arrow, and then a space # \e0;31m is red again # \e[m is no color #export PROMPT_COMMAND="export PS1='\[\e[0;32m\]\W\[\e[1;31m\] -> \[\e[0;32m\]'" #export PROMPT_COMMAND="export PS1='\e[0;31m$(parse_git_branch) \e[m\W -> '" export PROMPT_COMMAND="export PS1='\W -> '" #export LSCOLORS=exfxcxdxbxegabagacad ## Functions ### LaTeX make function tecc() { pdflatex $1 >> /dev/null # compile tex file, output dies rm $1.log # get rid of trash files rm $1.aux } ### Print name of git branch parse_git_branch() { # call git branch to return list of all branches # redirect output from 2 (error) to null # pipe standard output to grep, get line with * # pipe THAT to function that removes the leading space and * git branch 2>/dev/null | grep '^*' | colrm 1 2 } ### Print Now Playing, short playing() { echo -n $(~/spotify status artist) # Print the artist, no newline echo -n " - " # Print delimiter echo $(~/spotify status track) # Print track, with newline } ### Change branch name on Github to daddy daddy() { if [ "$#" -eq 1 ]; then git branch -m master $1 git push -u origin $1 else git branch -m master daddy git push -u origin daddy fi echo "Log in to GitHub and change the default branch" echo "Then call 'daddy2'" } daddy2() { git push origin --delete master git remote set-head origin -a } ### Detect architecture and load correct source file src() { if [ arch == "x86_64" ]; then # Check to see if using colossus source ~/.bashrc # Reload colossus bash profile else # If not colossus, boofnet source ~/.bash_profile # Reload boofnet bash profile fi } ### Change directory and show contents CD() { cd $1 # Move clear # Clear screen ll # Print directory } ### If cd fails, make the new directory and cd in mkcd() { oldD=$(pwd) # Snag the current directory cd $1 >/dev/null 2>/dev/null # cd, direct error output to null newD=$(pwd) # Snag current directory again if [ $oldD == $newD ]; then # If new is same as old, didn't move mkdir $1 # Make the new directory cd $1 # cd in fi } ### Jump to grad school directory, user specified semester if possible grad() { old=$(pwd); cd ~/Desktop/grad 2>/dev/null if [ $old == $(pwd) ]; then cd ~/Documents/everything 2>/dev/null fi # if [ arch == "x86_64" ]; then # Check to see using colossus # cd ~/Desktop/grad/ # Jump to grad directory, colossus # else # If not colossus, boofnet # cd ~/Documents/everything # Jump to grad directory, boofnet # fi if [ "$#" -eq 1 ]; then # See if user entered a semester argument cd "semester-$1" 2>/dev/null # Go to semester, error silently fi } ### Take new repository and connect it to a Github repository gitMake() { if [ "$#" -eq 1 ]; then # These three lines were given by github.com git remote add origin https://github.com/sacelani/$1.git git branch -M master git push -u origin master else # If the user doesn't give a name for the repo echo -e "Usage:: gitMake REPO" # Print usage echo -e "\tConnect local repo REPO to Github repo" fi } ## Functions . "$HOME/.cargo/env"