tools/makemanifest.py: Follow symlinks when freezing linked directories.
While the new manifest.py style got introduced for freezing python code into the resulting binary, the old way - where files and modules within ports/*/modules where baked into the resulting binary - was still supported via `freeze('$(PORT_DIR)/modules')` within manifest.py. However behaviour changed for symlinked directories (=modules), as those links weren't followed anymore. This commit restores the original behaviour by explicitly following symlinks within a modules/ directory
This commit is contained in:
parent
4f0f3dfb41
commit
2f71d66ef7
@ -147,7 +147,7 @@ def get_timestamp(path, default=None):
|
|||||||
|
|
||||||
def get_timestamp_newest(path):
|
def get_timestamp_newest(path):
|
||||||
ts_newest = 0
|
ts_newest = 0
|
||||||
for dirpath, dirnames, filenames in os.walk(path):
|
for dirpath, dirnames, filenames in os.walk(path, followlinks=True):
|
||||||
for f in filenames:
|
for f in filenames:
|
||||||
ts_newest = max(ts_newest, get_timestamp(os.path.join(dirpath, f)))
|
ts_newest = max(ts_newest, get_timestamp(os.path.join(dirpath, f)))
|
||||||
return ts_newest
|
return ts_newest
|
||||||
@ -171,7 +171,7 @@ def freeze_internal(kind, path, script, opt):
|
|||||||
raise FreezeError('can only freeze one str directory')
|
raise FreezeError('can only freeze one str directory')
|
||||||
manifest_list.append((KIND_AS_STR, path, script, opt))
|
manifest_list.append((KIND_AS_STR, path, script, opt))
|
||||||
elif script is None:
|
elif script is None:
|
||||||
for dirpath, dirnames, filenames in os.walk(path):
|
for dirpath, dirnames, filenames in os.walk(path, followlinks=True):
|
||||||
for f in filenames:
|
for f in filenames:
|
||||||
freeze_internal(kind, path, (dirpath + '/' + f)[len(path) + 1:], opt)
|
freeze_internal(kind, path, (dirpath + '/' + f)[len(path) + 1:], opt)
|
||||||
elif not isinstance(script, str):
|
elif not isinstance(script, str):
|
||||||
|
Loading…
Reference in New Issue
Block a user