diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..e6a12b2 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +# EditorConfig is awesome: http://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true + +# Matches multiple files with brace expansion notation +[*.{sh,py,yml}] +indent_style = space +indent_size = 2 diff --git a/.gitignore b/.gitignore index 79285e8..c30b09c 100644 --- a/.gitignore +++ b/.gitignore @@ -13,5 +13,6 @@ !/log/.gitkeep # disabled files +*.swp *.disabled .idea/ diff --git a/lib/theme-and-appearance.sh b/lib/theme-and-appearance.sh index 1f5873e..c8cee0e 100644 --- a/lib/theme-and-appearance.sh +++ b/lib/theme-and-appearance.sh @@ -2,36 +2,3 @@ # colored ls export LSCOLORS='Gxfxcxdxdxegedabagacad' - -if [[ "$DISABLE_LS_COLORS" != "true" ]]; then - # Find the option for using colors in ls, depending on the version - if [[ "$OSTYPE" == netbsd* ]]; then - # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors); - # otherwise, leave ls as is, because NetBSD's ls doesn't support -G - gls --color -d . &>/dev/null && alias ls='gls --color=tty' - elif [[ "$OSTYPE" == openbsd* ]]; then - # On OpenBSD, "gls" (ls from GNU coreutils) and "colorls" (ls from base, - # with color and multibyte support) are available from ports. "colorls" - # will be installed on purpose and can't be pulled in by installing - # coreutils, so prefer it to "gls". - gls --color -d . &>/dev/null && alias ls='gls --color=tty' - colorls -G -d . &>/dev/null && alias ls='colorls -G' - elif [[ "$OSTYPE" == darwin* ]]; then - # this is a good alias, it works by default just using $LSCOLORS - ls -G . &>/dev/null && alias ls='ls -G' - - # only use coreutils ls if there is a dircolors customization present ($LS_COLORS or .dircolors file) - # otherwise, gls will use the default color scheme which is ugly af - [[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] && gls --color -d . &>/dev/null && alias ls='gls --color=tty' - else - # For GNU ls, we use the default ls color theme. They can later be overwritten by themes. - if [[ -z "$LS_COLORS" ]]; then - (( $+commands[dircolors] )) && eval "$(dircolors -b)" - fi - - #ls --color -d . &>/dev/null && alias ls='ls --color=tty' || { ls -G . &>/dev/null && alias ls='ls -G' } - - # Take advantage of $LS_COLORS for completion as well. - #zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" - fi -fi diff --git a/plugins/core/core.plugin.sh b/plugins/core/core.plugin.sh index 61a3beb..00be030 100644 --- a/plugins/core/core.plugin.sh +++ b/plugins/core/core.plugin.sh @@ -179,14 +179,14 @@ ffe () { /usr/bin/find . -name '*'"$@" ; } # ffe: Find file whose name end # ii: display useful host related informaton # ------------------------------------------------------------------- ii() { - echo -e "\nYou are logged on ${red}$HOST" - echo -e "\nAdditionnal information:$NC " ; uname -a - echo -e "\n${red}Users logged on:$NC " ; w -h - echo -e "\n${red}Current date :$NC " ; date - echo -e "\n${red}Machine stats :$NC " ; uptime - #echo -e "\n${red}Current network location :$NC " ; scselect - echo -e "\n${red}Public facing IP Address :$NC " ;myip - #echo -e "\n${red}DNS Configuration:$NC " ; scutil --dns + echo -e "\\nYou are logged on ${red}$HOST" + echo -e "\\nAdditionnal information:$NC " ; uname -a + echo -e "\\n${red}Users logged on:$NC " ; w -h + echo -e "\\n${red}Current date :$NC " ; date + echo -e "\\n${red}Machine stats :$NC " ; uptime + [[ "$OSTYPE" == darwin* ]] && echo -e "\\n${red}Current network location :$NC " ; scselect + echo -e "\\n${red}Public facing IP Address :$NC " ;myip + [[ "$OSTYPE" == darwin* ]] && echo -e "\\n${red}DNS Configuration:$NC " ; scutil --dns echo } @@ -216,7 +216,6 @@ ffe () { /usr/bin/find . -name '*'"$@" ; } # ffe: Find file whose name end else du -hd 1 fi - elif [ $(uname) = "Linux" ]; then if [ -n "$1" ]; then du -h --max-depth=1 "$1" diff --git a/templates/bashrc.osh-template b/templates/bash_profile.osh-template similarity index 94% rename from templates/bashrc.osh-template rename to templates/bash_profile.osh-template index c1f5ce6..3198bb0 100644 --- a/templates/bashrc.osh-template +++ b/templates/bash_profile.osh-template @@ -1,6 +1,3 @@ -# If you come from bash you might have to change your $PATH. -# export PATH=$HOME/bin:/usr/local/bin:$PATH - # Path to your oh-my-bash installation. export OSH=$HOME/.oh-my-bash @@ -48,7 +45,7 @@ OSH_THEME="font" # Which plugins would you like to load? (plugins can be found in ~/.oh-my-bash/plugins/*) # Custom plugins may be added to ~/.oh-my-bash/custom/plugins/ -# Example format: plugins=(rails git textmate ruby lighthouse) +# Example format: plugins=(core rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. plugins=(core git bashmarks progress) diff --git a/templates/bashrc.default-template b/templates/bashrc.default-template new file mode 100644 index 0000000..b488fcc --- /dev/null +++ b/templates/bashrc.default-template @@ -0,0 +1,117 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Add an "alert" alias for long running commands. Use like so: +# sleep 10; alert +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi diff --git a/tools/backward_compatible.sh b/tools/backward_compatible.sh new file mode 100644 index 0000000..f507455 --- /dev/null +++ b/tools/backward_compatible.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +if [ -f $HOME/.bashrc.pre-oh-my-bash ] || [ -h $HOME/.bashrc.pre-oh-my-bash ]; then + mv $HOME/.bashrc.pre-oh-my-bash HOME/.bash_profile.pre-oh-my-bash + cp $OSH/templates/bashrc.default-template $HOME/.bashrc +fi diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index ec91d87..31a0033 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -11,7 +11,7 @@ function _update_osh_update() { } function _upgrade_osh() { - env OSH=$OSH sh $OSH/tools/upgrade.sh + env BASH=$OSH sh $OSH/tools/upgrade.sh # update the osh file _update_osh_update } diff --git a/tools/install.sh b/tools/install.sh index b985cb4..6f38d1a 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -62,17 +62,17 @@ main() { } printf "${BLUE}Looking for an existing bash config...${NORMAL}\n" - if [ -f ~/.bashrc ] || [ -h ~/.bashrc ]; then - printf "${YELLOW}Found ~/.bashrc.${NORMAL} ${GREEN}Backing up to ~/.bashrc.pre-oh-my-bash${NORMAL}\n"; - mv ~/.bashrc ~/.bashrc.pre-oh-my-bash; + if [ -f $HOME/.bash_profile ] || [ -h $HOME/.bash_profile ]; then + printf "${YELLOW}Found ~/.bash_profile.${NORMAL} ${GREEN}Backing up to ~/.bash_profile.pre-oh-my-bash${NORMAL}\n"; + mv $HOME/.bash_profile $HOME/.bash_profile.pre-oh-my-bash; fi printf "${BLUE}Using the Oh My Bash template file and adding it to ~/.bashrc${NORMAL}\n" - cp $OSH/templates/bashrc.osh-template ~/.bashrc + cp $OSH/templates/bash_profile.osh-template $HOME/.bash_profile sed "/^export OSH=/ c\\ - export OSH=$OSH - " ~/.bashrc > ~/.bashrc-ombtemp - mv -f ~/.bashrc-ombtemp ~/.bashrc +export OSH=$OSH + " $HOME/.bash_profile > $HOME/.bash_profile-ombtemp + mv -f $HOME/.bash_profile-ombtemp $HOME/.bash_profile # MOTD message :) printf '%s' "$GREEN" @@ -84,7 +84,7 @@ main() { printf '%s\n' ' /____/ .... is now installed!' printf "%s\n" "Please look over the ~/.bashrc file to select plugins, themes, and options" printf "${BLUE}${BOLD}%s${NORMAL}\n" "To keep up on the latest news and updates, follow us on GitHub: https://github.com/ohmybash/oh-my-bash" - source $HOME/.bashrc + . $HOME/.bash_profile } diff --git a/tools/uninstall.sh b/tools/uninstall.sh old mode 100644 new mode 100755 index fd07f7a..e8ca2a8 --- a/tools/uninstall.sh +++ b/tools/uninstall.sh @@ -7,21 +7,21 @@ if [ "$confirmation" != y ] && [ "$confirmation" != Y ]; then fi echo "Removing ~/.oh-my-bash" -if [ -d ~/.oh-my-bash ]; then - rm -rf ~/.oh-my-bash +if [ -d $HOME/.oh-my-bash ]; then + rm -rf $HOME/.oh-my-bash fi echo "Looking for original bash config..." -if [ -f ~/.bashrc.pre-oh-my-bash ] || [ -h ~/.bashrc.pre-oh-my-bash ]; then - echo "Found ~/.bashrc.pre-oh-my-bash -- Restoring to ~/.bashrc"; +if [ -f $HOME/.bash_profile.pre-oh-my-bash ] || [ -h $HOME/.bash_profile.pre-oh-my-bash ]; then + echo "Found ~/.bash_profile.pre-oh-my-bash -- Restoring to ~/.bash_profile"; - if [ -f ~/.bashrc ] || [ -h ~/.bashrc ]; then - BASHRC_SAVE=".bashrc.omb-uninstalled-$(date +%Y%m%d%H%M%S)"; - echo "Found ~/.bashrc -- Renaming to ~/${BASHRC_SAVE}"; - mv ~/.bashrc ~/"${BASHRC_SAVE}"; + if [ -f $HOME/.bash_profile ] || [ -h $HOME/.bash_profile ]; then + BASH_PROFILE_SAVE=".bash_profile.omb-uninstalled-$(date +%Y%m%d%H%M%S)"; + echo "Found ~/.bash_profile -- Renaming to ~/${BASH_PROFILE_SAVE}"; + mv $HOME/.bash_profile $HOME/"${BASH_PROFILE_SAVE}"; fi - mv ~/.bashrc.pre-oh-my-bash ~/.bashrc; + mv $HOME/.bash_profile.pre-oh-my-bash $HOME/.bash_profile; echo "Your original bash config was restored. Please restart your session." else @@ -33,4 +33,4 @@ else fi fi -echo "Thanks for trying out Oh My Bash. It's been uninstalled." +echo "Thanks for trying out Oh My Bash. It has been uninstalled." diff --git a/tools/upgrade.sh b/tools/upgrade.sh index dead2cd..1fc03ab 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -34,7 +34,8 @@ then printf '%s\n' ' /____/ ' printf "${BLUE}%s\n" "Hooray! Oh My Bash has been updated and/or is at the current version." printf "${BLUE}${BOLD}%s${NORMAL}\n" "To keep up on the latest news and updates, follow us on GitHub: https://github.com/ohmybash/oh-my-bash" - source $HOME/.bashrc + sh $OSH/tools/backward_compatible.sh + . $HOME/.bash_profile else printf "${RED}%s${NORMAL}\n" 'There was an error updating. Try again later?' fi