Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Release Engineering
Public
toolkit
Commits
2afb5e7c
Unverified
Commit
2afb5e7c
authored
Jul 09, 2021
by
Neil Hanlon
Browse files
feat: torrent generation
parent
64515091
Pipeline
#32
failed with stage
in 30 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
sync/common
View file @
2afb5e7c
...
...
@@ -28,3 +28,12 @@ fi
# Combined variables based on common data
REV="${REVISION}${APPEND_TO_DIR}"
# These repos have modules
MODS=(
AppStream
PowerTools
)
# Used to iterate over ISOs?
VARIANTS=(boot minimal dvd1)
sync/gen-torrents.sh
0 → 100755
View file @
2afb5e7c
#!/usr/bin/env bash
#
# Source common variables
# shellcheck disable=SC2046,1091,1090
source
"
$(
dirname
"
$0
"
)
/common"
NAME
=
gen-torrents
USAGE
=
"usage:
$NAME
<torrentdir>"
ISODIR
=
${
1
}
if
[[
-z
"
${
ISODIR
}
"
||
$#
==
0
]]
;
then
echo
$USAGE
exit
fi
# Setup a lock?
LOCKFILE
=
"/tmp/
${
NAME
}
.lock"
if
[
-f
"
$LOCKFILE
"
]
;
then
echo
"Script is already running"
exit
fi
trap
"rm -f
$LOCKFILE
"
EXIT
touch
$LOCKFILE
# stamp the email
# Where to put torrent data
TORRENT_DOWNLOAD_DIR
=
"/opt/rtorrent/download"
# Where to drop created torrents
TORRENT_START_DIR
=
"/opt/rtorrent/watch/start"
# What trackers should be used
TORRENT_TRACKERS
=(
"udp://tracker.opentrackr.org:1337/announce"
"udp://tracker.openbittorrent.com:80/announce"
)
# Regex of paths to exclude
TORRENT_EXCLUDES
=
'.*\/CHECKSUM.asc'
TORRENT_COMMENT
=
"https://docs.rockylinux.org/release_notes/
${
REVISION
}
/"
THREADS
=
10
printf
"* Step 1: Create scaffolding and link
\n
"
cd
"
${
TORRENT_DOWNLOAD_DIR
}
"
||
exit
1
for
variant
in
"
${
VARIANTS
[@]
}
"
;
do
for
arch
in
"
${
ARCHES
[@]
}
"
;
do
# Skip this architecture if it's not there
if
[[
!
-d
"
${
ISODIR
}
/
${
arch
}
"
]]
;
then
printf
"** %s - Does not exist. Skipping.
\n
"
"
${
ISODIR
}
/
${
arch
}
"
continue
fi
name_template
=
"Rocky-
${
REVISION
}
-
${
arch
}
-
${
variant
}
"
if
[[
!
-f
"
${
ISODIR
}
/
${
arch
}
/
${
name_template
}
.iso"
]]
;
then
printf
"** %s - Does not exist. Skipping.
\n
"
"
${
ISODIR
}
/
${
arch
}
/
${
name_template
}
.iso"
continue
fi
printf
"** Making directory: %s/%s
\n
"
"
${
TORRENT_DOWNLOAD_DIR
}
"
"
${
name_template
}
"
mkdir
"
${
name_template
}
"
||
exit
2
printf
"** Linking Version: %s; Arch: %s; Variant: %s
\n
"
"
${
REVISION
}
"
"
${
arch
}
"
"
${
variant
}
"
ln
-sv
\
${
ISODIR
}
/
${
arch
}
/
{
CHECKSUM
*
,
${
name_template
}
.iso
*
}
\
${
name_template
}
/
done
done
printf
"* Step 2: Generate torrents
\n
"
for
torrent_directory
in
${
TORRENT_DOWNLOAD_DIR
}
/Rocky-
${
REVISION
}
-
*
;
do
name
=
"
$(
basename
"
${
torrent_directory
}
"
)
"
if
[[
-d
"
${
torrent_directory
}
"
]]
;
then
printf
"** Creating torrent for
${
torrent_directory
}
\n
"
else
continue
fi
torrenttools create
\
--announce
"
${
TORRENT_TRACKERS
[@]
}
"
--name
"
${
name
}
"
\
--exclude
"
${
TORRENT_EXCLUDES
}
"
--output
"
${
TORRENT_START_DIR
}
"
\
--threads
"
${
THREADS
}
"
--comment
"
${
TORRENT_COMMENT
}
"
\
"
${
torrent_directory
}
"
res
=
$?
if
[[
$res
-ne
0
]]
;
then
printf
"**[ERROR] Failed to create torrent."
exit
"
$res
"
fi
done
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment