1616import requests
1717import semver
1818
19+ if sys .argv and sys .argv [- 1 ].upper () == "DEBUG" :
20+ def debug (text ):
21+ print (text )
22+ else :
23+ def debug (text ):
24+ pass
1925
2026def get_git_command (command ):
2127 """Execute and return the result of a git command without error."""
@@ -75,10 +81,9 @@ def date_to_version(tag):
7581SET_VERSION_PATTERN = "\n __version__ = '{}'\n "
7682THIS_REPOSITORY = "https://github.com/Neradoc/Circuitpython_Keyboard_Layouts.git"
7783
78- PLATFORMS = ["mpy6" , " mpy7" , "mpy8" ]
84+ PLATFORMS = ["mpy7" , "mpy8" ]
7985PLATFORM_NAMES = {
8086 "py" : "py" ,
81- "mpy6" : "6.x-mpy" ,
8287 "mpy7" : "7.x-mpy" ,
8388 "mpy8" : "8.x-mpy" ,
8489}
@@ -88,28 +93,30 @@ def date_to_version(tag):
8893MPYCROSS_URL = "https://adafruit-circuit-python.s3.amazonaws.com/bin/mpy-cross/"
8994MPYCROSSES = {
9095 "darwin" : {
91- "mpy6" : "mpy-cross-macos-catalina-6.3.0" ,
92- "mpy7" : "mpy-cross-macos-universal-7.3.0" ,
93- "mpy8" : "mpy-cross-macos-11-8.0.0-beta.0-x64" ,
96+ "mpy7" : ["macos-11" , "mpy-cross-macos-11-8.0.2-universal" ],
97+ "mpy8" : ["macos-11" , "mpy-cross-macos-11-8.0.2-universal" ],
9498 },
9599 "linux" : {
96- "mpy6" : "mpy-cross.static-amd64-linux-6.3.0" ,
97- "mpy7" : "mpy-cross.static-amd64-linux-7.3.0" ,
98- "mpy8" : "mpy-cross.static-amd64-linux-8.0.0-beta.0" ,
100+ "mpy7" : ["linux-amd64" , "mpy-cross.static-amd64-linux-7.3.3" ],
101+ "mpy8" : ["linux-amd64" , "mpy-cross.static-amd64-linux-8.0.2" ],
99102 },
100103 "win32" : {
101- "mpy6" : "mpy-cross.static-x64-windows-6.3.0.exe" ,
102- "mpy7" : "mpy-cross.static-x64-windows-7.3.0.exe" ,
103- "mpy8" : "mpy-cross.static-x64-windows-8.0.0-beta.0.exe" ,
104+ "mpy7" : ["windows" , "mpy-cross.static-x64-windows-7.3.3.exe" ],
105+ "mpy8" : ["windows" , "mpy-cross-windows-8.1.0-beta.0.static.exe" ],
104106 },
105107 "raspbian" : {
106- "mpy6" : "mpy-cross.static-raspbian-6.3.0" ,
107- "mpy7" : "mpy-cross.static-raspbian-7.3.0" ,
108- "mpy8" : "mpy-cross.static-raspbian-8.0.0-beta.0" ,
108+ "mpy7" : ["linux-raspbian" , "mpy-cross.static-raspbian-7.3.0" ],
109+ "mpy8" : ["linux-raspbian" , "mpy-cross.static-raspbian-8.0.2" ],
109110 },
110111}
111112MPYCROSS = MPYCROSSES [sys .platform ]
112113
114+ def MPYCROSS_LINK (version ):
115+ return MPYCROSS_URL + "/" .join (MPYCROSS [version ])
116+
117+ def MPYCROSS_FILE (version ):
118+ return os .path .join (BUILD_DEPS , MPYCROSS [version ][- 1 ])
119+
113120
114121def file_version_tag (path ):
115122 """
@@ -180,9 +187,9 @@ def init_directories():
180187 for platform in ["py" ] + PLATFORMS :
181188 bun_dir = BUNDLE_DIR .format (platform = PLATFORM_NAMES [platform ])
182189 zip_file = BUNDLE_ZIP .format (platform = PLATFORM_NAMES [platform ])
183- if os .path .isdir (bun_dir ):
190+ while os .path .isdir (bun_dir ):
184191 shutil .rmtree (bun_dir )
185- if os .path .isfile (zip_file ):
192+ while os .path .isfile (zip_file ):
186193 os .unlink (zip_file )
187194
188195
@@ -278,27 +285,34 @@ def make_the_mpy_bundles():
278285
279286 # download the mpycrosses
280287 for cross in MPYCROSS :
281- cross_file = os . path . join ( BUILD_DEPS , MPYCROSS [ cross ] )
288+ cross_file = MPYCROSS_FILE ( cross )
282289 if not os .path .isfile (cross_file ):
283- url = MPYCROSS_URL + MPYCROSS [cross ]
290+ debug ("Dowloading" )
291+ debug (cross_file )
292+ url = MPYCROSS_LINK (cross )
284293 response = requests .get (url )
285294 with open (cross_file , "wb" ) as cross_fp :
286295 cross_fp .write (response .content )
287296 fstats = os .stat (cross_file )
288297 os .chmod (cross_file , fstats .st_mode | stat .S_IEXEC )
298+ else :
299+ debug ("Exists: " + os .path .basename (cross_file ))
289300
290301 # duplicate the py dir to mpy dirs
291302 pwd = os .getcwd ()
292303 for platform in PLATFORMS :
293- cross = os . path . join ( BUILD_DEPS , MPYCROSS [ platform ] )
304+ cross = MPYCROSS_FILE ( platform )
294305 cross = os .path .abspath (cross )
295306 bun_dir = BUNDLE_DIR .format (platform = PLATFORM_NAMES [platform ])
296307 lib_dir = BUNDLE_LIB_DIR .format (platform = PLATFORM_NAMES [platform ])
308+ debug (f"{ platform } : Duplicating" )
309+ debug (f" { lib_dir } " )
297310 shutil .copytree (fmt (BUNDLE_DIR ), bun_dir )
298311 # run mpy-cross in each of those
299312 os .chdir (lib_dir )
300313 for lib_file in glob .glob (os .path .join ("*.py" )):
301314 mpy_file = lib_file .replace (".py" , ".mpy" )
315+ debug (f" • MPY file: { mpy_file } " )
302316 subprocess .call ([cross , lib_file , "-o" , mpy_file ])
303317 os .unlink (lib_file )
304318 os .chdir (pwd )
@@ -312,6 +326,8 @@ def do_the_zips():
312326 bun_dir = BUNDLE_DIR .format (platform = PLATFORM_NAMES [platform ])
313327 zip_file = BUNDLE_ZIP .format (platform = PLATFORM_NAMES [platform ])
314328 all_files = list_all_files (bun_dir )
329+ debug ("Making zip" )
330+ debug (f" { zip_file } " )
315331 with zipfile .ZipFile (zip_file , "w" ) as bundle :
316332 # metadata (bundler version)
317333 # build_metadata = {"build-tools-version": build_tools_version}
0 commit comments