mirror of https://github.com/nirenjan/dotfiles.git
				
				
				
			Move scripts to submodule
							parent
							
								
									1afa6ba95b
								
							
						
					
					
						commit
						9f75a8b596
					
				|  | @ -0,0 +1,3 @@ | |||
| [submodule "scripts"] | ||||
| 	path = scripts | ||||
| 	url = git@github.com:nirenjan/scripts | ||||
|  | @ -0,0 +1 @@ | |||
| Subproject commit 6e000ca76d644e455dba0ecb30b2053bbad8c1f1 | ||||
|  | @ -1,27 +0,0 @@ | |||
| #!/usr/bin/env perl | ||||
| # Script to apply git configuration to global gitconfig | ||||
| 
 | ||||
| my $section = 'unknown'; | ||||
| my $variable; | ||||
| my $value; | ||||
| my $command; | ||||
| 
 | ||||
| while(<>) { | ||||
|     chomp; | ||||
|     if (m/^\[(\w+)\]$/) { | ||||
|         $section = $1; | ||||
|         #print "Section: $section\n"; | ||||
|     } elsif (m/^\[(\w+) +"(\w+)"\]/) { | ||||
|         $section = "$1.$2"; | ||||
|         #print "Section: $section\n"; | ||||
|     } elsif (m/(\w+) += +(.+)$/) { | ||||
|         $variable = $1; | ||||
|         $value = $2; | ||||
| 
 | ||||
|         $value =~ s/"/\\"/g; | ||||
|         #print "\t$section.$variable = \"$value\"\n"; | ||||
|         $command = "git config --global $section.$variable \"$value\""; | ||||
|         print "$command\n"; | ||||
|         system($command); | ||||
|     } | ||||
| } | ||||
|  | @ -1,8 +0,0 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| if [[ $# -gt 0 ]] | ||||
| then | ||||
|     eval "$@" | ||||
| fi | ||||
| 
 | ||||
| echo -e "\007" | ||||
							
								
								
									
										195
									
								
								scripts/deploy
								
								
								
								
							
							
						
						
									
										195
									
								
								scripts/deploy
								
								
								
								
							|  | @ -1,195 +0,0 @@ | |||
| #!/bin/bash | ||||
| # Script to copy files from a Git repository to a destination | ||||
| # Reads deployment instructions from a file and acts accordingly | ||||
| # | ||||
| # File Format | ||||
| # =========== | ||||
| # | ||||
| # Comments begin with a # character and terminate at the end of the line. | ||||
| # | ||||
| # The keyword 'repo' specifies the path to the repository. The repository must | ||||
| # be accessible locally without having to resort to ssh, https or git protocols. | ||||
| # Usage: repo <path to repo> | ||||
| # | ||||
| # The keyword 'target' specifies the location to which to deploy. If omitted, it | ||||
| # defaults to the current folder. Folders can be specified relative to the | ||||
| # current folder, relative to the home directory, or relative to the root, using | ||||
| # ./ or ../, ~/ and / as prefixes respectively. The parameter must be a valid | ||||
| # directory. | ||||
| # Usage: target <path to install to> | ||||
| # | ||||
| # The keyword 'file' specifies the file location relative to the root of the | ||||
| # Git repository, along with the version to install and an optional rename | ||||
| # argument which allows you to rename the destination file. If the version is | ||||
| # omitted, it defaults to HEAD. If the rename-to parameter is omitted, the | ||||
| # filename is the same as the name within the repository. | ||||
| # Usage: file <path to file within repo> [version [rename-to]] | ||||
| 
 | ||||
| # Default environment variables used | ||||
| DEPLOY_GIT='' | ||||
| DEPLOY_TGT=$(pwd) | ||||
| DEPLOY_SRC='' | ||||
| DEPLOY_LST='' | ||||
| DEPLOY_DEBUG=false | ||||
| 
 | ||||
| # Usage function will display the usage | ||||
| usage() | ||||
| { | ||||
|     local deploy=$(basename $0) | ||||
|     echo "Usage: $deploy <deploy-file1> <deploy-file2> ..." | ||||
|     exit 0 | ||||
| } | ||||
| 
 | ||||
| # Die function will print the error message to stderr and abort the script | ||||
| die() | ||||
| { | ||||
|     local exit_code=$1 | ||||
|     local deploy=$(basename $0) | ||||
|     shift | ||||
| 
 | ||||
|     for msg in "$@" | ||||
|     do | ||||
|         echo -e "$deploy: $msg" >&2 | ||||
|     done | ||||
| 
 | ||||
|     if [[ $exit_code != 128 && $exit_code != 0 ]] | ||||
|     then | ||||
|         echo -e "\tError in file $DEPLOY_SRC line ${BASH_LINENO[1]}" >&2 | ||||
|     fi | ||||
| 
 | ||||
|     exit $exit_code | ||||
| } | ||||
| 
 | ||||
| # Debug function will display all data, but only if debugs are enabled | ||||
| debug() | ||||
| { | ||||
|     $DEPLOY_DEBUG && echo "$@" | ||||
| } | ||||
| 
 | ||||
| # Repo function checks if it is a valid Git repo and sets the DEPLOY_GIT | ||||
| repo() | ||||
| { | ||||
|     if [[ $# != 1 ]] | ||||
|     then | ||||
|         die 4 "Invalid usage of repo command" "Usage: repo <path to Git repo>" | ||||
|     fi | ||||
| 
 | ||||
|     if [[ -d "$1" ]] | ||||
|     then | ||||
|         cd "$1" | ||||
|         local gtl=$(git rev-parse --show-toplevel 2>/dev/null) | ||||
| 
 | ||||
|         if [[ -z $gtl ]] | ||||
|         then | ||||
|             die 3 "Path $1 is not a valid Git repository!" | ||||
|         else | ||||
|             debug "Using repository $gtl" | ||||
|             DEPLOY_GIT="$gtl" | ||||
|         fi | ||||
|     else | ||||
|         die 1 "Path $1 does not exist!" | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| # Target function checks if it is a valid directory and sets the DEPLOY_TGT | ||||
| target() | ||||
| { | ||||
|     if [[ $# != 1 ]] | ||||
|     then | ||||
|         die 4 "Invalid usage of target command" "Usage: target <path>" | ||||
|     fi | ||||
| 
 | ||||
|     if [[ -d "$1" ]] | ||||
|     then | ||||
|         debug "Target folder $1" | ||||
|         DEPLOY_TGT="$1" | ||||
|     else | ||||
|         die 1 "Path $1 does not exist!" | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| # File command selects a file to deploy | ||||
| file() | ||||
| { | ||||
|     if [[ $# == 0 || $# > 3 ]] | ||||
|     then | ||||
|         die 4 "Invalid usage of file command" \ | ||||
|               "Usage: file <path from root of repo> [<version> [<rename-to>] ]" | ||||
|     fi | ||||
| 
 | ||||
|     if [[ -z $DEPLOY_GIT ]] | ||||
|     then | ||||
|         die 2 "Must specify repo before file!" | ||||
|     fi | ||||
| 
 | ||||
|     if [[ -z $DEPLOY_TGT ]] | ||||
|     then | ||||
|         die 2 "Must specify target before file!" | ||||
|     fi | ||||
| 
 | ||||
|     local file=$1 | ||||
|     local ver=$2 | ||||
|     local rename=$3 | ||||
| 
 | ||||
|     debug "file $@" | ||||
| 
 | ||||
|     # Sanity check on ver | ||||
|     [[ -z $ver ]] && ver=HEAD | ||||
| 
 | ||||
|     # Sanity check on rename | ||||
|     [[ -z $rename ]] && rename=$(basename $file) | ||||
| 
 | ||||
|     cd $DEPLOY_GIT | ||||
| 
 | ||||
|     # Check to make sure that version is a sane version | ||||
|     git rev-parse $ver &>/dev/null | ||||
| 
 | ||||
|     if [[ $? != 0 ]] | ||||
|     then | ||||
|         die 3 "Version $ver does not exist in the repository $DEPLOY_GIT" | ||||
|     fi | ||||
| 
 | ||||
|     local vercheck=$(git rev-parse $ver 2>/dev/null) | ||||
|     debug "Using version $vercheck" | ||||
| 
 | ||||
|     # Check to make sure that the file is valid in the specified version | ||||
|     git show $vercheck:$file &>/dev/null | ||||
| 
 | ||||
|     if [[ $? != 0 ]] | ||||
|     then | ||||
|         die 3 "File $file does not exist in version $ver of the repo $DEPLOY_GIT" | ||||
|     else | ||||
|         debug "Using file $file" | ||||
|         # Build the commands to extract the file and set the | ||||
|         # executable permissions bit in the deployed file. | ||||
|         local cmd="cd $DEPLOY_GIT" | ||||
|         cmd="$cmd; git show $vercheck:$file > $DEPLOY_TGT/$rename" | ||||
|         cmd="$cmd; chmod +x $DEPLOY_TGT/$rename;" | ||||
|         DEPLOY_LST="$DEPLOY_LST $cmd" | ||||
|     fi | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| if [[ $# == 0 ]] | ||||
| then | ||||
|     usage | ||||
| else | ||||
|     for i in "$@" | ||||
|     do | ||||
|         if [[ -f $i && -r $i ]] | ||||
|         then | ||||
|             DEPLOY_SRC=$i | ||||
|             source $i | ||||
|         else | ||||
|             die 128 "Deploy file $i does not exist or is not readable!" | ||||
|         fi | ||||
|     done | ||||
| fi | ||||
| 
 | ||||
| if [[ ! -z $DEPLOY_LST ]] | ||||
| then | ||||
|     eval $DEPLOY_LST | ||||
| else | ||||
|     die 0 "No files to deploy!" | ||||
| fi | ||||
| 
 | ||||
|  | @ -1,56 +0,0 @@ | |||
| #!/usr/bin/perl | ||||
| # A utility script to test out dircolors settings without reloading | ||||
| # Usage: dircolortest <dircolors file> | ||||
| 
 | ||||
| if ($#ARGV < 0) { | ||||
|     die "Usage: $0 <dircolors file>\n"; | ||||
| } | ||||
| 
 | ||||
| if ($#ARGV > 0) { | ||||
|     warn "Ignoring additional command line arguments\n"; | ||||
| } | ||||
| 
 | ||||
| # Open the file and get the handle | ||||
| open DCFILE, $ARGV[0] or | ||||
|     die "Cannot open dircolors file $ARGV[0]! $!\n"; | ||||
| 
 | ||||
| $line_counter = 0; | ||||
| 
 | ||||
| while ($line = <DCFILE>) { | ||||
|     chomp $line; | ||||
| 
 | ||||
|     # Strip off any comments | ||||
|     $line =~ s/#.*$//; | ||||
| 
 | ||||
|     # Strip off leading and trailing whitespace | ||||
|     $line =~ s/^\s*//; | ||||
|     $line =~ s/\s*$//; | ||||
| 
 | ||||
|     if ($line ne '') { | ||||
|         ($type, $format) = split /\s+/, $line; | ||||
| 
 | ||||
|         # Ignore the following lines, we don't care about them here | ||||
|         next if (($type eq 'TERM') || ($type eq 'COLOR') || | ||||
|                  ($type eq 'OPTIONS') || ($type eq 'EIGHTBIT')); | ||||
| 
 | ||||
|         # Just a little enhancement, if the type begins with a . | ||||
|         if ($type =~ m/^\./) { | ||||
|             $type = "*$type"; | ||||
|         } | ||||
| 
 | ||||
|         print "\033[${format}m$type\033[m"; | ||||
| 
 | ||||
|         $line_counter = $line_counter + 1; | ||||
| 
 | ||||
|         if ($line_counter == 8) { | ||||
|             print "\n"; | ||||
|             $line_counter = 0; | ||||
|         } else { | ||||
|             print "\t"; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| print "\n" if ($line_counter != 0); | ||||
| 
 | ||||
| close DCFILE; | ||||
|  | @ -1,28 +0,0 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # Support script to find the commit from which the given branch was spawned. | ||||
| # Takes one or two arguments, the first argument is mandatory and specifies | ||||
| # the child branch while the second argument is optional and specifies the | ||||
| # parent branch. If omitted, the parent branch defaults to 'master' | ||||
| 
 | ||||
| CHILD=$1 | ||||
| PARENT=$2 | ||||
| 
 | ||||
| USAGE="Usage: $0 <child branch> <parent branch>" | ||||
| 
 | ||||
| if [ "$CHILD" == "" ] | ||||
| then | ||||
|     echo $USAGE | ||||
|     exit | ||||
| fi | ||||
| 
 | ||||
| if [ "$PARENT" == "" ] | ||||
| then | ||||
|     PARENT="master" | ||||
| fi | ||||
| 
 | ||||
| PCOMMIT=`diff -u <(git rev-list --first-parent $CHILD) \ | ||||
|     <(git rev-list --first-parent $PARENT) | sed -ne 's/^ //p' | head -1` | ||||
| 
 | ||||
| git show --pretty="%H %an | %s" $PCOMMIT | head -1 | ||||
| 
 | ||||
							
								
								
									
										52
									
								
								scripts/mlog
								
								
								
								
							
							
						
						
									
										52
									
								
								scripts/mlog
								
								
								
								
							|  | @ -1,52 +0,0 @@ | |||
| #!/bin/bash | ||||
| # Monthly logging script | ||||
| # Call mlog and it will update a log file | ||||
| 
 | ||||
| # Set the default mlog folder | ||||
| [[ -z $MLOG_FOLDER ]] && MLOG_FOLDER="$HOME/mlog" | ||||
| 
 | ||||
| # Make sure that the folder exists | ||||
| [[ ! -d $MLOG_FOLDER ]] && mkdir -pv $MLOG_FOLDER | ||||
| 
 | ||||
| # Make sure that we have a valid TMPDIR | ||||
| [[ -z $TMPDIR ]] && TMPDIR='/tmp' | ||||
| 
 | ||||
| # Make sure that we have a valid EDITOR | ||||
| [[ -z $EDITOR ]] && EDITOR=vim | ||||
| 
 | ||||
| MLOG_HDR='' | ||||
| MLOG_TS="[$(date)]" | ||||
| MLOG_LOG="$MLOG_FOLDER/$(date +%Y-%m)" | ||||
| MLOG_FILE="$TMPDIR/mlog-tmp-$$" | ||||
| 
 | ||||
| if [[ -x $HOME/bin/stardate ]] | ||||
| then | ||||
|     [[ -z $MLOG_RANK ]] && MLOG_RANK='Chief Engineer' | ||||
| 
 | ||||
|     MLOG_HDR=`echo "$MLOG_RANK's log, Stardate $($HOME/bin/stardate)" | sed 's/.$//'` | ||||
| 
 | ||||
|     if [[ -e $MLOG_LOG ]] | ||||
|     then | ||||
|         MLOG_LAST=$(grep Stardate $MLOG_LOG | tail -1) | ||||
| 
 | ||||
|         if [[ "$MLOG_LAST" == "$MLOG_HDR" ]] | ||||
|         then | ||||
|             MLOG_HDR="$MLOG_RANK's log, supplemental" | ||||
|         fi | ||||
|     fi | ||||
| fi | ||||
| 
 | ||||
| $EDITOR $MLOG_FILE | ||||
| 
 | ||||
| [[ ! -s $MLOG_FILE ]] && rm -f $MLOG_FILE && exit 0 | ||||
| 
 | ||||
| 
 | ||||
| echo "$MLOG_HDR" >> $MLOG_LOG | ||||
| echo "$MLOG_TS"  >> $MLOG_LOG | ||||
| echo             >> $MLOG_LOG   # Empty line | ||||
| cat $MLOG_FILE >> $MLOG_LOG | ||||
| echo -en "\n----------------------------------------" >> $MLOG_LOG | ||||
| echo -e "----------------------------------------\n" >> $MLOG_LOG | ||||
| 
 | ||||
| rm -f $MLOG_FILE | ||||
| 
 | ||||
							
								
								
									
										330
									
								
								scripts/note
								
								
								
								
							
							
						
						
									
										330
									
								
								scripts/note
								
								
								
								
							|  | @ -1,330 +0,0 @@ | |||
| #!/bin/bash | ||||
| # Notes manager for the command line | ||||
| 
 | ||||
| NOTES_VER="0.1a" | ||||
| NOTES_DIR="$HOME/.notes" | ||||
| 
 | ||||
| # Initialize with the default editor | ||||
| [ -z "$EDITOR" ] && EDITOR="/usr/bin/vim" | ||||
| 
 | ||||
| dprint() { | ||||
|     if [ ! -z $NOTES_DEBUG ]; then | ||||
|         echo $* | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| notes_init() { | ||||
|     # Check if the notes folder exists, if not, create it | ||||
|     if [ ! -d $NOTES_DIR ] | ||||
|     then | ||||
|         echo -n "Creating notes folder..." | ||||
|         mkdir -p $NOTES_DIR | ||||
|         cd $NOTES_DIR | ||||
|         echo "done." | ||||
| 
 | ||||
|         git init . | ||||
|     else | ||||
|         echo "Notes has already been initialized." | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| make_title() { | ||||
|     echo "$*" | sed 's/[^A-Za-z0-9_]\+/-/g' | \ | ||||
|     sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/' | ||||
| } | ||||
| 
 | ||||
| title_to_name() { | ||||
|     note_file=$NOTES_DIR/$(make_title $note_arg) | ||||
| } | ||||
| 
 | ||||
| check_arg() { | ||||
|     if [ -z "$note_arg" ] | ||||
|     then | ||||
|         echo "Must specify a note title!" | ||||
|         exit | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| note_exists() { | ||||
|     [[ -f "$note_file" ]] | ||||
| } | ||||
| 
 | ||||
| check_md5() { | ||||
|     if [[ "$note_old_md5" == "$note_new_md5" ]] | ||||
|     then | ||||
|         echo "No changes to '$note_arg'" | ||||
| 
 | ||||
|         if [[ ! -z "$1" ]] | ||||
|         then | ||||
|             rm -f $1 | ||||
|         fi | ||||
| 
 | ||||
|         exit | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| check_empty() { | ||||
|     if [[ ! -s "$note_file" ]] | ||||
|     then | ||||
|         if [[ "$1" == "restore" ]] | ||||
|         then | ||||
|             cd "$NOTES_DIR" | ||||
|             gitfile=$(basename "$note_file") | ||||
|             git checkout $gitfile | ||||
|             echo "Restored empty note '$note_arg'" | ||||
|         elif [[ "$1" == "delete" ]] | ||||
|         then | ||||
|             rm -f $note_file | ||||
|             echo "Deleted empty note '$note_arg'" | ||||
|         fi | ||||
| 
 | ||||
|         exit | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| check_dir() { | ||||
|     if [[ ! -d "$NOTES_DIR" ]] | ||||
|     then | ||||
|         echo "Notes not initialized. Run init first!" | ||||
|         exit | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| md5_sum() { | ||||
|     openssl dgst -md5 $* | ||||
| } | ||||
| 
 | ||||
| help_cmd() { | ||||
|     echo ' | ||||
| Notes Manager for the Command Line | ||||
| ================================== | ||||
| 
 | ||||
| This is a bash script that lets you take notes which are maintained in a | ||||
| Git repository. You can run this script by typing the following command | ||||
| at the command line: | ||||
| 
 | ||||
| Usage: note <command> <arguments> | ||||
| 
 | ||||
| Commands | ||||
| -------- | ||||
| You can use the first letter of each command as a shortcut key. | ||||
| 
 | ||||
|     Command     Usage | ||||
|     -------     ----- | ||||
|     new         Follow this with the note name to create a new note | ||||
|     edit        Follow this with the note name to edit an existing note | ||||
|     show        Follow this with the note name to display an existing note | ||||
|     delete      Follow this with the note name to delete a note | ||||
|     find        Prints the list of available notes | ||||
|     log         Displays the note history | ||||
|     grep        Finds all notes with the specified keyword in the text | ||||
|     init        Run this the very first time to set up the folders | ||||
|     help        Prints this help message | ||||
|     version     Prints the version information | ||||
| ' | ||||
| } | ||||
| 
 | ||||
| version_info() { | ||||
|     echo "Notes Manager version $NOTES_VER" | ||||
| } | ||||
| 
 | ||||
| note_new() { | ||||
|     check_dir | ||||
|     check_arg | ||||
|     title_to_name | ||||
| 
 | ||||
|     if note_exists | ||||
|     then | ||||
|         echo "Note '$note_arg' already exists! Use edit instead." | ||||
|         exit | ||||
|     fi | ||||
| 
 | ||||
|     echo "$note_arg" > $note_file | ||||
|     note_old_md5=$(md5_sum $note_file) | ||||
| 
 | ||||
|     $EDITOR $note_file | ||||
| 
 | ||||
|     note_new_title=$(head -1 $note_file) | ||||
|     note_new_md5=$(md5_sum $note_file) | ||||
|     note_new_file=$NOTES_DIR/$(make_title $note_new_title) | ||||
|     check_md5 $note_file | ||||
|     check_empty delete | ||||
| 
 | ||||
|     dprint "Original filename = " $note_file | ||||
|     dprint "New filename = " $note_new_file | ||||
| 
 | ||||
|     # Check for a title rename | ||||
|     if [[ "$note_file" != "$note_new_file" ]] | ||||
|     then | ||||
|         mv -f $note_file $note_new_file | ||||
|     fi | ||||
| 
 | ||||
|     cd $NOTES_DIR | ||||
|     gitfile=$(basename $note_new_file) | ||||
| 
 | ||||
|     git add $gitfile | ||||
|     git commit -m "Create note '$note_new_title'" | ||||
|     echo "Created note '$note_new_title'" | ||||
| } | ||||
| 
 | ||||
| note_edit() { | ||||
|     check_dir | ||||
|     check_arg | ||||
|     title_to_name | ||||
|     if ! note_exists | ||||
|     then | ||||
|         echo "Cannot find note '$note_arg'!" | ||||
|         exit | ||||
|     fi | ||||
| 
 | ||||
|     note_old_title=$(head -1 $note_file) | ||||
|     note_old_md5=$(md5_sum $note_file) | ||||
| 
 | ||||
|     $EDITOR $note_file | ||||
| 
 | ||||
|     note_new_title=$(head -1 $note_file) | ||||
|     note_new_md5=$(md5_sum $note_file) | ||||
| 
 | ||||
|     check_md5 | ||||
|     check_empty restore | ||||
| 
 | ||||
|     cd $NOTES_DIR | ||||
|     gitfile=$(basename $note_file) | ||||
|     commit_msg="Update note '$note_new_title'" | ||||
|     if [[ "$note_old_title" != "$note_new_title" ]] | ||||
|     then | ||||
|         note_new_file=$(make_title $note_new_title) | ||||
|          | ||||
|         git mv $gitfile $note_new_file | ||||
|         git add $note_new_file | ||||
|         commit_msg="$commit_msg. Rename from '$note_old_title'" | ||||
|     else | ||||
|         git add $gitfile | ||||
|     fi | ||||
| 
 | ||||
|     git commit -m "$commit_msg" | ||||
|     echo "Updated note '$note_new_title'" | ||||
| } | ||||
| 
 | ||||
| note_show() { | ||||
|     check_dir | ||||
|     check_arg | ||||
|     title_to_name | ||||
|     if ! note_exists | ||||
|     then | ||||
|         echo "Cannot find note '$note_arg'!" | ||||
|         exit | ||||
|     fi | ||||
| 
 | ||||
|     less -R $note_file | ||||
| } | ||||
| 
 | ||||
| note_delete() { | ||||
|     check_dir | ||||
|     check_arg | ||||
|     title_to_name | ||||
|     if ! note_exists | ||||
|     then | ||||
|         echo "Cannot find note '$note_arg'!" | ||||
|         exit | ||||
|     fi | ||||
| 
 | ||||
|     cd $NOTES_DIR | ||||
|     gitfile=$(basename $note_file) | ||||
|     git rm $gitfile | ||||
|     git commit -m "Delete note '$note_arg'" | ||||
|     echo "Deleted note '$note_arg'" | ||||
| } | ||||
| 
 | ||||
| note_history() { | ||||
|     check_dir | ||||
|     cd $NOTES_DIR | ||||
|     git log --pretty=format:'%ai - %s' -- $note_arg | ||||
| } | ||||
| 
 | ||||
| note_list() { | ||||
|     check_dir | ||||
|     cd $NOTES_DIR | ||||
|     if [[ -z "$1" ]] | ||||
|     then | ||||
|         ls -1 | ||||
|     else | ||||
|         ls -1 | grep -i $1 | ||||
|     fi | ||||
| } | ||||
| 
 | ||||
| note_search() { | ||||
|     check_dir | ||||
|      | ||||
|     if [[ -z "$1" ]]; then | ||||
|         echo "Must specify a pattern to search titles!" | ||||
|         exit | ||||
|     fi | ||||
| 
 | ||||
|     cd $NOTES_DIR | ||||
|     for file in * | ||||
|     do | ||||
|         grep --color=always -il "$1" $file | ||||
|         grep --color=always -inhT -m2 -C1 "$1" $file | ||||
|     done | ||||
| } | ||||
| 
 | ||||
| parse_args() { | ||||
|     note_cmd=$1 | ||||
|     shift | ||||
|     note_arg="$*" | ||||
| 
 | ||||
|     case "$note_cmd" in | ||||
|     "h" | "help") | ||||
|         help_cmd | ||||
|         ;; | ||||
| 
 | ||||
|     "n" | "new") | ||||
|         note_new | ||||
|         ;; | ||||
| 
 | ||||
|     "e" | "edit") | ||||
|         note_edit | ||||
|         ;; | ||||
| 
 | ||||
|     "s" | "show") | ||||
|         note_show | ||||
|         ;; | ||||
| 
 | ||||
|     "d" | "delete") | ||||
|         note_delete | ||||
|         ;; | ||||
| 
 | ||||
|     "l" | "log") | ||||
|         note_history | ||||
|         ;; | ||||
|      | ||||
|     "i" | "init") | ||||
|         notes_init | ||||
|         ;; | ||||
|      | ||||
|     "f" | "find") | ||||
|         note_list $1 | ||||
|         ;; | ||||
|      | ||||
|     "g" | "grep") | ||||
|         note_search $1 | ||||
|         ;; | ||||
| 
 | ||||
|     "v" | "version") | ||||
|         version_info | ||||
|         ;; | ||||
| 
 | ||||
|     *) | ||||
|         echo "Unrecognized command '$note_cmd'. Use help." | ||||
|         ;; | ||||
|     esac | ||||
| } | ||||
| 
 | ||||
| if [[ $# -lt 1 ]] | ||||
| then | ||||
|     echo "Usage: note <command> <arguments>" | ||||
|     echo "Type 'note help' for detailed help" | ||||
| else | ||||
|     parse_args $* | ||||
| fi | ||||
|  | @ -1,10 +0,0 @@ | |||
| #!/bin/bash | ||||
| # Set the Xterm/Tmux pane title | ||||
| 
 | ||||
| if [[ -z $TMUX ]] | ||||
| then | ||||
|     echo -e "\033]0;$*\007" | ||||
| else | ||||
|     echo -e "\033k$*\033\\" | ||||
| fi | ||||
| 
 | ||||
|  | @ -1,69 +0,0 @@ | |||
| #!/usr/bin/env ruby | ||||
| # -*- ruby -*- | ||||
| # Script to smartly chop off portions of the current working directory for | ||||
| # use in the shell prompt | ||||
| 
 | ||||
| # Some of the methods don't work with Ruby versions older than 1.8.7 | ||||
| min_release = "1.8.7 (2008-08-11)" | ||||
| ruby_release = "#{RUBY_VERSION} (#{RUBY_RELEASE_DATE})" | ||||
| 
 | ||||
| # Constants used to decide when to start chopping | ||||
| DIRLIM = 5 | ||||
| DIR_L = 3 | ||||
| DIR_R = 2 | ||||
| PWDLEN = 14 | ||||
| 
 | ||||
| def backslash_w | ||||
|   homedir = ENV['HOME'] | ||||
|   pwd = ENV['PWD'] | ||||
|   print pwd.gsub(homedir, '~') | ||||
| end | ||||
| 
 | ||||
| def smartwd | ||||
|   username = ENV['USER'] | ||||
|   homedir = ENV['HOME'] | ||||
|   pwd = ENV['PWD'] | ||||
| 
 | ||||
|   path = pwd.split('/') | ||||
| 
 | ||||
|   # Ignore the root path | ||||
|   if (path.length > 0) | ||||
|     index = path.index(username) | ||||
|     if index | ||||
|       prefix = path.shift(index + 1) | ||||
| 
 | ||||
|       # We need to map additional paths in environments where the user | ||||
|       # may have more than one available folder in his/her name. | ||||
|       if prefix.join('/') == homedir | ||||
|         path.unshift('~') | ||||
|       else | ||||
|         # The first entry in the prefix array is the empty string | ||||
|         pre = prefix[1].split('').shift(4).join('') + '~' | ||||
|         path.unshift(pre) | ||||
|       end | ||||
|     else | ||||
|       # Replace the first two entries in the array with /<entry1> | ||||
|       # (because the first entry is always empty string) | ||||
|       prefix = path.shift(2).join('/') | ||||
|       path.unshift(prefix) | ||||
|     end | ||||
| 
 | ||||
|     # Check to make sure that both the DIRLIM and PWDLEN constraints | ||||
|     # are met before splitting | ||||
|     pwd = path.join('/') | ||||
|     if path.length > DIRLIM and pwd.length > PWDLEN | ||||
|       pwd_l = path.shift(DIR_L).join('/') | ||||
|       pwd_r = path.pop(DIR_R).join('/') | ||||
|       pwd = pwd_l + '/.../' + pwd_r | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   print pwd | ||||
| end | ||||
| 
 | ||||
| if (ruby_release < min_release) | ||||
|   backslash_w | ||||
| else | ||||
|   smartwd | ||||
| end | ||||
| 
 | ||||
|  | @ -1,16 +0,0 @@ | |||
| #!/usr/bin/env python | ||||
| """ Calculate the Julian Date """ | ||||
| 
 | ||||
| import time | ||||
| import math | ||||
| 
 | ||||
| t = time.time() | ||||
| 
 | ||||
| """ Technically, we should be adding 2440587.5, | ||||
|     however, since we are trying to stick to the stardate | ||||
|     concept, we add only 40587.5""" | ||||
| jd = (t / 86400.0 + 40587.5) | ||||
| 
 | ||||
| # Use the idea that 1 Julian day is equal to 1 stardate | ||||
| print ("%05.9f" % jd)[:-7] | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue