From 9bcafe1c27f62f224c095cd2479763280336090b Mon Sep 17 00:00:00 2001 From: Erik Teichmann Date: Wed, 18 Sep 2024 11:26:38 -0700 Subject: [PATCH] feat(functions): add `takezip` (#12670) --- lib/functions.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/functions.zsh b/lib/functions.zsh index 2e667332e..b68c35c13 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -57,6 +57,16 @@ function takeurl() { cd "$thedir" } +function takezip() { + local data thedir + data="$(mktemp)" + curl -L "$1" > "$data" + unzip "$data" -d "./" + thedir="$(unzip -l "$data" | awk 'NR==4 {print $4}' | sed 's/\/.*//')" + rm "$data" + cd "$thedir" +} + function takegit() { git clone "$1" cd "$(basename ${1%%.git})" @@ -65,6 +75,8 @@ function takegit() { function take() { if [[ $1 =~ ^(https?|ftp).*\.(tar\.(gz|bz2|xz)|tgz)$ ]]; then takeurl "$1" + elif [[ $1 =~ ^(https?|ftp).*\.(zip)$ ]]; then + takezip "$1" elif [[ $1 =~ ^([A-Za-z0-9]\+@|https?|git|ssh|ftps?|rsync).*\.git/?$ ]]; then takegit "$1" else