forked from artix/artools
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
a13f0079db | |||
cae48c0878 | |||
ce481f6b07 | |||
b6a4619ab3 | |||
88ebc5c476 | |||
c27c516610 | |||
42ee8522dd | |||
b7f05f4dd2 |
7
Makefile
7
Makefile
@@ -3,9 +3,7 @@ VERSION=0.9
|
||||
CHROOT_VERSION=0.8
|
||||
|
||||
TOOLS = artools
|
||||
ifdef PREFIX
|
||||
PREFIX = /usr/local
|
||||
endif
|
||||
PREFIX ?= /usr/local
|
||||
SYSCONFDIR = /etc
|
||||
BINDIR = $(PREFIX)/bin
|
||||
LIBDIR = $(PREFIX)/lib
|
||||
@@ -54,8 +52,7 @@ BIN_PKG = \
|
||||
bin/buildpkg \
|
||||
bin/buildtree \
|
||||
bin/deploypkg \
|
||||
bin/commitpkg \
|
||||
bin/mkpkgclean
|
||||
bin/commitpkg
|
||||
|
||||
LIBS_PKG = \
|
||||
$(wildcard lib/util-pkg*.sh)
|
||||
|
@@ -34,7 +34,6 @@ artools
|
||||
* libisoburn
|
||||
* squashfs-tools
|
||||
* mkinitcpio
|
||||
* mktorrent
|
||||
* grub
|
||||
|
||||
#### Configuration
|
||||
|
@@ -20,6 +20,36 @@ SYSCONFDIR='@sysconfdir@'
|
||||
import ${LIBDIR}/util.sh
|
||||
import ${LIBDIR}/util-mount.sh
|
||||
|
||||
select_os(){
|
||||
local os_list=( $(detect) ) count=${#os_list[@]}
|
||||
if [[ ${count} > 1 ]];then
|
||||
msg "Detected systems:"
|
||||
local i=0
|
||||
for os in ${os_list[@]};do
|
||||
local last=${os##*:}
|
||||
case $last in
|
||||
'efi') count=$((count-1)) ;;
|
||||
*) info "$i) $(get_os_name $os)"; i=$((i+1)) ;;
|
||||
esac
|
||||
done
|
||||
i=0
|
||||
msg "Select system to mount [0-%s] : " "$((count-1))"
|
||||
read select
|
||||
else
|
||||
select=0
|
||||
fi
|
||||
local os_str=${os_list[$select]} type
|
||||
type=$os_str
|
||||
root=${os_str%%:*}
|
||||
type=${type##*:}
|
||||
if [[ "${type##*:}" == 'linux' ]];then
|
||||
msg "Mounting (%s) [%s]" "$(get_os_name $os_str)" "$root"
|
||||
mount_os "$1" "$root"
|
||||
else
|
||||
die "You can't mount %s!" "$select"
|
||||
fi
|
||||
}
|
||||
|
||||
display_settings(){
|
||||
show_version
|
||||
show_config
|
||||
|
@@ -35,7 +35,7 @@ prepare_build(){
|
||||
|
||||
iso_file=$(gen_iso_fn).iso
|
||||
|
||||
mkchroot_args+=(-C ${pacman_conf})
|
||||
mkchroot_args+=(-C ${pacman_conf} -m)
|
||||
work_dir=${chroots_iso}/${profile}/${target_arch}
|
||||
|
||||
iso_dir="${iso_pool}/${profile}"
|
||||
|
@@ -22,7 +22,6 @@ import ${LIBDIR}/util-mount.sh
|
||||
|
||||
working_dir=''
|
||||
files=()
|
||||
keep_mirrors=false
|
||||
nosetarch=false
|
||||
|
||||
usage() {
|
||||
|
@@ -16,7 +16,23 @@ SYSCONFDIR='@sysconfdir@'
|
||||
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
import ${LIBDIR}/util.sh
|
||||
import ${LIBDIR}/util-iso-publish.sh
|
||||
|
||||
connect(){
|
||||
local home="/home/frs/project/${project}"
|
||||
echo "${account},${project}@frs.${file_host}:${home}"
|
||||
}
|
||||
|
||||
prepare_transfer(){
|
||||
target_dir="/iso/${profile}/"
|
||||
src_dir="${iso_pool}/${profile}/"
|
||||
}
|
||||
|
||||
sync_dir(){
|
||||
msg "Start upload [%s] ..." "${profile}"
|
||||
rsync "${rsync_args[@]}" ${src_dir} $(connect)${target_dir}
|
||||
msg "Done upload [%s]" "${profile}"
|
||||
show_elapsed_time "${FUNCNAME}" "${timer_start}"
|
||||
}
|
||||
|
||||
display_settings(){
|
||||
show_version
|
||||
@@ -29,14 +45,6 @@ display_settings(){
|
||||
msg "ARGS:"
|
||||
msg2 "update: %s" "${update}"
|
||||
msg2 "verbose: %s" "${verbose}"
|
||||
msg2 "torrent: %s" "${torrent}"
|
||||
|
||||
if ${torrent};then
|
||||
msg2 "tracker_url: %s" "${tracker_url}"
|
||||
msg2 "piece_size: %s" "${piece_size}"
|
||||
msg2 "host_mirrors: %s" "${host_mirrors[*]}"
|
||||
msg2 "torrent_meta: %s" "${torrent_meta}"
|
||||
fi
|
||||
|
||||
msg "REMOTE:"
|
||||
msg2 "account: %s" "${account}"
|
||||
@@ -55,7 +63,6 @@ load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artoo
|
||||
pretend=false
|
||||
update=false
|
||||
verbose=false
|
||||
torrent=false
|
||||
|
||||
rsync_args=(-aP --progress -e ssh)
|
||||
|
||||
@@ -64,7 +71,6 @@ usage() {
|
||||
echo " -p Source folder to upload [default: ${profile}]"
|
||||
echo " -l Limit bandwidth in kB/s [default:${uplimit}]"
|
||||
echo ' -u Update remote directory'
|
||||
echo ' -t Create iso torrent'
|
||||
echo ' -q Query settings and pretend upload'
|
||||
echo ' -v Verbose output'
|
||||
echo ' -h This help'
|
||||
@@ -73,14 +79,13 @@ usage() {
|
||||
exit $1
|
||||
}
|
||||
|
||||
opts='p:l:uvtqh'
|
||||
opts='p:l:uvqh'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
p) profile="$OPTARG" ;;
|
||||
l) uplimit="$OPTARG" ;;
|
||||
u) update=true; rsync_args+=(-u) ;;
|
||||
t) torrent=true ;;
|
||||
v) verbose=true; rsync_args+=(-v --stats) ;;
|
||||
q) pretend=true; rsync_args+=(-n) ;;
|
||||
h|?) usage 0 ;;
|
||||
|
@@ -23,15 +23,17 @@ working_dir=''
|
||||
files=()
|
||||
|
||||
nosetarch=false
|
||||
copy_mirrorlist=true
|
||||
basestrap_args=(-Gc)
|
||||
|
||||
usage() {
|
||||
echo "Usage: ${0##*/} [options] working-dir package-list..."
|
||||
echo ' options:'
|
||||
echo ' -C <file> Location of a pacman config file'
|
||||
echo ' -M <file> Location of a makepkg config file'
|
||||
echo ' -U <url> Set a specific mirror'
|
||||
echo ' -c <dir> Set pacman cache'
|
||||
echo ' -f <file> Copy file from the host to the chroot'
|
||||
echo ' -m Do not copy mirrorlist to the chroot'
|
||||
echo ' -s Do not run setarch'
|
||||
echo ' -h This message'
|
||||
exit 1
|
||||
@@ -39,16 +41,16 @@ usage() {
|
||||
|
||||
orig_argv=("$0" "$@")
|
||||
|
||||
opts='hC:M:U:c:f:s'
|
||||
opts='hC:M:c:f:sm'
|
||||
|
||||
while getopts ${opts} arg; do
|
||||
case "${arg}" in
|
||||
C) pacman_conf="$OPTARG" ;;
|
||||
M) makepkg_conf="$OPTARG" ;;
|
||||
U) mirror="$OPTARG" ;;
|
||||
c) cache_dir="$OPTARG" ;;
|
||||
f) files+=("$OPTARG") ;;
|
||||
s) nosetarch=true ;;
|
||||
m) copy_mirrorlist=false; basestrap_args+=(-M) ;;
|
||||
h|?) usage ;;
|
||||
*) error "invalid argument '%s'" "$arg"; usage ;;
|
||||
esac
|
||||
@@ -98,7 +100,7 @@ while read -r varname; do
|
||||
_env+=("$varname=${!varname}")
|
||||
done < <(declare -x | sed -r 's/^declare -x ([^=]*)=.*/\1/' | grep -i '_proxy$')
|
||||
env -i "${_env[@]}" \
|
||||
basestrap -Gc ${pacman_conf:+-C "$pacman_conf"} "$working_dir" ${cache_dirs[@]/#/--cachedir=} "$@" || die 'Failed to install all packages'
|
||||
basestrap "${basestrap_args[@]}" ${pacman_conf:+-C "$pacman_conf"} "$working_dir" ${cache_dirs[@]/#/--cachedir=} "$@" || die 'Failed to install all packages'
|
||||
|
||||
echo "$chroot_version" > "$working_dir/.artools"
|
||||
|
||||
|
@@ -210,10 +210,6 @@ _chrootbuild() {
|
||||
|
||||
#export LANG=en_US.UTF-8
|
||||
|
||||
# workaround meson locale errors
|
||||
# supposedly fixed with coming python-3.7
|
||||
#locale-gen &> /dev/null
|
||||
|
||||
sudo --preserve-env=SOURCE_DATE_EPOCH -iu builduser bash -c 'cd /startdir; makepkg "$@"' -bash "$@"
|
||||
|
||||
ret=$?
|
||||
|
@@ -1,93 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
version=@version@
|
||||
|
||||
LIBDIR='@libdir@'
|
||||
SYSCONFDIR='@sysconfdir@'
|
||||
|
||||
[[ -r ${LIBDIR}/util-msg.sh ]] && source ${LIBDIR}/util-msg.sh
|
||||
import ${LIBDIR}/util.sh
|
||||
|
||||
prepare_clean(){
|
||||
if [[ -n ${repository} ]];then
|
||||
storage_dir=${repos_root}/${repository}/os/${target_arch}
|
||||
paccache_args+=(-c "${storage_dir}" -k 1)
|
||||
else
|
||||
if [[ -n ${PKGDEST} ]];then
|
||||
storage_dir=${PKGDEST}
|
||||
paccache_args+=(-c "${storage_dir}" -k 4)
|
||||
else
|
||||
die "PKGDEST not set in makepkg.conf!"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
display_settings(){
|
||||
show_version
|
||||
show_config
|
||||
|
||||
msg "OPTIONS:"
|
||||
msg2 "repository: %s" "${repository}"
|
||||
|
||||
msg "PATH:"
|
||||
msg2 "storage_dir: %s" "${storage_dir}"
|
||||
|
||||
msg "ARGS:"
|
||||
msg2 "paccache_args: %s" "${paccache_args[*]}"
|
||||
|
||||
paccache "${paccache_args[@]}"
|
||||
}
|
||||
|
||||
load_user_info
|
||||
|
||||
load_config "${AT_USERCONFDIR}/artools.conf" || load_config "${SYSCONFDIR}/artools.conf"
|
||||
load_vars "${PAC_USERCONFDIR}/makepkg.conf" || load_vars "$USER_HOME/.makepkg.conf"
|
||||
load_vars /etc/makepkg.conf
|
||||
|
||||
clean=false
|
||||
pretend=false
|
||||
repository=''
|
||||
storage_dir=''
|
||||
paccache_args=(-v)
|
||||
|
||||
usage() {
|
||||
echo "Usage: ${0##*/} [options]"
|
||||
echo " -d <dir> Directory [default:${repository}]"
|
||||
echo ' -c Clean up'
|
||||
echo ' -q Query settings and pretend cleaning'
|
||||
echo ' -h This help'
|
||||
echo ''
|
||||
echo ''
|
||||
exit $1
|
||||
}
|
||||
|
||||
orig_argv=("$0" "$@")
|
||||
|
||||
opts='d:cqh'
|
||||
|
||||
while getopts "${opts}" arg; do
|
||||
case "${arg}" in
|
||||
d) repository="$OPTARG" ;;
|
||||
c) clean=true ; paccache_args+=(-r) ;;
|
||||
q) pretend=true; paccache_args+=(-d) ;;
|
||||
h|?) usage 0 ;;
|
||||
*) echo "invalid argument '${arg}'"; usage 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift $(($OPTIND - 1))
|
||||
|
||||
prepare_clean
|
||||
|
||||
${pretend} && display_settings && exit 1
|
||||
|
||||
${clean} && paccache "${paccache_args[@]}"
|
@@ -12,7 +12,7 @@
|
||||
################ artools-pkg ################
|
||||
#############################################
|
||||
|
||||
# git user access token
|
||||
# gitea user access token
|
||||
# git_token=''
|
||||
|
||||
# host_tree_artix='gitea@gitea.artixlinux.org:artix'
|
||||
@@ -32,21 +32,15 @@
|
||||
# the dist release; default: auto
|
||||
# iso_version=$(date +%Y%m%d)
|
||||
|
||||
# possible values: openrc, (s6, runit) not yet supported
|
||||
# possible values: openrc, runit (s6 not yet supported)
|
||||
# initsys="openrc"
|
||||
|
||||
# unset defaults to given value
|
||||
# kernel="linux"
|
||||
|
||||
# gpg key; leave empty or commented to skip sfs signing
|
||||
# gpgkey=""
|
||||
|
||||
# set upload bandwidth limit in kB/s
|
||||
# uplimit=100
|
||||
|
||||
# the torrent tracker urls, comma separated
|
||||
# tracker_url='udp://mirror.strits.dk:6969'
|
||||
|
||||
# file_host="sourceforge.net"
|
||||
|
||||
# the server user
|
||||
@@ -54,9 +48,3 @@
|
||||
|
||||
# the server project
|
||||
# project="artix-linux"
|
||||
|
||||
# host mirrors
|
||||
# host_mirrors=('netcologne' 'freefr' 'netix' 'kent' '10gbps-io')
|
||||
|
||||
# Piece size, 2^n
|
||||
# piece_size=21
|
||||
|
@@ -94,21 +94,19 @@ load_pkgs(){
|
||||
local pkglist="$1" init="$2"
|
||||
info "Loading Packages: [%s] ..." "${pkglist##*/}"
|
||||
|
||||
local _init="s|>$init||g"
|
||||
local _init="s|@$init||g"
|
||||
case "$init" in
|
||||
'openrc') _init_rm1="s|>runit.*||g"; _init_rm2="s|>s6*||g" ;;
|
||||
's6') _init_rm1="s|>runit.*||g"; _init_rm2="s|>openrc.*||g" ;;
|
||||
'runit') _init_rm1="s|>s6.*||g"; _init_rm2="s|>openrc.*||g" ;;
|
||||
'openrc') _init_rm1="s|@runit.*||g"; _init_rm2="s|@s6*||g" ;;
|
||||
's6') _init_rm1="s|@runit.*||g"; _init_rm2="s|@openrc.*||g" ;;
|
||||
'runit') _init_rm1="s|@s6.*||g"; _init_rm2="s|@openrc.*||g" ;;
|
||||
esac
|
||||
|
||||
local _blacklist="s|>blacklist.*||g" \
|
||||
_space="s| ||g" \
|
||||
local _space="s| ||g" \
|
||||
_clean=':a;N;$!ba;s/\n/ /g' \
|
||||
_com_rm="s|#.*||g"
|
||||
|
||||
packages=($(sed "$_com_rm" "$pkglist" \
|
||||
| sed "$_space" \
|
||||
| sed "$_blacklist" \
|
||||
| sed "$_purge" \
|
||||
| sed "$_init" \
|
||||
| sed "$_init_rm1" \
|
||||
|
@@ -1,51 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
connect(){
|
||||
local home="/home/frs/project/${project}"
|
||||
echo "${account},${project}@frs.${file_host}:${home}"
|
||||
}
|
||||
|
||||
gen_webseed(){
|
||||
local webseed seed="$1"
|
||||
for mirror in ${host_mirrors[@]};do
|
||||
webseed=${webseed:-}${webseed:+,}"https://${mirror}.dl.${seed}"
|
||||
done
|
||||
echo ${webseed}
|
||||
}
|
||||
|
||||
make_torrent(){
|
||||
find ${src_dir} -type f -name "*.torrent" -delete
|
||||
|
||||
if [[ -n $(find ${src_dir} -type f -name "*.iso") ]]; then
|
||||
for iso in $(ls ${src_dir}/*.iso);do
|
||||
local seed=${file_host}/project/${project}${target_dir}${iso##*/}
|
||||
local mktorrent_args=(-c "${torrent_meta}" -p -l ${piece_size} -a ${tracker_url} -w $(gen_webseed ${seed}))
|
||||
${verbose} && mktorrent_args+=(-v)
|
||||
info "mktorrent_args: %s" "${mktorrent_args[@]}"
|
||||
msg2 "Creating (%s) ..." "${iso##*/}.torrent"
|
||||
mktorrent ${mktorrent_args[*]} -o ${iso}.torrent ${iso}
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
prepare_transfer(){
|
||||
target_dir="/iso/${profile}/"
|
||||
src_dir="${iso_pool}/${profile}/"
|
||||
${torrent} && make_torrent
|
||||
}
|
||||
|
||||
sync_dir(){
|
||||
msg "Start upload [%s] ..." "${profile}"
|
||||
rsync "${rsync_args[@]}" ${src_dir} $(connect)${target_dir}
|
||||
msg "Done upload [%s]" "${profile}"
|
||||
show_elapsed_time "${FUNCNAME}" "${timer_start}"
|
||||
}
|
@@ -407,7 +407,10 @@ make_iso() {
|
||||
gen_iso_fn(){
|
||||
local vars=("artix") name
|
||||
vars+=("${profile}")
|
||||
[[ ${initsys} == 'runit' ]] && vars+=("${initsys}")
|
||||
vars+=("${initsys}")
|
||||
case "${stablility}" in
|
||||
'gremlins'|'goblins') vars+=("${stablility}") ;;
|
||||
esac
|
||||
vars+=("${iso_version}")
|
||||
vars+=("${target_arch}")
|
||||
for n in ${vars[@]};do
|
||||
|
@@ -33,47 +33,11 @@ get_os_name(){
|
||||
echo "$str"
|
||||
}
|
||||
|
||||
get_chroot_arch(){
|
||||
local elf=$(file $1/usr/bin/file)
|
||||
elf=${elf//*executable,}
|
||||
echo ${elf%%,*}
|
||||
}
|
||||
|
||||
chroot_part_mount() {
|
||||
info "mount: [%s]" "$2"
|
||||
mount "$@" && CHROOT_ACTIVE_PART_MOUNTS=("$2" "${CHROOT_ACTIVE_PART_MOUNTS[@]}")
|
||||
}
|
||||
|
||||
select_os(){
|
||||
local os_list=( $(detect) ) count=${#os_list[@]}
|
||||
if [[ ${count} > 1 ]];then
|
||||
msg "Detected systems:"
|
||||
local i=0
|
||||
for os in ${os_list[@]};do
|
||||
local last=${os##*:}
|
||||
case $last in
|
||||
'efi') count=$((count-1)) ;;
|
||||
*) info "$i) $(get_os_name $os)"; i=$((i+1)) ;;
|
||||
esac
|
||||
done
|
||||
i=0
|
||||
msg "Select system to mount [0-%s] : " "$((count-1))"
|
||||
read select
|
||||
else
|
||||
select=0
|
||||
fi
|
||||
local os_str=${os_list[$select]} type
|
||||
type=$os_str
|
||||
root=${os_str%%:*}
|
||||
type=${type##*:}
|
||||
if [[ "${type##*:}" == 'linux' ]];then
|
||||
msg "Mounting (%s) [%s]" "$(get_os_name $os_str)" "$root"
|
||||
mount_os "$1" "$root"
|
||||
else
|
||||
die "You can't mount %s!" "$select"
|
||||
fi
|
||||
}
|
||||
|
||||
trap_setup(){
|
||||
[[ $(trap -p EXIT) ]] && die 'Error! Attempting to overwrite existing EXIT trap'
|
||||
trap "$1" EXIT
|
||||
@@ -151,16 +115,6 @@ mount_os(){
|
||||
esac
|
||||
done
|
||||
|
||||
local chroot_arch=$(get_chroot_arch $1)
|
||||
[[ ${chroot_arch} == x86-64 ]] && chroot_arch=${chroot_arch/-/_}
|
||||
case ${target_arch} in
|
||||
i686)
|
||||
if [[ ${chroot_arch} == x86_64 ]];then
|
||||
die "You can't chroot from %s host into %s!" "${target_arch}" "${chroot_arch}"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
chroot_setup "$1"
|
||||
chroot_add_resolv_conf "$1"
|
||||
}
|
||||
@@ -171,16 +125,18 @@ chroot_api_mount() {
|
||||
chroot_setup "$1"
|
||||
}
|
||||
|
||||
chroot_part_umount() {
|
||||
info "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
|
||||
umount "${CHROOT_ACTIVE_MOUNTS[@]}"
|
||||
info "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
|
||||
umount "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
|
||||
unset CHROOT_ACTIVE_PART_MOUNTS CHROOT_ACTIVE_MOUNTS
|
||||
}
|
||||
|
||||
chroot_api_umount() {
|
||||
info "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
|
||||
umount "${CHROOT_ACTIVE_MOUNTS[@]}"
|
||||
if (( ${#CHROOT_ACTIVE_MOUNTS[@]} )); then
|
||||
info "umount: [%s]" "${CHROOT_ACTIVE_MOUNTS[@]}"
|
||||
umount "${CHROOT_ACTIVE_MOUNTS[@]}"
|
||||
fi
|
||||
unset CHROOT_ACTIVE_MOUNTS
|
||||
}
|
||||
|
||||
chroot_part_umount() {
|
||||
chroot_api_umount
|
||||
info "umount: [%s]" "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
|
||||
umount "${CHROOT_ACTIVE_PART_MOUNTS[@]}"
|
||||
unset CHROOT_ACTIVE_PART_MOUNTS
|
||||
}
|
||||
|
||||
|
10
lib/util.sh
10
lib/util.sh
@@ -96,21 +96,13 @@ init_artools_iso(){
|
||||
|
||||
[[ -z ${gpgkey} ]] && gpgkey=''
|
||||
|
||||
[[ -z ${uplimit} ]] && uplimit=100
|
||||
|
||||
[[ -z ${tracker_url} ]] && tracker_url='udp://mirror.strits.dk:6969'
|
||||
|
||||
[[ -z ${piece_size} ]] && piece_size=21
|
||||
[[ -z ${uplimit} ]] && uplimit=1000
|
||||
|
||||
[[ -z ${file_host} ]] && file_host="sourceforge.net"
|
||||
|
||||
[[ -z ${project} ]] && project="artix-linux"
|
||||
|
||||
[[ -z ${account} ]] && account="[SetUser]"
|
||||
|
||||
[[ -z ${host_mirrors[@]} ]] && host_mirrors=('netcologne' 'freefr' 'netix' 'kent' '10gbps-io')
|
||||
|
||||
torrent_meta="$(get_osname)"
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user