#! /bin/bash set -e A=' BEGIN{ symlink= "lr-xr-xr-x 1 1 1 1 01-01-1970 00:00 "; file = "-r--r--r-- 1 1 1 10000 01-01-1970 00:00 "; dir = "dr-xr-xr-x 1 1 1 1 01-01-1970 00:00 "; } function basename(file, a,x) { x = split(file,a,"/"); return a[x]; } function process(package, a,b,i,name) { name = package["name"]; print(dir "ALL/" name); print(file "ALL/" name "/META"); split(package["requires"],a); for(i in a) { print(symlink "ALL/" name "/requires/" a[i] " -> /ALL/" a[i]); } split("install source prev-install prev-source",a); for(i in a) { if(a[i] in package) { split(package[a[i]],b); print("-r--r--r-- 1 1 1 " b[2] \ " 01-01-1970 00:00 ALL/" name "/" basename(b[1])); } } split(package["category"],a); for(i in a) { print("lr-xr-xr-x 1 1 1 1 01-01-1970 00:00 " a[i] "/" name " -> /ALL/" name); } } ' C="$(cat $(dirname $0)/cygwin.awk)" case $1 in list) awk "$A $C" "$2" ;; copyout) case "$3" in */META) q="${3%/*}" package=${q##*/} sed -n "/^@ $package\$/,/^@/p" "$2" | head -n -1 > "$4" ;; *) q="${3%/*}" package=${q##*/} file="${3##*/}" sed -n "/^@ $package\$/,/^@/p" "$2" | head -n -1 | sed -n "/$file/p" | cut -d ' ' -f 2 | sed "s,^,$(dirname $2)/," | xargs -I XX cp XX "$4" ;; esac ;; *) exit 1 ;; esac