#! /usr/bin/sh
#
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source.  A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#

#
# Copyright 2022 Marcel Telka
#

# Helper tool to recursively resolve -r/--requirement in list of python
# dependencies

while read line ; do
	# some projects specify extra dependencies in form of .[extras] in deps
	# key instead of using separate extras key
	extras=${line#.[}
	extras=${extras%]}
	if [ ".[$extras]" == "$line" ] ; then
		for extra in ${extras//,/ } ; do
			# run the command passed in as argument(s) to handle extras
			eval "$@" $extra
		done
		continue
	fi

	[ "${line:0:2}" == "-c" ] && continue
	[ "${line:0:12}" == "--constraint" ] && continue
	if [ "${line:0:2}" == "-r" ] ; then
		line=${line:2}
		while [ "${line:0:1}" == " " ] ; do line=${line:1} ; done
		dos2unix -ascii $line | $0 "$@"
		continue
	fi
	if [ "${line:0:13}" == "--requirement" ] ; then
		line=${line:14}
		while [ "${line:0:1}" == " " ] ; do line=${line:1} ; done
		dos2unix -ascii $line | $0 "$@"
		continue
	fi
	echo "$line"
done