From 00e123d9faf21d577b29f5fbba1167d36562891f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=9F=E9=85=8C=20=E9=B5=AC=E5=85=84?= Date: Mon, 4 Aug 2014 17:40:25 +0800 Subject: [PATCH] Structual bashrc --- bash/bashrc/package.sh | 23 ++++++++++ bash/bashrc/sources/09_ssh-agent | 24 ++++++++++ bash/bashrc/sources/10_aliases | 17 +++++++ bash/bashrc/sources/20_fast-greps | 34 ++++++++++++++ bash/bashrc/sources/30_mysql | 45 +++++++++++++++++++ .../sources/40_go-command} | 5 +-- bash/bashrc/sources/50_blog | 22 +++++++++ bash/bashrc/sources/60_diagnostics | 13 ++++++ 8 files changed, 180 insertions(+), 3 deletions(-) create mode 100644 bash/bashrc/package.sh create mode 100755 bash/bashrc/sources/09_ssh-agent create mode 100755 bash/bashrc/sources/10_aliases create mode 100755 bash/bashrc/sources/20_fast-greps create mode 100755 bash/bashrc/sources/30_mysql rename bash/{go_command => bashrc/sources/40_go-command} (95%) mode change 100644 => 100755 create mode 100755 bash/bashrc/sources/50_blog create mode 100755 bash/bashrc/sources/60_diagnostics diff --git a/bash/bashrc/package.sh b/bash/bashrc/package.sh new file mode 100644 index 0000000..47ed720 --- /dev/null +++ b/bash/bashrc/package.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +function __func_head() { + echo "Usage:" ${FUNCNAME[1]} $1 +} + +function __func_help() { +# echo "Usage:" ${FUNCNAME[1]} $1 + echo " ${FUNCNAME[1]} $1" +} + +# Run through all sources +SDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/sources + +echo "Begin source:" +for i in $( find $SDIR -maxdepth 1 -type f -executable | sort ) +do + echo " Source:" $( basename $i ) + . $i + if [[ $? -ne 0 ]]; then + echo " .. failed" + fi +done diff --git a/bash/bashrc/sources/09_ssh-agent b/bash/bashrc/sources/09_ssh-agent new file mode 100755 index 0000000..3b21ced --- /dev/null +++ b/bash/bashrc/sources/09_ssh-agent @@ -0,0 +1,24 @@ +#!/bin/bash + +SSH_ENV="$HOME/.ssh/environment" + +function start_agent { + echo "Initialising new SSH agent..." + /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}" + echo succeeded + chmod 600 "${SSH_ENV}" + . "${SSH_ENV}" > /dev/null + /usr/bin/ssh-add; +} + +# Source SSH settings, if applicable + +if [ -f "${SSH_ENV}" ]; then + . "${SSH_ENV}" > /dev/null + #ps ${SSH_AGENT_PID} doesn't work under cywgin + ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { + start_agent; + } +else + start_agent; +fi diff --git a/bash/bashrc/sources/10_aliases b/bash/bashrc/sources/10_aliases new file mode 100755 index 0000000..f6a8710 --- /dev/null +++ b/bash/bashrc/sources/10_aliases @@ -0,0 +1,17 @@ +#!/bin/bash + +# directory navigations +alias p=pushd +alias pp='pushd +2' +alias p3='pushd +3' +alias p4='pushd +4' +alias o=popd +alias d='dirs -v' + +# fast greps +alias grep='grep --color=auto --exclude=\.svn' +alias grepphp='grep -n --include=*.php' +alias grepjs='grep -n --include=*.js' + +# Wget prefix +alias wget='wget --directory-prefix="$HOME/Downloads"' diff --git a/bash/bashrc/sources/20_fast-greps b/bash/bashrc/sources/20_fast-greps new file mode 100755 index 0000000..8a08a9f --- /dev/null +++ b/bash/bashrc/sources/20_fast-greps @@ -0,0 +1,34 @@ +#!/bin/bash + +function grepmysql () { + if [[ -z "$1" ]]; then + __func_head "MySQL_SERVER_NAME [WITH_OPTIONS]" + echo + else + if [[ -z "$2" ]]; then + grep -i $1 ~/.mysql_pass | awk 'BEGIN{FS=":"}{ print $2 }' + else + grep -i $1 ~/.mysql_pass | awk 'BEGIN{FS=":"}{ print $2" "$3 }' + fi + fi +} + +function grepdb () { + if [[ -z "$1" ]]; then + __func_head "DB_NAME" + echo + else + grep $1 ~/.db_pass | awk 'BEGIN{FS=":"}{ print $2 }' + fi +} + +function greptype() { + if [[ -z "$1" ]]; then + __func_head "TYPE GREP_ARGS" + echo + else + CMD="grep --color=auto -n --include=*.$1" + shift + $CMD $@ + fi +} diff --git a/bash/bashrc/sources/30_mysql b/bash/bashrc/sources/30_mysql new file mode 100755 index 0000000..3f02cf9 --- /dev/null +++ b/bash/bashrc/sources/30_mysql @@ -0,0 +1,45 @@ +#!/bin/bash + +function mysqlo () { + if [[ -z "$1" ]]; then + __func_head "SERVER_NAME" + echo + else + PASS=$(grepmysql $1 true) + if [[ -z "$PASS" ]]; then + echo "Server not found in config: $1" + return 1 + + fi + + PS_SQL=$(grep -i $1 ~/.mysql_pass | awk 'BEGIN{FS=":"}{ print $4 }') + USER=$(grep -i $1 ~/.mysql_pass | awk 'BEGIN{FS=":"}{ print $5 }') + + export MYSQL_PS1="$PS_SQL> " + + shift + + echo $__mysql + mysql -u $USER --password=$PASS $@ + unset PS_SQL + fi +} + +function mysqls () { + if [[ -z "$1" ]]; then + __func_head "SERVER_NAME DATABASE_NAME SQL_FILE" + echo + else + USER=$(grep -i $1 ~/.mysql_pass | awk 'BEGIN{FS=":"}{ print $5 }') + PASS=$(grepmysql $1 true) + + if [[ -z "$PASS" ]]; then + echo "Server not found in config: $1" + return 1 + + fi + + mysql -u $USER --password=$PASS -D $2 < $3 + fi +} + diff --git a/bash/go_command b/bash/bashrc/sources/40_go-command old mode 100644 new mode 100755 similarity index 95% rename from bash/go_command rename to bash/bashrc/sources/40_go-command index 75fa883..cc5ec76 --- a/bash/go_command +++ b/bash/bashrc/sources/40_go-command @@ -5,9 +5,8 @@ function go() { ARG1=$1; ARG2=$2; ARG3=$3; if [[ -z "$ARG1" ]]; then - echo - echo "Usage: go [MODE] SITE TARGET_DIR" - echo " [MODE] TARGET_DIR" + __func_head "[MODE] SITE TARGET_DIR" + __func_help " [MODE] TARGET_DIR" echo return 1 fi diff --git a/bash/bashrc/sources/50_blog b/bash/bashrc/sources/50_blog new file mode 100755 index 0000000..90fcb1f --- /dev/null +++ b/bash/bashrc/sources/50_blog @@ -0,0 +1,22 @@ +#!/bin/bash + +if [[ ! -f ~/wconvv/native/bin ]]; then + return 1 +fi + +export PATH=$PATH:~/wconv/native/bin/ + +function blog () { + if [[ -z 'command -v cj' ]]; then + echo "Cannot find cj" + return 1 + fi + + if [[ -z "$1" ]]; then + __func_head "CONTENT(CJ)" + echo + else + FILE=$(date +%Y%m%d) + echo "$1 " | xargs -d' ' cj >> ~/blog/$FILE + fi +} diff --git a/bash/bashrc/sources/60_diagnostics b/bash/bashrc/sources/60_diagnostics new file mode 100755 index 0000000..c3a3d1e --- /dev/null +++ b/bash/bashrc/sources/60_diagnostics @@ -0,0 +1,13 @@ +#!/bin/bash + +function catlog () { + if [[ -z "$1" ]]; then + __func_head "FILE" + echo " Will exclude:" + cat ~/.settings/checklog_exclude | awk '{ print " "$1 }' + echo + else + EXCLUDE=$(awk '{ printf("(%s)|", $1) }' ~/.settings/checklog_exclude | sed 's/|$//') + egrep -v $EXCLUDE $1 + fi +}