mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-14 05:59:26 +00:00

form pytoml, which is no longer available in bookworm or later Signed-off-by: Fabian Grünbichler <debian@fabian.gruenbichler.email>
46 lines
1.3 KiB
Python
Executable File
46 lines
1.3 KiB
Python
Executable File
#!/usr/bin/python3
|
|
# Copyright: 2015-2017 The Debian Project
|
|
# License: MIT or Apache-2.0
|
|
#
|
|
# Guess the copyright of a cargo crate by looking at its git history.
|
|
|
|
import datetime
|
|
import toml
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
this_year = datetime.datetime.now().year
|
|
crates = sys.argv[1:]
|
|
get_initial_commit = len(crates) == 1
|
|
|
|
for crate in crates:
|
|
with open(os.path.join(crate, "Cargo.toml")) as fp:
|
|
data = toml.load(fp)
|
|
repo = data["package"].get("repository", None)
|
|
if get_initial_commit and repo:
|
|
output = subprocess.check_output(
|
|
"""git clone -q --bare "%s" tmp.crate-copyright >&2 &&
|
|
cd tmp.crate-copyright &&
|
|
git log --format=%%cI --reverse | head -n1 | cut -b1-4 &&
|
|
git log --format=%%cI | head -n1 | cut -b1-4 &&
|
|
cd .. &&
|
|
rm -rf tmp.crate-copyright""" % repo, shell=True).decode("utf-8")
|
|
first_year, last_year = output.strip().split(maxsplit=2)
|
|
else:
|
|
first_year = "20XX"
|
|
last_year = this_year
|
|
|
|
authors = data["package"].get("authors", ["UNKNOWN AUTHORS"])
|
|
|
|
print("""Files: {0}
|
|
Copyright: {1}
|
|
License: {2}
|
|
Comment: see {3}
|
|
""".format(
|
|
os.path.join(crate, "*"),
|
|
"\n ".join("%s-%s %s" % (first_year, last_year, a.replace(" <>", "")) for a in authors),
|
|
data["package"].get("license", "???").replace("/", " or "),
|
|
repo or "???"
|
|
))
|