11import json
22import subprocess
33import sys
4+ from datetime import datetime
5+ import argparse
6+
7+ parser = argparse .ArgumentParser ()
8+ parser .add_argument ('--system' , type = str , default = 'x86_64-linux' )
9+ args = parser .parse_args ()
410
511with open ("flake.lock" , "r" ) as f :
612 lockfile = json .load (f )
713locked = lockfile ['nodes' ]['purenix-base' ]['locked' ]
814repo = f'https://github.com/{ locked ["owner" ]} /{ locked ["repo" ]} .git'
915ref = locked ["rev" ]
10- result = subprocess .Popen (["nix" , "eval" , ".#hello.x86_64-linux " , "--json" ], stdout = subprocess .PIPE ).stdout .read ()
16+ result = subprocess .Popen (["nix" , "eval" , f ".#drvs. { args . system } " , "--json" ], stdout = subprocess .PIPE ).stdout .read ()
1117package_set = json .loads (result )
1218derivations = list (p ['drvPath' ] for p in package_set .values ())
1319build_results = subprocess .Popen (["nix-build-results" ] + derivations , stdout = subprocess .PIPE ).stdout .read ()
@@ -19,5 +25,12 @@ def update_version(name, value, subdir):
1925 return value | {'version' : {'git' : repo , 'ref' : ref , 'subdir' : subdir }}
2026 else :
2127 return value
22- final = {k : res [v ['drvPath' ]] | {"derivation" : update_version (k , v , f'purescript-{ k } ' )} for k , v in package_set .items ()}
23- print (json .dumps (final ))
28+ named = {k : res [v ['drvPath' ]] | {"derivation" : update_version (k , v , f'purescript-{ k } ' )} for k , v in package_set .items ()}
29+ final = {k : v ['derivation' ]['version' ] for k , v in named .items () if v ['success' ] == True }
30+ today = datetime .today ().strftime ('%Y-%m-%d' )
31+ output = {
32+ 'packages' : final ,
33+ 'compiler' : '0.15.7' ,
34+ 'published' : today ,
35+ }
36+ print (json .dumps (output ))
0 commit comments