mirror of
https://github.com/tuna/tunasync-scripts.git
synced 2025-04-20 04:12:42 +00:00
debian-elts: Use apt-sync instead of debmirror
Signed-off-by: Harry Chen <i@harrychen.xyz>
This commit is contained in:
parent
19f6f97a0a
commit
3719b58509
@ -1,34 +1,52 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# requires: debmirror
|
|
||||||
set -e
|
set -e
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
_here=$(dirname $(realpath $0))
|
_here=$(dirname $(realpath $0))
|
||||||
function join { local IFS=","; echo "$*"; }
|
apt_sync="${_here}/apt-sync.py"
|
||||||
|
function join_by { local IFS="$1"; shift; echo "$*"; }
|
||||||
|
|
||||||
# standard tunasync env
|
UPSTREAM=${TUNASYNC_UPSTREAM_URL:-"https://deb.freexian.com/extended-lts"}
|
||||||
BASE_PATH="${TUNASYNC_WORKING_DIR}"
|
BASE_PATH="${TUNASYNC_WORKING_DIR}"
|
||||||
APT_URL=${TUNASYNC_UPSTREAM_URL:-"https://deb.freexian.com/extended-lts"}
|
export REPO_SIZE_FILE=/tmp/reposize.$RANDOM
|
||||||
|
|
||||||
# parse APT_URL to different parts
|
# see https://www.freexian.com/lts/extended/ for possible values
|
||||||
proto="$(printf "$APT_URL" | grep :// | sed -e's,^\(.*://\).*,\1,g')"
|
codenames=(jessie stretch)
|
||||||
url="$(printf ${APT_URL/$proto/})"
|
components=(main,contrib,non-free main,contrib,non-free)
|
||||||
host="$(printf $url | cut -d/ -f1)"
|
architectures=(i386,amd64,armhf,armel i386,amd64,armhf)
|
||||||
path="/$(printf $url | grep / | cut -d/ -f2-)"
|
|
||||||
|
|
||||||
# override by env if needed
|
"$apt_sync" --delete "${UPSTREAM}" "$(join_by , "${codenames[@]}")" "$(join_by : "${components[@]}")" "$(join_by : "${architectures[@]}")" "$BASE_PATH"
|
||||||
APT_HOST=${DEBMIRROR_HOST:-$host}
|
|
||||||
APT_PROTO=${DEBMIRROR_PROTO:-$proto}
|
|
||||||
APT_PATH=${DEBMIRROR_PATH:-$path}
|
|
||||||
APT_KEYRING_FILE=${DEBMIRROR_APT_KEYRING:-"https://deb.freexian.com/extended-lts/archive-key.gpg"}
|
|
||||||
|
|
||||||
# leave all possible values here
|
"${_here}/helpers/size-sum.sh" $REPO_SIZE_FILE --rm
|
||||||
# debmirror will only download the intersection of provided options and the repo provides
|
|
||||||
ARCHES=(amd64 i386 armhf armel arm64)
|
|
||||||
DIST=(jessie stretch)
|
|
||||||
|
|
||||||
# download keyring
|
|
||||||
keyring_file="/tmp/freexian.$RANDOM.kbx"
|
|
||||||
wget "$APT_KEYRING_FILE" -O "$keyring_file"
|
|
||||||
|
|
||||||
debmirror -a $(join "${ARCHES[@]}") -d $(join "${DIST[@]}") -h "$APT_HOST" -r "$APT_PATH" --method ${APT_PROTO} -v --keyring "$keyring_file" --diff mirror --rsync-extra none --i18n --getcontents "${BASE_PATH}"
|
# =================== old script using debmirror ===================
|
||||||
|
# requires: debmirror
|
||||||
|
# function join { local IFS=","; echo "$*"; }
|
||||||
|
|
||||||
|
# # standard tunasync env
|
||||||
|
# BASE_PATH="${TUNASYNC_WORKING_DIR}"
|
||||||
|
# APT_URL=${TUNASYNC_UPSTREAM_URL:-"https://deb.freexian.com/extended-lts"}
|
||||||
|
|
||||||
|
# # parse APT_URL to different parts
|
||||||
|
# proto="$(printf "$APT_URL" | grep :// | sed -e's,^\(.*://\).*,\1,g')"
|
||||||
|
# url="$(printf ${APT_URL/$proto/})"
|
||||||
|
# host="$(printf $url | cut -d/ -f1)"
|
||||||
|
# path="/$(printf $url | grep / | cut -d/ -f2-)"
|
||||||
|
|
||||||
|
# # override by env if needed
|
||||||
|
# APT_HOST=${DEBMIRROR_HOST:-$host}
|
||||||
|
# APT_PROTO=${DEBMIRROR_PROTO:-$proto}
|
||||||
|
# APT_PATH=${DEBMIRROR_PATH:-$path}
|
||||||
|
# APT_KEYRING_FILE=${DEBMIRROR_APT_KEYRING:-"https://deb.freexian.com/extended-lts/archive-key.gpg"}
|
||||||
|
|
||||||
|
# # leave all possible values here
|
||||||
|
# # debmirror will only download the intersection of provided options and the repo provides
|
||||||
|
# ARCHES=(amd64 i386 armhf armel arm64)
|
||||||
|
# DIST=(jessie stretch)
|
||||||
|
|
||||||
|
# # download keyring
|
||||||
|
# keyring_file="/tmp/freexian.$RANDOM.kbx"
|
||||||
|
# wget "$APT_KEYRING_FILE" -O "$keyring_file"
|
||||||
|
|
||||||
|
# debmirror -a $(join "${ARCHES[@]}") -d $(join "${DIST[@]}") -h "$APT_HOST" -r "$APT_PATH" --method ${APT_PROTO} -v --keyring "$keyring_file" --diff mirror --rsync-extra none --i18n --getcontents "${BASE_PATH}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user