Skip to content

A collection of useful shell scripts, for the lazy and impatient.

License

Notifications You must be signed in to change notification settings

frgomes/bash-scripts

Repository files navigation

This is a bunch of shell scripts containing useful functions aiming to deliver increased productivity.

WARNING: This toolbox is under heavy development. Expect that things change.

See extra documentation: docs

Requirements

For the impatient

WARNING: Make sure you have two or more terminal window open so that you can fix mistakes in case your .bashrc kicks you out next time you log in.

#!/usr/bin/env sh
[ -d "${HOME}/workspace" ] || mkdir -p "${HOME}/workspace"
[ -d "${HOME}/workspace/bash-scripts" ] || git -C "${HOME}/workspace" clone http://github.com/frgomes/bash-scripts
echo 'source ${HOME}/workspace/bash-scripts/bashrc ## http://github.com/frgomes/bash-scripts' >> ${HOME}/.bashrc

Open a new terminal session and enjoy!

For the experienced and impatient

curl -s https://raw.githubusercontent.com/frgomes/bash-scripts/master/unsafe/bashrc-up | sh

Recommended ${HOME}/.bashrc

Below you find a suggestion for ${HOME}/.bashrc for every supported Linux distribution:

#!/bin/bash -x

## http://github.com/frgomes/bash-scripts
[[ -f ${HOME}/workspace/bash-scripts/bashrc ]] && source ${HOME}/workspace/bash-scripts/bashrc

case $( cat /etc/os-release | grep -E '^ID=' | cut -d= -f2 | tr -d '"' ) in
    opensuse-tumbleweed) [[ -d !/.virtualenvs/tumbleweed ]] || mkvirtualenv tumbleweed ; workon tumbleweed ;;
    opensuse-microos)    [[ -d !/.virtualenvs/microos ]]    || mkvirtualenv microos    ; workon microos ;;
    debian)              [[ -d !/.virtualenvs/debian ]]     || mkvirtualenv debian     ; workon debian ;;
    ubuntu)              [[ -d !/.virtualenvs/ubuntu ]]     || mkvirtualenv ubuntu     ; workon ubuntu ;;
    *) ;;
esac

Design Concept

Starting from a brand new laptop with only the base operating system installed, I would like to be able to quickly have my environment setup. Then I open a new terminal window and all remaining bits are automagically configured for me. I also would like to install complex software packages easily, employing just a single command. Then I'm ready to go. The entire thing should not take more than a few minutes.

Features in a nutshell

Other use cases

Additional tricks

Source your own custom scripts

The initializaton runs scripts matching the pattern: $HOME/bin/bash_*.sh

Other custom scripts

This is experimental and requires code review.

More details here.

About

A collection of useful shell scripts, for the lazy and impatient.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages