SUMMARY="A command-line program to download videos from various sites"
DESCRIPTION="The program is usually invoked as youtube-dl followed by \
options and the video URL. Run 'youtube-dl --help' and get a summary \
of all options.
Some YouTube videos are served using Adobe's proprietary RTMP protocol, which \
imposes DRM restrictions and encrypts the connection. youtube-dl is not able \
to download these videos by itself."
HOMEPAGE="https://ytdl-org.github.io/youtube-dl/index.html"
COPYRIGHT="2006-2021 youtube-dl contributors"
LICENSE="Unlicense"
REVISION="1"
SOURCE_URI="https://yt-dl.org/downloads/$portVersion/youtube-dl-$portVersion.tar.gz"
CHECKSUM_SHA256="9f3b99c8b778455165b4525f21505e86c7ff565f3ac319e19733d810194135df"
SOURCE_DIR="youtube-dl"

ARCHITECTURES="any"

PROVIDES="
	youtube_dl = $portVersion
	cmd:youtube_dl = $portVersion
	"
REQUIRES="
	haiku
	ffmpeg_tools
	cmd:python3
	"

BUILD_REQUIRES="
	haiku_devel
	"
BUILD_PREREQUIRES="
	cmd:find
	cmd:make
	cmd:zip
	"

PYTHON_PACKAGES=(python3)
PYTHON_VERSIONS=(3.7)
for i in "${!PYTHON_PACKAGES[@]}"; do
	pythonPackage=${PYTHON_PACKAGES[i]}
	pythonVersion=${PYTHON_VERSIONS[$i]}
	eval "\
		PROVIDES_${pythonPackage}=\"\n\
			${portName}_$pythonPackage = $portVersion\n\
			cmd:youtube_dl_$pythonPackage = $portVersion\n\
			\"; \
		REQUIRES_$pythonPackage=\"\n\
			haiku\n\
			cmd:python$pythonVersion\n\
			\"\
		"

	BUILD_REQUIRES="$BUILD_REQUIRES
		setuptools_$pythonPackage
		"
	BUILD_PREREQUIRES="$BUILD_PREREQUIRES
		cmd:python$pythonVersion
		"
done

INSTALL()
{
	for i in "${!PYTHON_PACKAGES[@]}"; do
		pythonPackage=${PYTHON_PACKAGES[i]}
		pythonVersion=${PYTHON_VERSIONS[$i]}

		python=python$pythonVersion
		installLocation="$prefix"/lib/$python/vendor-packages/
		export PYTHONPATH="$installLocation"
		rm -rf build
		mkdir -p "$installLocation"
		$python setup.py build install --root=/ --prefix="$prefix"

		rm -rf "$prefix"/share/man
		mv "$binDir"/youtube-dl "$binDir"/youtube-dl-$pythonPackage
		packageEntries $pythonPackage \
			"$prefix"/lib/$python \
			"$binDir"/youtube-dl-$pythonPackage

		# Avoid interference between the different python versions, clean any
		# temporary files. Don't use "make clean" because it also removes
		# things that we are not able to rebuild (docs need pandoc, for example)
		rm youtube-dl
	done

	make install PREFIX="$prefix" MANDIR="$manDir" SHAREDIR="$dataDir" \
		PYTHON="/system/bin/python3"
	install -d "$dataDir"/bash-completion "$docDir"
	mv "$prefix"/share/doc/youtube_dl/README.txt "$docDir"

	# We now have two identical files in $prefix/etc/bash_completion.d/
	# Let's drop "youtube-dl.bash-completion" and keep "youtube-dl".
	rm -f "$prefix"/etc/bash_completion.d/youtube-dl.bash-completion

	# We need "youtube-dl" in "$dataDir/bash-completion/completions/".
	mv "$prefix"/etc/bash_completion.d "$dataDir"/bash-completion/completions

	mv "$prefix"/etc/fish "$dataDir"
	cd "$prefix"
	rmdir -p etc share/doc/youtube_dl
}

TEST()
{
	# Will fail because flake8 is not available
	make offlinetest
}
