Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- #Řešení IOS-DU1 - wrapper
- #Autor: Dominik Dvořák, FIT VUT, xdvora1t@fit.vutbr.cz
- #Datum: 2015-03-29
- #definice funkcí
- #fce m pro přepínač "-m" - otevře poslední editovaný soubor v adresáři
- m ()
- {
- file=`grep "$1" $WEDI_RC | cut -d'|' -f 3 | sort | uniq -c | sort | sed -n '$p' | xargs |cut -d ' ' -f 2`
- echo "$1|`date +%Y-%m-%d`|$file" >> $WEDI_RC
- $EDITOR "$1/$file"
- }
- #fce pro přepínač "-l" -vypsání celé historie editací v daném adresáři
- l ()
- {
- write=`grep "$1|" $WEDI_RC | cut -d'|' -f 3 | sort | uniq`
- echo "$write"
- }
- #fce b pro přepínač "-b" - vypsaní historie editací
- #zadaného adresáře před a včetně zadaného data
- a ()
- {
- awk -v date="$1" -F "|" '$2>=date' $WEDI_RC | grep "$2|" | cut -d'|' -f 3 | sort | uniq
- }
- #fce a pro přepínač "-a" - vypsaní historie editací
- #zadaného adresáře po a včetně zadaného data
- b ()
- {
- awk -v date="$1" -F "|" '$2<=date' $WEDI_RC | grep "$2|" | cut -d'|' -f 3 | sort | uniq
- }
- #pokud není nastavená proměnná EDITOR, zkusí se VISUAL, jinak chyba
- if [ -z $EDITOR ]; then
- if [ -z $VISUAL ]; then
- echo "Není zadán editor" >&2
- exit 1
- else
- export EDITOR=$VISUAL
- fi
- fi
- #pokud není nastavená WEDI_RC, tak chyba
- if [ -z $WEDI_RC ]; then
- echo "Není zadaná proměnná WEDI_RC" >&2
- exit 1
- fi
- #pokud je nastaven přepínač -m
- if [ "$1" = "-m" ]; then
- if [ $# = 1 ]; then
- dir="`readlink -f .`"
- m $dir
- exit 0
- else
- realdir=`readlink -f "$2"`
- if [ "$realdir" = "" ]; then
- echo "Adresář neexistuje." >&2
- exit 1
- fi
- m $realdir
- exit 0
- fi
- #pokud je nastaven přepínač -l
- elif [ "$1" = "-l" ]; then
- if [ $# = 1 ]; then
- dir="`readlink -f .`"
- l $dir
- exit 0
- else
- realdir=`readlink -f "$2"`
- if [ "$realdir" = "" ]; then
- echo "Adresář neexistuje." >&2
- exit 1
- fi
- l $realdir
- exit 0
- fi
- #pokud je nastaven přepínač -b
- elif [ "$1" = "-b" ]; then
- if [ $# = 2 ]; then
- dir="`readlink -f .`"
- b $2 $dir
- exit 0
- else
- realdir=`readlink -f "$3"`
- if [ "$realdir" = "" ]; then
- echo "Adresář neexistuje." >&2
- exit 1
- fi
- b $2 $realdir
- exit 0
- fi
- #pokud je nastaven přepínač -a
- elif [ "$1" = "-a" ]; then
- if [ $# = 2 ]; then
- dir="`readlink -f .`"
- a $2 $dir
- exit 0
- else
- realdir=`readlink -f "$3"`
- if [ "$realdir" = "" ]; then
- echo "Adresář neexistuje." >&2
- exit 1
- fi
- a $2 $realdir
- exit 0
- fi
- #pokud se počet argumentů nerovná 1 tedy pouze ./wedi
- elif [ $# -ne 1 ]; then
- dir="`readlink -f .`"
- a=`grep "$dir|" $WEDI_RC | tail -1 | cut -d '|' -f 3`
- #v aktuálním adresáří nebyl ještě editován žádný soubor - chyba
- if [ "$a" = "" ]; then
- echo "V aktuálním adresáři ještě nebyl editován žádný soubor" >&2
- exit 1
- fi
- echo "$dir|`date +%Y-%m-%d`|$a" >> $WEDI_RC
- $EDITOR "$dir/$a"
- exit 0
- #pokud se počet argumentů rovna 1 tedy pouze ./wedi adresář nebo ./wedi soubor
- elif [ $# = 1 ]; then
- if [ -d "$1" ]; then
- realdir=`readlink -f "$1"`
- a=`grep "$realdir|" $WEDI_RC | tail -1| cut -d '|' -f 3`
- #v aktuálním adresáří nebyl ještě editován žádný soubor - chyba
- if [ "$a" = "" ]; then
- echo "V adresáři ještě nebyl editován žádný soubor" >&2
- exit 1
- fi
- echo "$realdir|`date +%Y-%m-%d`|$a" >> $WEDI_RC
- $EDITOR "$realdir/$a"
- exit 0
- else
- realdir=`readlink -f "$1"`
- if [ "$realdir" = "" ]; then
- #neexistující cesta, bohužel na evě nefunguje mkdir -r - tedy raději vypsání chyby
- if [ "$1" = *"/"* ]; then
- echo "Zadaná cesta neexistuje." >&2
- exit 1
- #nový soubor
- else
- actdir=`readlink -f .`
- echo "$actdir|`date +%Y-%m-%d`|$1" >> $WEDI_RC
- $EDITOR "$1"
- exit 0
- fi
- #tohle už je klasická situace
- else
- echo "${realdir%/*}|`date +%Y-%m-%d`|${1##*/}" >> $WEDI_RC
- $EDITOR "$realdir"
- exit 0
- fi
- fi
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement