#!/bin/bash

# Skrypt ssync tworzący archiwum tarball zawierające zmienione pliki,
# a następnie synchronizujący je z zewnętrznym serwerem za pomocą skryptu
# sftpsync.

sftpacct="andrzej@mojserwer.pl"
tarballname="WszystkiePliki.tgz"
localsource="$HOME/Desktop/skrypty"
remotedir="/skrypty"
timestamp=".timestamp"
count=0

# Najpierw trzeba sprawdzić, czy katalog lokalny istnieje i zawiera pliki.

if [ ! -d "$localsource" ] ; then
  echo "$0: Błąd: katalog $localsource nie istnieje." >&2
  exit 1
fi

cd "$localsource"

# Teraz zliczamy pliki i sprawdzamy, czy któreś z nich się zmieniły.

if [ ! -f $timestamp ] ; then
  for filename in *
  do 
    if [ -f "$filename" ] ; then
      count=$(( $count + 1 ))
    fi
  done
else
  count=$(find . -newer $timestamp -type f -print | wc -l)
fi

if [ $count -eq 0 ] ; then
  echo "$(basename $0): Brak plików w katalogu $localsource do synchronizacji."; exit 0
fi

echo "Przygotowanie archiwum tarball do zapisania na serwerze."

tar -czf $tarballname ./*

# Koniec! Uruchomienie skryptu sftpsync.

exec sftpsync $sftpacct $remotedir
