fall0ut
public text v1 · immutable# Macro to generate download-foo rule to download and unpack a package
# FIXME - This is horrid
dest=.
download_rule= \
download-$(strip $(1)) : ; \
@what=$(strip $(1)) && suffix=$(strip $(2)) \
&& url=$(strip $(3)) && sub=$(strip $(4)) \
&& [ -d $$$$what ] \
|| { [ -n "$$$$sub" ] || sub=. \
&& temp=`mktemp /var/tmp/dl.XXXXXX` \
&& wget --passive-ftp --timeout 30 -O $$$$temp \
$$$$url$$$$what.$$$$suffix \
&& case $$$$suffix in \
*.gz|tgz) prog="gzip -d -c" ;; \
*.bz2) prog="bzcat -c" ;; \
*) prog=cat ;; \
esac \
&& { $$$$prog $$$$temp | tar -C $(dest)/$$$$sub -xvf - ; } \
&& { ["$$$$sub" == .] || ln -nsf "$$$$sub" "$$$$what" ; } \
&& { [ "$$$$sub" != . ] || [ "$(dest)" == . ] \
|| ln -sf $(dest)/$$$$what . ; } \
&& if [ "$(keep-archives)" == "1" ] ; then \
mv -f $$$$temp /var/tmp/$$$$what.$$$$suffix; \
else rm $$$$temp ; \
fi \
}