summaryrefslogtreecommitdiff
path: root/pkgthing/pget.sh
blob: d68cad026130e13e7cb2356fac7915f31db64761 (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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash

useVar() {
	var=$1
	val=$2
	case "$var" in
		\$name) _name="$val";;
		\$union) echo 'union feature not yet implemented';;
	esac
}

setsrc() {
	mount_point=$1
	dev=$2
	case "$dev" in
		file://) ln -s "${dev#file://}" "$mount_point";;
		ftp://) ln -s "/$dev" "$mount_point";;
		*)
			echo "I don't know which protocol to use fo \`$dev'.";
			exit 1;;
	esac
}

# parse files
for lst in *.lst; do
	echo 'loading `'$lst\''...'
	_name='oops'
	while read line; do
		if [ -n "$line" ]; then
			case "$line" in
				\#*) :;; #comment, do nothing
				\$*) #setting a variable
					var=${line%%=*}
					val=${line#$var}
					useVar "$var" "$val"
					:;;
				*) #setting a source
					grp=`echo "$line" | cut -f 1`
					src=`echo "$line" | cut -f 2`
					mkdir -p "$_name/$grp"
					setsrc "$_name/$grp" "$src"
					:;;
			esac
			echo $var == $val
		fi
	done < "$lst"
done