]> git.proxmox.com Git - rustc.git/blame - debian/prune-unused-deps
d/prune-unused-deps: drop no longer needed sed
[rustc.git] / debian / prune-unused-deps
CommitLineData
8bba2981 1#!/bin/bash
b1076f25
XL
2# Run this script in an unpacked upstream tarball directory, and it will update
3# (i.e. overwrite) the "unused deps" part of Files-Excluded in d/copyright.
8bba2981
XL
4
5set -e
6
b1076f25 7scriptdir=$(dirname "$(dirname "$(readlink -f "$0")")")
5861ebac 8had_config_toml=$(if test -e "$scriptdir/debian/config.toml"; then echo true; else echo false; fi)
b1076f25 9
7e1544cb 10( cd "$scriptdir" && debian/rules debian/config.toml )
5861ebac 11cp "$scriptdir/debian/config.toml" config.toml
7e1544cb 12
ad1f144f
XL
13for i in "$scriptdir/debian/patches"/d-00*.patch; do
14 "$scriptdir/debian/ensure-patch" -N "$i"
15done
f56f18fe 16test -f Cargo.lock.orig || cp Cargo.lock Cargo.lock.orig
7e1544cb 17rm -f Cargo.lock
a641de0d 18find vendor -name .cargo-checksum.json -execdir "$scriptdir/debian/prune-checksums" "{}" +
885d43c6 19./x.py build nonexistent/path/to/trigger/cargo/metadata src/bootstrap
b1076f25 20
4a65db98
XL
21needed_crates() {
22 cat Cargo.lock \
23 | sed -z -e 's/\nname = /name = /g' -e 's/\nversion = /version = /g' \
24 | sed -ne 's/\[\[package\]\]name = "\(.*\)"version = "\(.*\)"/\1 \2/gp'
8bba2981
XL
25}
26
27ghetto_parse_cargo() {
28 cat "$1" \
29 | tr '\n' '\t' \
30 | sed -e 's/\t\[/\n[/g' \
31 | perl -ne 'print if s/^\[(?:package|project)\].*\tname\s*=\s*"(.*?)".*\tversion\s*=\s*"(.*?)".*/\1 \2/g'
32}
33
b1076f25 34pruned_paths() {
f56f18fe 35 for i in vendor/*/Cargo.toml; do
b1076f25
XL
36 pkgnamever=
37 pkgnamever=$(ghetto_parse_cargo "$i")
38 if [ -z "$pkgnamever" ]; then
39 echo >&2 "failed to parse: $i"
40 exit 1
41 fi
42 echo "$pkgnamever $i"
4a65db98 43 done | grep -v -F -f <(needed_crates) | cut '-d ' -f3 | while read x; do
bf621149 44 echo " $(dirname $x)"
b1076f25
XL
45 done
46}
47
48header='# DO NOT EDIT below, AUTOGENERATED'
49footer='# DO NOT EDIT above, AUTOGENERATED'
50{
51echo "$header"
52pruned_paths
53echo "$footer"
54} > $scriptdir/debian/copyright.unused-deps
55
56cd $scriptdir/debian
57sed -i -e "/^$header/,/^$footer/d" -e '/^# unused dependencies/rcopyright.unused-deps' copyright
58rm copyright.unused-deps
5861ebac 59$had_config_toml || rm "$scriptdir/debian/config.toml"