BashScripts.org
http://bashscripts.org/forum/

bics- (B)ash (I)nteractive (C)lipboard (S)cript
http://bashscripts.org/forum/viewtopic.php?f=7&t=126
Page 1 of 1

Author:  crouse [ Wed Sep 07, 2005 6:21 am ]
Post subject:  bics- (B)ash (I)nteractive (C)lipboard (S)cript

bics- bash interactive clipboard script

Something I played around with last night...... jbsnake helped me on a couple spots. Basically it's a clipboard for your terminal screen. So when your in a command line only mode, you can still have a quick place to keep notes. It's menu driven, so it's VERY simple to use. :D

Code:
#!/bin/bash
##########################
# USA Linux Users Group  #
# http://www.usalug.org  #
# http://bashscripts.org #
##########################


########################################################
#     bics- bash interactive clipboard script          #
########################################################
#
#
#
#    FILE: bics.sh
# VERSION: 0.0.1
#    DATE: 09-06-2005
#
#  AUTHOR: Dave Crouse <dave NOSPAMat usalug.org>
#          PO Box 3210
#          Des Moines, IA 50316-0210
#          United States
#
# Copyright (C) 2005
# Dave Crouse <dave NOSPAMat usalug.org>
# All rights reserved.
#
########################################################


#########################################################################
#  This software is licensed under the GPL - GNU General Public License #
#########################################################################
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc.
# 59 Temple Place, Suite 330
# Boston, MA  02111-1307  USA
#
###################################################################

######################
# Start of Variables #
######################
#
#
#########################################################
                                                       ##
bics_version="0.1.0"                                   ##
revision_date="Modified September 7, 2005"             ##
author="Created by: Dave Crouse and Joshua Bailey"     ##
                                                       ##
#########################################################
#
#
######################
# End of Variables   #
######################


######################
# Start of Functions #
######################
#
#

headerfile ()
{
clear
echo "
(B)ash (I)nteractive (C)lipboard (S)cript
bics - Version $bics_version  clipboard.clip";
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
mkdir -p ~/.bics
touch ~/.bics/clipboard.clip
touch ~/.bics/clip2.txt
nl -ba  ~/.bics/clipboard.clip
echo "";
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~";
}


Main_Menu ()
{
mainmenu="     a)dd  r)emove  c)lear  h)help  e)xit"
headerfile
echo -e "$mainmenu"
echo "";
read -p "Please choose one of the options above : " option

while true
do
   case $option in
      a)   read -p "Enter your text : " clippy; echo $clippy >> ~/.bics/clipboard.clip;
         ;;
      r)   rm ~/.bics/clip2.txt;
     read -p "Which line you would like to delete : " removeline;
     if [[ $removeline != "" ]]
     then
         cat ~/.bics/clipboard.clip | sed ''$removeline'd' > ~/.bics/clip2.txt;
         mv ~/.bics/clip2.txt ~/.bics/clipboard.clip
     fi
     ;;
      c)   read -p "Are you sure you want to erase the entire clipboard ? y/n: " reallycontinue
              if [ "$reallycontinue" = "y" ]
                 then
                     rm ~/.bics/clipboard.clip; echo "!! Erasing Clipboard !!" ; sleep 1;
               fi
         ;;
      h)   helpfile ;
         ;;   
      e)   option="";
         exit;
         ;;
      alias)  echo "alias bics='sh $PWD/bics.sh'" >> ~/.bashrc;
         ;;   
      *)   echo "Sorry, that isn't an option, try again. "; sleep 2;
         ;;
   esac
   headerfile
   echo -e "$mainmenu"
   echo "";   
   read -p "Please choose one of the options above : " option
done

}


helpfile ()
{
clear
echo "
(B)ash (I)nteractive (C)lipboard (S)cript
bics - Version $bics_version  clipboard.clip";
echo "";
echo "This is the help file for bics - (B)ash (I)nteractive (C)lipboard (S)cript";
echo ""
echo "Tip #1 Typing alias will set an alias into your .bashrc file. You can then start the clipboard by typing   bics ";
echo ""
read -p "Hit any key to continue" blah
}
#
#
####################
# End of Functions #
####################


###########################
# Program run starts here #
###########################
headerfile
Main_Menu
exit

Author:  jbsnake [ Wed Sep 07, 2005 4:14 pm ]
Post subject: 

very nice coding... i especially like the indentation :)

Author:  crouse [ Thu Sep 08, 2005 9:13 am ]
Post subject: 

:P Funny man ... lol. Thanks for helping with it :D

Screenshot of the newest version:

Image

Author:  jbsnake [ Mon Aug 30, 2010 2:39 pm ]
Post subject:  Re: bics- (B)ash (I)nteractive (C)lipboard (S)cript

I found this script on my machine. I'm pretty sure it's a slightly earlier version of this script, but I added gpg functionality to it.
I tweaked it a little, and well... here :)
Code:
#!/bin/bash                           
##########################           
# USA Linux Users Group  #           
# http://www.usalug.org  #           
# http://bashscripts.org #           
##########################           


########################################################
#     bics- bash interactive clipboard script          #
########################################################
#                                                       
#                                                       
#                                                       
#    FILE: bics.sh                                     
# VERSION: 0.2.1                                       
#    DATE: 08-30-2010                                   
#                                                       
#  AUTHOR: Dave Crouse <dave NOSPAMat usalug.org>       
#          PO Box 3210                                 
#          Des Moines, IA 50316-0210                   
#          United States                               
#                                                       
# Copyright (C) 2010                                   
# Dave Crouse <dave NOSPAMat usalug.org>               
# All rights reserved.                                 
#                                                       
########################################################


#########################################################################
#  This software is licensed under the GPL - GNU General Public License #
#########################################################################
#                                                                       
# This program is free software; you can redistribute it and/or modify   
# it under the terms of the GNU General Public License as published by   
# the Free Software Foundation; either version 2 of the License, or     
# (at your option) any later version.                                   
#                                                                       
# This program is distributed in the hope that it will be useful,       
# but WITHOUT ANY WARRANTY; without even the implied warranty of         
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         
# GNU General Public License for more details.                           
#                                                                       
# You should have received a copy of the GNU General Public License     
# along with this program; if not, write to the Free Software           
# Foundation, Inc.                                                       
# 59 Temple Place, Suite 330                                             
# Boston, MA  02111-1307  USA                                           
#                                                                       
###################################################################     

######################
# Start of Variables #
######################
#                     
#                     
#########################################################
                                                       ##
bics_version="0.2.1"                                   ##
revision_date="Modified August 30, 2010"               ##
author="Created by: Dave Crouse and Joshua Bailey"     ##
twd=`cd ~ && pwd`                                      ##
wd="${twd}/.bics/"                                     ##
cd - >/dev/null 2>&1                                   ##
                                                       ##
#########################################################
#                                                       
#                                                       
######################                                   
# End of Variables   #                                   
######################                                   


######################
# Start of Functions #
######################
#                     
#                     

headerfile ()
{           
clear       
echo "       
(B)ash (I)nteractive (C)lipboard (S)cript
bics - Version $bics_version  clipboard.clip"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo ""                                         
if [[ ! -f ${wd}clipboard.clip ]]               
then                                             
        mkdir -p ${wd}                           
        echo "No Notes!"                         
else                                             
        gpg -d --passphrase "$pp" ${wd}clipboard.clip 2>/dev/null
fi                                                               
echo ""                                                         
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"               
}                                                               


Main_Menu ()
{           
mainmenu="     a)dd  r)emove  c)lear  h)elp  e)xit"
#headerfile                                       
echo -e "$mainmenu"                               
echo "";                                           
read -p "Please choose one of the options above : " option

while true
do       
   case $option in
      a)        decrypt_board
                read -p "Enter your text: " clippy; echo $clippy >> ${wd}clip2.txt;
                encrypt_board                                                     
                ;;                                                                 
      r)        read -p "Which line would you like to delete : " removeline;       
                if [[ "$removeline" != "" ]]                                       
                then                                                               
                        decrypt_board                                             
                        sed -i "/^${removeline}$/d" ${wd}clip2.txt;               
                        encrypt_board                                             
                fi                                                                 
                ;;                                                                 
      c)   read -p "Are you sure you want to erase the entire clipboard ? y/n: " reallycontinue
              if [ "$reallycontinue" = "y" ]                                                   
                 then                                                                         
                     shred ${wd}clipboard.clip; echo "!! Erased Clipboard !!" ; sleep 1;       
               fi                                                                             
         ;;                                                                                   
      h)   helpfile ;                                                                         
         ;;                                                                                   
      e)   option="";                                                                         
         exit;                                                                                 
         ;;                                                                                   
      alias)    cp $0 ${wd}                                                                   
                echo "alias bics='sh ${wd}bics.sh'" >> ~/.bashrc;                             
         ;;                                                                                   
      *)   echo "Sorry, that isn't an option, try again. "; sleep 2;                           
         ;;                                                                                   
   esac                                                                                       
   headerfile                                                                                 
   echo -e "$mainmenu"                                                                         
   echo "";                                                                                   
   read -p "Please choose one of the options above : " option                                 
done                                                                                           

}

get_pp ()
{
        stty -echo
        read -p "Please enter the passphrase: " tmp_pp
        echo ""
        read -p "Please re-enter the passphrase: " tmp_pp2
        stty echo
        echo ""
        if [[ "$tmp_pp" == "$tmp_pp2" ]]
        then
                pp="$tmp_pp"
        else
                echo "Passphrases don't match!"
                echo "Aborting..."
                exit
        fi
        if [[ -f ${wd}clipboard.clip ]]
        then
                testing=`gpg -d --passphrase "$pp" ${wd}clipboard.clip 2>&1`
                if [[ `echo "$testing" | grep "gpg: decryption failed: bad key"` != "" ]]
                then
                        echo "Wrong passphrase!"
                        echo "Aborting!"
                        exit
                fi
        fi
}

encrypt_board ()
{
        if [[ -f ${wd}clipboard.clip ]]; then rm -f ${wd}clipboard.clip; fi
        gpg -ca --passphrase "$pp" -o ${wd}clipboard.clip ${wd}clip2.txt && rm -f ${wd}clip2.txt
}

decrypt_board ()
{
        if [[ -f ${wd}clip2.txt ]]; then rm -f ${wd}clip2.txt; fi
        gpg -d --passphrase "$pp" -o ${wd}clip2.txt ${wd}clipboard.clip 2>/dev/null && rm -f ${wd}clipboard.clip
}

helpfile ()
{
clear
echo "
(B)ash (I)nteractive (C)lipboard (S)cript
bics - Version $bics_version  clipboard.clip";
echo "";
echo "This is the help file for bics - (B)ash (I)nteractive (C)lipboard (S)cript";
echo ""
echo "Tip #1 Typing alias will set an alias into your .bashrc file. You can then start the clipboard by typing   bics ";
echo ""
read -p "Hit any key to continue" blah
}
#
#
####################
# End of Functions #
####################


###########################
# Program run starts here #
###########################
get_pp
headerfile
Main_Menu

Author:  crouse [ Fri Sep 03, 2010 7:12 pm ]
Post subject:  Re: bics- (B)ash (I)nteractive (C)lipboard (S)cript

nice :)

Page 1 of 1 All times are UTC - 6 hours
© 2000, 2002, 2005, 2007 phpBB Group • http://www.phpbb.com