The arguments are saved to variable when script started. Instead of using $1, $2 and $3, we can use these variables. Signed-off-by: yuchenlin <npes87184@gmail.com>
58 lines
1,005 B
Bash
Executable file
58 lines
1,005 B
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
url="$1"
|
|
sum="$2"
|
|
dir="$3"
|
|
|
|
checksum() {
|
|
local file="$1"
|
|
local sum="$2"
|
|
echo "$file: verifying checksum..."
|
|
echo "$sum $file" | sha256sum -c
|
|
}
|
|
|
|
get_file() {
|
|
local url="$1"
|
|
local file="$2"
|
|
local sum="$3"
|
|
if [[ -f "$file" ]]
|
|
then
|
|
echo "$file: found"
|
|
else
|
|
echo "$file: not found, downloading..."
|
|
wget "$url" -O "$file"
|
|
fi
|
|
checksum "$file" "$sum"
|
|
}
|
|
|
|
extract() {
|
|
local file="$1"
|
|
echo "Extracting $file..."
|
|
if [[ "$file" == *.zip ]]
|
|
then
|
|
unzip -q "$file"
|
|
elif [[ "$file" == *.tar.gz ]]
|
|
then
|
|
tar xf "$file"
|
|
else
|
|
echo "Unsupported file: $file"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
get_dep() {
|
|
local url="$1"
|
|
local sum="$2"
|
|
local dir="$3"
|
|
local file="${url##*/}"
|
|
if [[ -d "$dir" ]]
|
|
then
|
|
echo "$dir: found"
|
|
else
|
|
echo "$dir: not found"
|
|
get_file "$url" "$file" "$sum"
|
|
extract "$file"
|
|
fi
|
|
}
|
|
|
|
get_dep "$url" "$sum" "$dir"
|