0,0 → 1,193 |
#!/usr/bin/env bash |
# |
# tidyup.sh |
# |
# This script will sort create organized directory structure |
# from observation files in one directory. |
# |
# Takes one argument: path to the directory |
# |
# Returns 0 if sorting succeeds |
# Returns 1 if there are no files to sort |
# Returns >1 in case of error |
# |
# before: |
# |
# | |
# | 20131214214014084_SVAKOV-R2_met.jpg |
# | 20131214214124184_SVAKOV-R2_met.jpg |
# | 20131224214124184_SVAKOV-R2_met.jpg |
# | . |
# | . |
# | . |
# |
# after: |
# |
# | |
# |- SVAKOV-R2 <- observatory |
# | |- 2013 <- year |
# | |- 12 <- month |
# | |- 14 <- day |
# | |- 21 <- hour |
# | | |- 20131214214014084_SVAKOV-R2_met.jpg |
# | | |- 20131214214124184_SVAKOV-R2_met.jpg |
# | | |
# | |- 22 |
# | |- 20131224214124184_SVAKOV-R2_met.jpg |
# | |
# . |
# . |
# . |
# |
# |
# filename format must be as 20131214214014084_SVAKOV-R2_met.jpg |
|
DELIM="_" |
SLASH="/" |
LAST="" |
|
|
# turn on debug |
set -x |
|
# none or 1 argument allowed |
[[ "$#" -ne 1 ]] && echo "Wrong number of arguments ($#)" && exit 1 |
|
# directory in which to sort must exists |
[[ ! -d "$1" ]] && echo "Directory doesn't exist" && exit 1 |
|
# captured images |
cd "$1"/capture |
|
# if there are no files with $EXT extension in the directory then quit |
EXT="jpg" |
ls -f *."$EXT" > /dev/null 2>&1 |
if [ "$?" -eq 0 ]; then |
for i in *."$EXT"; do |
echo "processing " $i |
OBSERVATORY=`echo $i | cut -d $DELIM -f2` |
OBSERVATORY=`echo "$OBSERVATORY" | cut -d "." -f1` |
|
TIMESTAMP=`echo "$i" | cut -d $DELIM -f1` |
YEAR=`echo "$TIMESTAMP" | cut -c 1-4` |
MONTH=`echo "$TIMESTAMP" | cut -c 5-6` |
DAY=`echo "$TIMESTAMP" | cut -c 7-8` |
HOUR=`echo "$TIMESTAMP" | cut -c 9-10` |
|
# observatory / year / month / day / hour |
DAYDIR="$YEAR$SLASH$MONTH$SLASH$DAY$SLASH$HOUR" |
|
# create directory with observatory name, year, month and day if hasn't existed before |
[[ -d "$DAYDIR" ]] || mkdir -p "$DAYDIR" |
|
# check if directory really exists (if fs is full it might not be created) |
[[ -d "$DAYDIR" ]] && mv "$i" "$DAYDIR" |
|
echo -n "$YEAR$SLASH$MONTH$SLASH$DAY" > LAST |
echo -n "$YEAR$SLASH$MONTH$SLASH$DAY" > "$1"/LAST |
done |
else |
echo "No .""$EXT"" files to sort" |
fi |
|
#captured sounds |
cd "$1"/audio |
|
EXT="wav" |
ls -f *."$EXT" > /dev/null 2>&1 |
if [ "$?" -eq 0 ]; then |
for i in *."$EXT"; do |
echo "processing " $i |
OBSERVATORY=`echo $i | cut -d $DELIM -f2` |
OBSERVATORY=`echo "$OBSERVATORY" | cut -d "." -f1` |
|
TIMESTAMP=`echo "$i" | cut -d $DELIM -f1` |
YEAR=`echo "$TIMESTAMP" | cut -c 1-4` |
MONTH=`echo "$TIMESTAMP" | cut -c 5-6` |
DAY=`echo "$TIMESTAMP" | cut -c 7-8` |
HOUR=`echo "$TIMESTAMP" | cut -c 9-10` |
|
# observatory / year / month / day / hour |
DAYDIR="$YEAR$SLASH$MONTH$SLASH$DAY" |
|
# create directory with observatory name, year, month and day if hasn't existed before |
[[ -d "$DAYDIR" ]] || mkdir -p "$DAYDIR" |
|
# check if directory really exists (if fs is full it might not be created) |
[[ -d "$DAYDIR" ]] && mv "$i" "$DAYDIR" |
|
echo -n "$YEAR$SLASH$MONTH$SLASH$DAY" > LAST |
echo -n "$YEAR$SLASH$MONTH$SLASH$DAY" > "$1"/LAST |
done |
else |
echo "No .""$EXT"" files to sort" |
fi |
|
EXT="aux" |
ls -f *."$EXT" > /dev/null 2>&1 |
if [ "$?" -eq 0 ]; then |
for i in *."$EXT"; do |
echo "processing " $i |
OBSERVATORY=`echo $i | cut -d $DELIM -f2` |
OBSERVATORY=`echo "$OBSERVATORY" | cut -d "." -f1` |
|
TIMESTAMP=`echo "$i" | cut -d $DELIM -f1` |
YEAR=`echo "$TIMESTAMP" | cut -c 1-4` |
MONTH=`echo "$TIMESTAMP" | cut -c 5-6` |
DAY=`echo "$TIMESTAMP" | cut -c 7-8` |
HOUR=`echo "$TIMESTAMP" | cut -c 9-10` |
|
# observatory / year / month / day / hour |
DAYDIR="$YEAR$SLASH$MONTH$SLASH$DAY" |
|
# create directory with observatory name, year, month and day if hasn't existed before |
[[ -d "$DAYDIR" ]] || mkdir -p "$DAYDIR" |
|
# check if directory really exists (if fs is full it might not be created) |
[[ -d "$DAYDIR" ]] && mv "$i" "$DAYDIR" |
|
echo -n "$YEAR$SLASH$MONTH$SLASH$DAY" > LAST |
echo -n "$YEAR$SLASH$MONTH$SLASH$DAY" > "$1"/LAST |
done |
else |
echo "No .""$EXT"" files to sort" |
fi |
|
#metadata for Bolidozor |
cd "$1"/data |
|
EXT="dat" |
ls -f *."$EXT" > /dev/null 2>&1 |
if [ "$?" -eq 0 ]; then |
for i in $(find *."$EXT" -maxdepth 1 -mmin +59); do |
echo "processing " $i |
OBSERVATORY=`echo $i | cut -d $DELIM -f2` |
OBSERVATORY=`echo "$OBSERVATORY" | cut -d "." -f1` |
|
TIMESTAMP=`echo "$i" | cut -d $DELIM -f1` |
YEAR=`echo "$TIMESTAMP" | cut -c 1-4` |
MONTH=`echo "$TIMESTAMP" | cut -c 5-6` |
DAY=`echo "$TIMESTAMP" | cut -c 7-8` |
HOUR=`echo "$TIMESTAMP" | cut -c 9-10` |
|
# observatory / year / month / day / hour |
DAYDIR="$YEAR$SLASH$MONTH$SLASH$DAY" |
|
# create directory with observatory name, year, month and day if hasn't existed before |
[[ -d "$DAYDIR" ]] || mkdir -p "$DAYDIR" |
|
# check if directory really exists (if fs is full it might not be created) |
[[ -d "$DAYDIR" ]] && mv "$i" "$DAYDIR" |
|
echo -n "$YEAR$SLASH$MONTH$SLASH$DAY" > LAST |
echo -n "$YEAR$SLASH$MONTH$SLASH$DAY" > "$1"/LAST |
done |
else |
echo "No .""$EXT"" files to sort" |
fi |
|
|
exit 0 |
|
|
|