mirror of
https://github.com/kodxana/madiator-docker-runpod.git
synced 2024-11-25 20:30:11 +01:00
58 lines
No EOL
2 KiB
Bash
58 lines
No EOL
2 KiB
Bash
#!/bin/bash
|
|
|
|
app_name=$1
|
|
download_url=$2
|
|
workspace_dir="/workspace"
|
|
app_dir="${workspace_dir}/${app_name}"
|
|
tar_file="${workspace_dir}/${app_name}.tar.gz"
|
|
|
|
echo "Starting download of ${app_name} venv..."
|
|
|
|
aria2c -x 16 -s 16 \
|
|
--summary-interval=1 \
|
|
--download-result=full \
|
|
"${download_url}" -d "${workspace_dir}" -o "${app_name}.tar.gz" 2>&1 | \
|
|
sed -u 's/^\[#[0-9a-f]\+ \([0-9.]\+[KMGT]\?iB\)\/\([0-9.]\+[KMGT]\?iB\)(\([0-9]\+%\))/Download progress: \1 of \2 (\3)/' | \
|
|
sed -u 's/^Download Progress Summary/\nDownload Progress Summary/' | \
|
|
sed -u 's/^Download Results:/\nDownload Results:/' | \
|
|
sed -u 's/\x1b\[[0-9;]*m//g' # Remove ANSI color codes
|
|
|
|
if [ $? -eq 0 ] && [ -f "${tar_file}" ]; then
|
|
echo "Download completed successfully. Starting extraction..."
|
|
echo "Creating directory: ${app_dir}"
|
|
mkdir -p "${app_dir}"
|
|
echo "Extracting ${tar_file} to ${app_dir}..."
|
|
echo "This process may take several minutes. Please be patient."
|
|
|
|
# Check if pv is available
|
|
if command -v pv >/dev/null 2>&1; then
|
|
# Use pv to show progress
|
|
pv "${tar_file}" | tar -xzf - -C "${app_dir}" 2>&1 | \
|
|
while read -r line; do
|
|
echo "Extraction progress: $line"
|
|
done
|
|
else
|
|
# Fallback to a more basic method if pv is not available
|
|
tar -xzvf "${tar_file}" -C "${app_dir}" | \
|
|
while read -r line; do
|
|
echo "Extracting: $line"
|
|
done
|
|
fi
|
|
|
|
if [ ${PIPESTATUS[0]} -eq 0 ]; then
|
|
echo "Extraction completed successfully."
|
|
rm "${tar_file}"
|
|
echo "Temporary file removed."
|
|
echo "Installation of ${app_name} completed successfully."
|
|
echo "Please refresh the page to see the changes and start using ${app_name}."
|
|
else
|
|
echo "Error: Extraction failed."
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Error: Download failed or file not found."
|
|
echo "Download URL: ${download_url}"
|
|
echo "Target file: ${tar_file}"
|
|
ls -l "${workspace_dir}"
|
|
exit 1
|
|
fi |