aboutsummaryrefslogtreecommitdiffstats
path: root/util/update_addon_repo
blob: 02c860c8c7fbbdd39fe6df6e0dd16ecdb7e83e69 (plain) (blame)
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
#!/usr/bin/env bash

set -f

if [ $# -ne 1 ]; then
	echo usage: $0 repository
	echo "Repositories:"
	ls extend/addon
	exit 1
fi

if [ -d extend/addon/$1 ] ; then
        cd extend/addon/$1
else
        echo "$1 not found. Aborting..."
        exit 1
fi

if [ -d .git ] ; then
	git pull
fi

cd ../../..

filelist=(`ls extend/addon/$1`)

cd addon

for a in "${filelist[@]}" ; do
	base=`basename $a`
	if [ $base = '.git' ]; then
#		echo 'ignoring git'
		continue;
	fi
	if [ ! -d ../extend/addon/$1/$base ]; then
#		echo $a 'not a directory'
		continue;
	fi
	if [ -x $base ]; then
#		echo $base 'file exists'
		continue;
	fi

	echo linking $base 
	ln -s ../extend/addon/$1/$base $base
done

for x in `ls` ; do 
	if [ -L "$x" ] && ! [ -e "$x" ]; then 
		echo "removing dead symlink $x" ; 
		rm -- "$x"; 
	fi;
done