summaryrefslogtreecommitdiff
path: root/bak
blob: e98ed56afb85e988e368d55d52da87e8d8270670 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/env sh

# A short "back-up" script used to archive directories neatly, optionally encrypt

bakdir=$HOME/bak

e=""
if [ "$1" == "-e" ]; then
  e="true"
  shift
fi; 

for k in $*; do
  strip=${k%/}
  [ "$(echo $strip | cut -c 1)" != "/" ] && strip=$PWD/$strip
  folder=${strip##*/}
  path=$(echo ${strip%/*} | sed "s#$HOME/##")
  stamp="$(date +%y%m%d-%H%M%S)"
  name="$(echo $bakdir/$path/$folder-$stamp.tar.xz | sed 's#//#/#g')"
  echo Archiving and compressing $name ...
  mkdir -p $bakdir/$path
  cd $k; cd ..
  tar --xz --atime-preserve -p -cf $name $folder
  if [ -n "$e" ]; then
    echo Encrypting $name
    gpg --encrypt $name
  fi
done