24 ms·
We're simply making use of Python's ability to load a module from a zip file [0]. Therefore, the generation[1] is just zipping up all the files and prepending a
by phihag_ 12y ago
We're simply making use of Python's ability to load a module from a zip file [0]. Therefore, the generation[1] is just zipping up all the files and prepending a shebang.
[0] http://bugs.python.org/issue1739468 http://bugs.python.org/issue1739468
[1] https://github.com/rg3/youtube-dl/blob/640743233389714dda8a3ccb01cf7335e7b43c37/Makefile#L48 https://github.com/rg3/youtube-dl/blob/640743233389714dda8a3...
- pyre 12y agoThis: youtube-dl: youtube_dl/*.py youtube_dl/*/*.py zip --quiet youtube-dl youtube_dl/*.py youtube_dl/*/*.py zip --quiet --junk-paths youtube-dl youtube_dl/__main__.py echo '#!$(PYTHON)' > youtube-dl cat youtube-dl.zip >> youtube-dl rm youtube-dl.zip chmod a+x youtube-dl Might be less confusing if you append '.zip' in the first two commands: zip --quiet youtube-dl.zip youtube_dl/*.py youtube_dl/*/*.py zip --quiet --junk-paths youtube-dl.zip youtube_dl/__main__.py When you echo the shebang overwriting the file, I was thrown off. I'm thinking, "Why did you just zip all those contents into the file to just throw them out?" Then I see the `cat` line, and it makes sense that the `zip` command appends the .zip to the end of the file.