Marcel Telka
2024-04-04 6314b6e3f372abbee53d4072557e08cff3418c68
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#! /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