From: Scott Worley Date: Fri, 10 Apr 2020 07:45:45 +0000 (-0700) Subject: Name git pins X-Git-Tag: 1.0~4 X-Git-Url: http://git.scottworley.com/pinch/commitdiff_plain/e3cae769b843054130c54356da96d02ebb8ca895 Name git pins --- diff --git a/channels b/channels index 3f48dcc..dc1f754 100644 --- a/channels +++ b/channels @@ -2,3 +2,8 @@ channel_url = https://channels.nixos.org/nixos-20.03 git_repo = https://github.com/NixOS/nixpkgs.git git_ref = nixos-20.03 + +[nixos-hardware] +git_repo = https://github.com/NixOS/nixos-hardware.git +git_ref = master + diff --git a/pinch.py b/pinch.py index 6ad2cdc..ae2c7ec 100644 --- a/pinch.py +++ b/pinch.py @@ -399,6 +399,22 @@ def pin_channel(v: Verification, channel: Channel) -> None: check_channel_contents(v, channel) +def git_revision_name(v: Verification, channel: Channel) -> str: + v.status('Getting commit date') + process = subprocess.run(['git', + '-C', + channel.git_cachedir, + 'lo', + '-n1', + '--format=%ct-%h', + '--abbrev=11', + channel.git_revision], + capture_output=True) + v.result(process.returncode == 0 and process.stdout != '') + return '%s-%s' % (os.path.basename(channel.git_repo), + process.stdout.decode().strip()) + + def make_channel(conf: configparser.SectionProxy) -> Channel: channel = Channel(**dict(conf.items())) if hasattr(channel, 'git_revision'): @@ -420,6 +436,7 @@ def pin(args: argparse.Namespace) -> None: config[section]['tarball_sha256'] = channel.table['nixexprs.tar.xz'].digest else: git_fetch(v, channel) + config[section]['name'] = git_revision_name(v, channel) config[section]['git_revision'] = channel.git_revision with open(args.channels_file, 'w') as configfile: