forked from canonical/cloud-init
-
Notifications
You must be signed in to change notification settings - Fork 0
/
updatereqs
executable file
·81 lines (69 loc) · 1.88 KB
/
updatereqs
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/bin/ksh
#
# {{{ CDDL HEADER
#
# 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 2023 OmniOS Community Edition (OmniOSce) Association.
ROOT="`git rev-parse --show-toplevel`"
if [ -z "$ROOT" ]; then
echo "Cannot find root of checked out repository"
exit 1
fi
tmpd=`mktemp -d`
tmpf=`mktemp`
trap 'rm -rf $tmpd $tmpf $tmpf.*' EXIT
echo "+ Installing 'pipreqs' to $tmpd"
python3 -mvenv $tmpd
. $tmpd/bin/activate
pip install --quiet --upgrade pip
pip install --quiet pipreqs
function strip {
sed "
# Use core version
/setuptools/d
# Use core version (also needed by validate_pkg in gate)
/jsonschema/d
# Use versions from core
/attrs/d
/idna/d
/PyYAML/d
/six/d
/typing_extensions/d
"
}
function freeze {
typeset tag="$1"; shift
typeset f="$1"; shift
typeset op="$1"; shift
echo "+ $tag package set"
sed 's/^/ /' < $f
rm -rf $tmpd
python3 -mvenv $tmpd
. $tmpd/bin/activate
echo "+ Building required package set ($tag)"
pip install --quiet --upgrade pip wheel
pip install -r $f
echo "+ Generating freeze file ($tag)"
pip freeze | strip | sed "
1i\\
#\\
# This file was automatically produced by updatereqs\\
# Generated on `date`\\
# Do not edit directly\\
#
" > $op
}
echo "+ Evaluating requirements"
pipreqs --print --mode no-pin $ROOT/cloudinit | strip > $tmpf.core
freeze core $tmpf.core $ROOT/frozen-requirements.txt
echo "+ Updated frozen-requirements.txt"
# Vim hints
# vim:ts=4:sw=4:et:fdm=marker