File: update_dot_cardpeek_dir.sh

package info (click to toggle)
cardpeek 0.8.3-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 3,184 kB
  • ctags: 1,275
  • sloc: ansic: 10,467; sh: 4,241; makefile: 32; xml: 19
file content (93 lines) | stat: -rw-r--r-- 2,377 bytes parent folder | download
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#/bin/bash

VERSION=`date +%s`

SOURCE_DST=`pwd`

if [ "x$CARDPEEK_DST"="x" ]
then
	DOT_CARDPEEK_SRC=~/.cardpeek
else
	DOT_CARDPEEK_SRC=$CARDPEEK_DST
fi

DOT_CARDPEEK_DST="$SOURCE_DST/dot_cardpeek_dir"

MODIFIED='no'

case "$1"
in
    dryrun)
    TODO=dryrun
    ;;
    update)
    TODO=update
    ;;
    *)
    echo "Usage: $0 [dryrun|update]"
    echo "  'dryrun' just prints what the script would do, without actually doing it."     
    echo "  'update' actually does the work."
    exit
    ;;
esac


if [ -d "$DOT_CARDPEEK_SRC" ]; then
  
  cd $DOT_CARDPEEK_SRC

  echo "## Retrieving new files:"
  IFS=$'\t\n' 
  for i in `find * \! -path replay/\* \! -path scripts.old\*`;
  do
     if [ -d "$i" ]; then
        if [ ! -e "$DOT_CARDPEEK_DST/$i" ]; then
            echo "!! creating dir $DOT_CARDPEEK_DST/$i"
            if [ $TODO = "update" ]; then
                mkdir -p "$DOT_CARDPEEK_DST/$i"
                MODIFIED='yes'
            fi 
        fi
     elif test ! -e "$DOT_CARDPEEK_DST/$i" || (diff -q "$i" "$DOT_CARDPEEK_DST/$i" | grep differ) &> /dev/null; then
        if [ "$i" -nt "$DOT_CARDPEEK_DST/$i" ]; then
            echo ">> $DOT_CARDPEEK_SRC/$i will be copied to $DOT_CARDPEEK_DST/$i"
            if [ $TODO = "update" ]; then
                cp -pRv "$i" "$DOT_CARDPEEK_DST/$i"
                MODIFIED='yes' 
            fi
        elif [ "$i" -ot "$DOT_CARDPEEK_DST/$i" ]; then
            echo "<< $DOT_CARDPEEK_SRC/$i will be replaced by $DOT_CARDPEEK_DST/$i"
            if [ $TODO = "update" ]; then
                cp -pRv "$DOT_CARDPEEK_DST/$i" "$i"
                MODIFIED='yes' 
            fi
        fi
     fi
  done 

  if [ "$TODO" = "update" ]; then
     if [ "$MODIFIED" = 'yes' ]; then
        echo "## Removing unecessary files and updating directory modfication time:"
        rm -vf $DOT_CARDPEEK_DST/replay/* 
        touch $DOT_CARDPEEK_DST

        echo "## Set version info:"
        echo "   Version ID is now $VERSION"
        echo $VERSION > $DOT_CARDPEEK_DST/version
        echo $VERSION > $DOT_CARDPEEK_SRC/version
        cat > "$SOURCE_DST/script_version.h" << __EOF
#ifndef SCRIPT_VERSION_H
#define SCRIPT_VERSION_H

#define SCRIPT_VERSION $VERSION

#endif
__EOF
     else
        echo "## No updates performed."
     fi
  fi
  echo "## Done"
else
  echo "Error: ~/.cardpeek does not exist. Doing nothing"
fi