@@ -3,6 +3,7 @@ import re
33import os
44import sys
55import importlib
6+ from collections import defaultdict
67
78# load version.py; needlessly complicated alternative to "imp.load_source":
89version_spec = importlib .util .spec_from_file_location ('version' , 'electrum/version.py' )
@@ -15,9 +16,6 @@ print("version", ELECTRUM_VERSION)
1516
1617dirname = sys .argv [1 ]
1718
18- # GPG names of extra signers
19- extra_signers = sys .argv [2 :]
20-
2119print ("directory" , dirname )
2220
2321download_page = os .path .join (dirname , "panel-download.html" )
@@ -44,33 +42,35 @@ files = {
4442 'apk_armeabi' : "Electrum-%s-armeabi-v7a-release.apk" % APK_VERSION ,
4543}
4644
45+ # default signers
46+ signers = ['ThomasV' , 'SomberNight' ]
4747
48- for k , n in files .items ():
49- path = "dist/%s" % n
50- link = "https://download.electrum.org/%s/%s" % (version ,n )
51- if not os .path .exists (path ):
52- os .system ("wget -q %s -O %s" % (link , path ))
53- if not os .path .getsize (path ):
54- raise Exception (path )
48+ # detect extra signers
49+ list_dir = os .listdir ('dist' )
50+ detected_sigs = defaultdict (set )
51+ for f in list_dir :
52+ if f .endswith ('.asc' ):
53+ parts = f .split ('.' )
54+ signer = parts [- 2 ]
55+ filename = '.' .join (parts [0 :- 2 ])
56+ detected_sigs [signer ].add (filename )
57+ for k , v in detected_sigs .items ():
58+ if v == set (files .values ()):
59+ if k not in signers :
60+ signers .append (k )
5561
56- string = string .replace ("##link_%s##" % k , link )
57- sig_ThomasV = link + '.ThomasV.asc'
58- sig_SomberNight = link + '.sombernight_releasekey.asc'
59- sigs = [
60- "<a href=\" %s\" >%s</a>" % (sig_ThomasV , 'ThomasV' ),
61- "<a href=\" %s\" >%s</a>" % (sig_SomberNight , 'SomberNight' ),
62- ]
62+ print ("signers:" , signers )
6363
64- for signer in extra_signers :
65- sig_name = n + '.' + signer + '.asc'
66- sig_url = "https://raw.githubusercontent.com/spesmilo/electrum-signatures/master/%s/%s/%s" % ( version , n , sig_name )
67- sig_path = "dist/%s" % sig_name
68- os . system ( "wget %s -O %s" % ( sig_url , sig_path ))
69- if os . system ( "gpg --verify %s %s" % ( sig_path , path )) != 0 :
70- raise Exception ( sig_name )
71- sigs . append ( "<a href= \" %s \" >%s</a> "% (sig_url , signer ) )
72- sigs = ' \n ' + ', \n ' . join ( sigs ) + ' \n '
73- string = string .replace ("##sigs_%s##" % k , sigs )
64+ gpg_name = lambda x : 'sombernight_releasekey' if x == 'SomberNight' else x
65+ signers_list = ', ' . join ( "<a href= \" https://raw.githubusercontent.com/spesmilo/electrum/master/pubkeys/%s.asc \" >%s</a>" % ( gpg_name ( x ), x ) for x in signers )
66+ string = string . replace ( "##signers_list##" , signers_list )
67+
68+ for k , filename in files . items ():
69+ path = "dist/%s" % filename
70+ assert filename in list_dir
71+ link = "https://download.electrum.org/%s/%s "% (version , filename )
72+ string = string . replace ( "##link_%s##" % k , link )
73+ string = string .replace ("##sigs_%s##" % k , link + '.asc' )
7474
7575with open (download_page ,'w' ) as f :
7676 f .write (string )
0 commit comments