diff options
Diffstat (limited to 'pkgthing/pget.sh')
-rw-r--r-- | pkgthing/pget.sh | 53 |
1 files changed, 45 insertions, 8 deletions
diff --git a/pkgthing/pget.sh b/pkgthing/pget.sh index c0c12fe..d68cad0 100644 --- a/pkgthing/pget.sh +++ b/pkgthing/pget.sh @@ -1,10 +1,47 @@ -#!/bin/sh -name='pget' -ver='1.9.1' +#!/bin/bash -src=/var/srcdir -cd $src; if [ $? -ne 0 ]; then exit 1; fi -out="`echo "$1" | sed 's@^.*://@@'`" -curl $@ -L -C - --create-dirs -o "$out" -ptranslate "$out" +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 |