From: Chris Koeritz Date: Thu, 2 Feb 2017 17:59:40 +0000 (-0500) Subject: and then any new adds... X-Git-Tag: 2.140.90~245 X-Git-Url: https://feistymeow.org/gitweb/?a=commitdiff_plain;h=450337ae1ed04f16ee6e4889532a0b497b34674a;p=feisty_meow.git and then any new adds... --- diff --git a/scripts/customize/fred/fred_common.alias b/scripts/customize/fred/fred_common.alias new file mode 100644 index 00000000..77f4e48d --- /dev/null +++ b/scripts/customize/fred/fred_common.alias @@ -0,0 +1,11 @@ + +# some aliases that i don't expect very many people to ever want. they are +# based on some of the mount configurations available at home or abroad. + +# moo and unmoo mount the local folders i use most. +define_yeti_alias moo='check_mount /z/stuffing ; check_mount /z/walrus ; check_mount /z/chunky ; check_mount /z/fredgrid' +define_yeti_alias unmoo='sudo umount /z/stuffing ; sudo umount /z/walrus ; sudo umount /z/chunky ; sudo umount /z/fredgrid' + +# load in the gffs build scripts. +source "$FEISTY_MEOW_SCRIPTS/buildor/gffs_builders.sh" + diff --git a/scripts/customize/fred/fred_variables.sh b/scripts/customize/fred/fred_variables.sh new file mode 100644 index 00000000..47e90fd6 --- /dev/null +++ b/scripts/customize/fred/fred_variables.sh @@ -0,0 +1,67 @@ + +# these are my personal overrides. --fred. + +if [ -z "$USER_CUSTOMIZATIONS_LOADED" ]; then + # if we don't see the nethack variable defined, this probably hasn't run yet. + + # The cloud directory is our new repository that's always available. It serves as our + # personal cloud for data. + export CLOUD_BASE=$HOME/cloud + + # The gruntose web site is expected to reside below, if it exists at all. + export WEBBED_SITES=$HOME/web + if [ "$(hostname)" = "zooty.koeritz.com" ]; then + export WEBBED_SITES=/var/www + fi + + # add a bunch of folders to the list for checkin & checkout. these are + # definitely personal, and some of them are fairly dated (the yeti and + # hoople folders, for example). + REPOSITORY_LIST+="cloud ebooks web antique antique/inova_codebase bigdata" + + # point to our local certificate for ssh usage. + export SVN_SSH="ssh -i $HOME/.ssh/id_dsa_sourceforge" + + # Error and success noises for CLAM. + export CLAM_ERROR_SOUND='/z/walrus/media/sounds/effects/bwaaang.wav /z/walrus/media/sounds/cartoons/doh4.wav' + export CLAM_FINISH_SOUND='/z/walrus/media/sounds/cartoons/meepmeep.wav' + + # Setup for nethack adventure. + export NETHACKOPTIONS="name:Manjusri-W,dogname:Fred,catname:Zonker" + + # mail setup for home machines. +# export REPLYTO=fred@gruntose.com +# export from="Fred T. Hamster " + + # set our browser for seti and others that use the variable. +# export BROWSER=/usr/bin/firefox + + # editor and other mixed settings... + export EDITOR="$(which vim)" + if [ -z "$EDITOR" ]; then + EDITOR="$(which vi)" + if [ -z "$EDITOR" ]; then + EDITOR="$(which emacs)" + if [ -z "$EDITOR" ]; then + echo "Cannot find a friendly editor." + fi + fi + fi + export VISUAL="$EDITOR" + # the editors for revision control must wait while document is edited, + # so gvim and others launched to x window are not appropriate. + export GIT_EDITOR="$EDITOR" + export SVN_EDITOR="$EDITOR" + + # this hideous mess is necessitated by our not having found the source of the + # settings yet. we override a few colors that look bad on a dark background. + export LS_COLORS='no=00:fi=00:di=01;37:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;35:*.rpm=00;33:*.deb=00;33:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;35:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;35:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:' + + # options for the lame mp3 encoder. + export LAMEOPT="--alt-preset extreme" + + # customization sentinel can be set now. + export USER_CUSTOMIZATIONS_LOADED=true +fi + + diff --git a/scripts/customize/fred/java_profile.sh b/scripts/customize/fred/java_profile.sh new file mode 100644 index 00000000..30128a22 --- /dev/null +++ b/scripts/customize/fred/java_profile.sh @@ -0,0 +1,134 @@ +#!/bin/bash + +# Author: Chris Koeritz + +# this script tries to intuit where java is installed on this machine. + +############################ + +source $FEISTY_MEOW_SCRIPTS/core/functions.sh + +# this reports when we have totally failed to figure out where a folder +# is actually located on the machine. +function intuition_failure() +{ + missing="$1"; shift + if [ ! -z "$SHELL_DEBUG" ]; then + echo "Could not intuit '$missing' variable." + fi + # remove the variable because its value is busted. + unset $missing +} + +############################ + +# set some fairly liberal limits for ant. +#no. export ANT_OPTS="-Xms512m -Xmx768m -XX:MaxPermSize=768m" + +############################ + +# start guessing some settings... + +# this bin portion works for most javas... +export JAVA_BIN_PIECE=bin + +if [ ! -d "$JAVA_HOME" ]; then + # try a recent version. + export JAVA_HOME=/usr/lib/jvm/java-8-oracle +fi +if [ ! -d "$JAVA_HOME" ]; then + # or an older version. + export JAVA_HOME=/usr/lib/jvm/java-7-oracle +fi +if [ ! -d "$JAVA_HOME" ]; then + JAVA_HOME="$(ls -d c:/tools/*jdk* 2>/dev/null)" +fi +if [ ! -d "$JAVA_HOME" ]; then + JAVA_HOME="$(ls -d "c:/Program Files"/*jdk* 2>/dev/null)" +fi +if [ ! -d "$JAVA_HOME" ]; then + JAVA_HOME="$(ls -d "c:/Program Files (x86)"/*jdk* 2>/dev/null)" +fi +if [ ! -d "$JAVA_HOME" ]; then + if [ ! -z "$(grep -i 'd:' /proc/mounts 2>/dev/null)" ]; then + # try using a windows version. + JAVA_HOME="$(ls -d d:/tools/*jdk* 2>/dev/null)" + fi +fi +# this should go last, since it changes the bin dir. +if [ ! -d "$JAVA_HOME" ]; then + # if that didn't work, try the location for mac os x. + JAVA_HOME=/Library/Java/Home + JAVA_BIN_PIECE=Commands +fi +# last thing is to tell them we couldn't find it. +if [ ! -d "$JAVA_HOME" ]; then + unset JAVA_HOME + unset JAVA_BIN_PIECE + if [ -z "$(whichable java 2>/dev/null)" ]; then + intuition_failure JAVA_HOME + fi +fi + +############################ + +# intuit where we have our local eclipse. +if [ ! -d "$ECLIPSE_DIR" ]; then + export ECLIPSE_DIR=/usr/local/eclipse +fi +if [ ! -d "$ECLIPSE_DIR" ]; then + ECLIPSE_DIR=$HOME/eclipse +fi +if [ ! -d "$ECLIPSE_DIR" ]; then + ECLIPSE_DIR=$HOME/apps/eclipse +fi +if [ ! -d "$ECLIPSE_DIR" ]; then + ECLIPSE_DIR="c:/tools/eclipse" +fi +if [ ! -d "$ECLIPSE_DIR" ]; then + if [ ! -z "$(grep -i 'd:' /proc/mounts 2>/dev/null)" ]; then + ECLIPSE_DIR="d:/tools/eclipse" + fi +fi +if [ ! -d "$ECLIPSE_DIR" ]; then + if [ ! -z "$(grep -i 'e:' /proc/mounts 2>/dev/null)" ]; then + ECLIPSE_DIR="e:/tools/eclipse" + fi +fi +# final option is to whine. +if [ ! -d "$ECLIPSE_DIR" ]; then + unset ECLIPSE_DIR +else + if [ ! -z "$(uname -a | grep -i cygwin)" ]; then + # fix the path for cygwin's bizarre requirement of /cygdrive/X. + ECLIPSE_DIR=$(echo $ECLIPSE_DIR | sed -e 's/^\(.\):/\/cygdrive\/\1/') + fi +fi +if [ -z "$ECLIPSE_DIR" -a -z "$(whichable eclipse 2>/dev/null)" ]; then + intuition_failure ECLIPSE_DIR +fi + +############################ + +# use the variables we just set in our path, and try to make them override +# any other paths to different versions. + +if [ ! -z "$JAVA_HOME" ]; then + j="$JAVA_HOME" + if [ ! -z "$(uname -a | grep -i cygwin)" ]; then + j=$(echo $j | sed -e 's/^\(.\):/\/cygdrive\/\1/') + fi + export PATH=$j/$JAVA_BIN_PIECE:$PATH +fi +if [ ! -z "$ECLIPSE_DIR" ]; then + e="$ECLIPSE_DIR" + if [ ! -z "$(uname -a | grep -i cygwin)" ]; then + e=$(echo $e | sed -e 's/^\(.\):/\/cygdrive\/\1/') + fi + export PATH=$e:$PATH +fi + +############################ + +#echo "java_profile: JAVA_HOME='$JAVA_HOME' ECLIPSE_DIR='$ECLIPSE_DIR'" + diff --git a/scripts/customize/fred/refred.sh b/scripts/customize/fred/refred.sh new file mode 100644 index 00000000..73ea1600 --- /dev/null +++ b/scripts/customize/fred/refred.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# cleans up the ownership for all my files. +function refred() +{ + sudo chown -R fred:fred /home/fred /home/games /home/archives /usr/local/fred + sudo bash $FEISTY_MEOW_SCRIPTS/files/normal_perm.sh /var/log +} + +# this block should execute when the script is actually run, rather +# than when it's just being sourced. +if [[ $0 =~ .*refred\.sh.* ]]; then + THISDIR="$( \cd "$(\dirname "$0")" && /bin/pwd )" + export LIGHTWEIGHT_INIT=true + source "$THISDIR/../../scripts/core/launch_feisty_meow.sh" + refred +fi + diff --git a/scripts/customize/fred/scripts/create_disco_dirs.sh b/scripts/customize/fred/scripts/create_disco_dirs.sh new file mode 100644 index 00000000..ff273ba8 --- /dev/null +++ b/scripts/customize/fred/scripts/create_disco_dirs.sh @@ -0,0 +1,8 @@ +#!/bin/bash + + +mkdir $HOME/disco +pushd $HOME/disco &>/dev/null +mkdir -p burn converted grind rip +popd &>/dev/null + diff --git a/scripts/customize/fred/scripts/gamesaver.sh b/scripts/customize/fred/scripts/gamesaver.sh new file mode 100644 index 00000000..0cd6b725 --- /dev/null +++ b/scripts/customize/fred/scripts/gamesaver.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +# a helpful script that scrapes any active game saves from wine's storage +# area into a spooling saves folder for archiving. + +source $FEISTY_MEOW_SCRIPTS/core/functions.sh + +WINE_SOURCE_DIR="$HOME/wine_goods/My Games" +SPOOLING_OUTPUT_DIR="$HOME/spooling_saves" + +if [ ! -d "$WINE_SOURCE_DIR" ]; then + WINE_SOURCE_DIR="c:/users/fred/My Documents/My Games" +fi +if [ ! -d "$WINE_SOURCE_DIR" ]; then + echo "Failing to find the game save directories." + exit 1 +fi + +# copies the files for a particular game out to a spooling folder. +function copyem() +{ + game_name="$1"; shift + source_dir="$1"; shift + out_dir="$1"; shift + + if [ -d "$source_dir" ]; then + echo $game_name + cp -v -n "$source_dir"/* "$out_dir"/ + sep 28 + fi +} + +# make the output folders if they don't exist. +for i in skyrim fallout_new_vegas fallout_3/Saves oblivion fallout_4/Saves ; do + if [ ! -d "$SPOOLING_OUTPUT_DIR/$i" ]; then + mkdir -p "$SPOOLING_OUTPUT_DIR/$i" + fi +done + +# now run through and copy our save files from the potentially weird locations +# they reside in. + +sep 28 + +copyem "skyrim" "$WINE_SOURCE_DIR/Skyrim/Saves" "$SPOOLING_OUTPUT_DIR/skyrim" + +copyem "fallout new vegas" "$WINE_SOURCE_DIR/FalloutNV/Saves" "$SPOOLING_OUTPUT_DIR/fallout_new_vegas" + +copyem "fallout 3" "$WINE_SOURCE_DIR/Fallout3/Saves" "$SPOOLING_OUTPUT_DIR/fallout_3/Saves" + +copyem "oblivion" "$WINE_SOURCE_DIR/Oblivion/Saves" "$SPOOLING_OUTPUT_DIR/oblivion/" + +copyem "fallout 4" "$WINE_SOURCE_DIR/Fallout4/Saves" "$SPOOLING_OUTPUT_DIR/fallout_4/Saves" + + diff --git a/scripts/customize/fred/scripts/musical_wand.sh b/scripts/customize/fred/scripts/musical_wand.sh new file mode 100644 index 00000000..e25a4707 --- /dev/null +++ b/scripts/customize/fred/scripts/musical_wand.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +# musical_wand: distributes music from our primary source to all hosts that are listed +# as being redundant copies for the music. + +# this script is designed to be run on the music host with the super alpha main source of +# music plugged in as an external drive. that being said, it will still work as long as +# the music host has its local copy intact; the local copy of the primary is always what +# is synched onto the other archive hosts. in that sense, the musical host is itself a +# musix archive, but it is treated "special". + +source "$FEISTY_MEOW_SCRIPTS/core/functions.sh" + +#hmmm: add the goodness around these actions like the "nice" updater so we catch all errors. + +# this host is where all the music is supposed to come from. +MUSICAL_HOST=banshee + +#hmmm: this script is currently limited to run ON the music host. it could easily do the backwards thing instead, and copy FROM music host. + +# the list of hosts we know of that are holding onto duplicate copies of the musix archive. +#old list MUSIX_ARCHIVE_SITE_LIST=(surya banshee wildmutt euphrosyne) +MUSIX_ARCHIVE_SITE_LIST=(euphrosyne) +#hmmm: list was contracted a lot, since we don't want to step on the updates done by syncthing. euphrosyne is still our reference copy for what the archive states "should" be. + + +if [[ ! ( $(hostname) =~ .*${MUSICAL_HOST}.* ) ]]; then + echo "This script is only designed to run on $MUSICAL_HOST with the" + echo "primary fred music source (external) disc plugged in." + exit 1 +fi + +# synch our local copy on the music host with the primary music drive, source of all goodness. +function get_music_from_alpha_site() +{ + sep + echo "getting musix and basement from fred music prime device" + rsync -av /media/fred/fredmusicprime/musix/* /z/musix/ + rsync -av /media/fred/fredmusicprime/basement/* /z/basement/ + sep + echo +} + +# updates the music on a remote host to our current local copy on the music host. +function update_musix_pile() +{ + sep + local host="$1"; shift + echo "$host: synching musix and basement" + rsync -avz /z/musix/* ${host}:/z/musix/ + rsync -avz /z/basement/* ${host}:/z/basement/ + sep + echo +} + +############## + +# make sure the local machine, our first-stop musix host, is in good shape. +get_music_from_alpha_site + +# run through the steps of updating all our machines. +for i in ${MUSIX_ARCHIVE_SITE_LIST[@]}; do + update_musix_pile $i +done + + diff --git a/scripts/customize/fred/scripts/pick_credentials.sh b/scripts/customize/fred/scripts/pick_credentials.sh new file mode 100644 index 00000000..8b4b55e6 --- /dev/null +++ b/scripts/customize/fred/scripts/pick_credentials.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# chooses the right certificate to use for logging in via ssh. + +#hmmm: not the slightest bit general here currently. +# what about having a main key variable and a sourceforge key variable? +# better yet, an array of site patterns and keys for those sites. + +keyfile="$HOME/.ssh/id_dsa_fred" + +if [ ! -z "$(echo $* | grep -i sourceforge)" ]; then + keyfile="$HOME/.ssh/id_dsa_sourceforge" +fi + +if [ ! -f "$keyfile" ]; then + unset keyfile +fi diff --git a/scripts/customize/fred/scripts/raw_synch_from_surya.sh b/scripts/customize/fred/scripts/raw_synch_from_surya.sh new file mode 100644 index 00000000..858e14ab --- /dev/null +++ b/scripts/customize/fred/scripts/raw_synch_from_surya.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +echo "Updating walrus and musix from surya: raw mode without syncthing!" +rsync -avz surya:/z/walrus/* /z/walrus/ +rsync -avz surya:/z/musix/* /z/musix/ + diff --git a/scripts/customize/fred/scripts/sftp.sh b/scripts/customize/fred/scripts/sftp.sh new file mode 100644 index 00000000..c668500c --- /dev/null +++ b/scripts/customize/fred/scripts/sftp.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +source "$FEISTY_MEOW_LOADING_DOCK/custom/scripts/pick_credentials.sh" + +# a wrapper for the file transfers using secure shell. +\sftp -i "$keyfile" $* + diff --git a/scripts/customize/fred/scripts/ssh.sh b/scripts/customize/fred/scripts/ssh.sh new file mode 100644 index 00000000..3c77a5ac --- /dev/null +++ b/scripts/customize/fred/scripts/ssh.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# wraps calling the secure shell to let us pick our appropriate credentials. + +source "$FEISTY_MEOW_SCRIPTS/tty/terminal_titler.sh" + +#hmmm: is this still used??? +# it seems redundant with the ssh config file that says which creds to use. +source "$FEISTY_MEOW_LOADING_DOCK/custom/scripts/pick_credentials.sh" + +# remember the old title. +save_terminal_title + +# force the TERM variable to a more generic version for other side. +# we don't want the remote side still thinking it's running xterm. +export TERM=linux + +#hmmm: it would be good to set an interrupt handler here and +# trap ctrl-c, since otherwise we are getting exited from and losing a chance +# to reset the terminal title. this actually happens a lot, since some X11 +# or other background process is left running and the ssh never actually quits, +# forcing one to hit ctrl-c. + +if [ ! -z "$keyfile" ]; then + \ssh -i "$keyfile" -X -C $* +else + \ssh -X -C $* +fi + +restore_terminal_title + diff --git a/scripts/customize/fred/scripts/update_barkuptree.sh b/scripts/customize/fred/scripts/update_barkuptree.sh new file mode 100644 index 00000000..0c8eb674 --- /dev/null +++ b/scripts/customize/fred/scripts/update_barkuptree.sh @@ -0,0 +1,7 @@ + + +#hmmm: plug in good checking stuff from the updater for soapbox. + +rsync -av /z/pooling/archive_backups/* /media/fred/barkuptreedrive/archive_backups/ +rsync -av /z/walrus/* /media/fred/barkuptreedrive/walrus/ +rsync -av /z/musix/* /media/fred/barkuptreedrive/musix/ diff --git a/scripts/customize/fred/scripts/update_soapbox.sh b/scripts/customize/fred/scripts/update_soapbox.sh new file mode 100644 index 00000000..df5921c0 --- /dev/null +++ b/scripts/customize/fred/scripts/update_soapbox.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +# updates my little 1 TB "soapbox" style usb drive with items that it should contain. + +source "$FEISTY_MEOW_SCRIPTS/core/functions.sh" + +function get_source() +{ + folder="$1"; shift + echo getting latest codes in $folder... + pushd "$folder" + if [ $? -ne 0 ]; then + echo Changing to the folder $folder failed. + exit 1 + fi + bash "$FEISTY_MEOW_SCRIPTS/rev_control/rev_checkin.sh" + if [ $? -ne 0 ]; then + echo Checking out the latest codes has failed somehow for $folder. + exit 1 + fi + popd +} + +sep + +ls /media/fred/soapboxdrive +if [ $? -ne 0 ]; then + echo The soapbox drive is not mounted currently, so cannot be updated. + exit 1 +fi + +sep + +echo synching walrus... +rsync -av /z/walrus/* /media/fred/soapboxdrive/walrus/ +if [ $? -ne 0 ]; then + echo The walrus sync failed. + exit 1 +fi + +sep + +echo synching musix... +rsync -av /z/musix/* /media/fred/soapboxdrive/musix/ +if [ $? -ne 0 ]; then + echo The musix sync failed. + exit 1 +fi + +sep + +echo getting latest fred codes... +pushd /media/fred/soapboxdrive +get_source extra_brain + +sep + +echo getting latest gffs codes... +get_source gffs +popd + +sep + +echo Updated all portions of the soapbox drive successfully. + diff --git a/scripts/customize/how_to_customize.txt b/scripts/customize/how_to_customize.txt new file mode 100644 index 00000000..be796df1 --- /dev/null +++ b/scripts/customize/how_to_customize.txt @@ -0,0 +1,16 @@ + +this folder has some examples of how various people (or one person right now) +do their custom scripts. + +the folder can have alias files (ending in .alias) that are written in bash, +and it can also have shell scripts that are sourced into the main-line of +script initialization (any files ending in .sh). + +when you have some custom scripts you want to use, copy them from your own +folder to the $FEISTY_MEOW_LOADING_DOCK/custom directory. + + +(needs to talk about the scripts directory which is handled specially. +are there any keyword matched filenames with special functions?) + + diff --git a/scripts/customize/mik/mik.alias b/scripts/customize/mik/mik.alias new file mode 100644 index 00000000..e21f7d5c --- /dev/null +++ b/scripts/customize/mik/mik.alias @@ -0,0 +1,13 @@ + + +define_yeti_alias lsd='ls -l' +define_yeti_alias h='history' +define_yeti_alias dw='du | grep Waves' +define_yeti_alias rm='rm' +define_yeti_alias d1='du --max-depth=1' +define_yeti_alias df='/bin/df' + +define_yeti_alias rebob='chowngrp -R bob /home/bob ; chowngrp -R bob /home/games ; chowngrp -R bob /home/archives ; chowngrp -R bob /Data ; chowngrp -R bob /fatty ; chowngrp -R bob /srv/ftp ' + +define_yeti_alias ipod=gtkpod +