36 lines
		
	
	
		
			900 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			900 B
		
	
	
	
		
			Python
		
	
	
	
| from _findpy import py
 | |
| 
 | |
| bindir = py.magic.autopath().dirpath().dirpath("py").join("bin")
 | |
| assert bindir.check(), bindir
 | |
| 
 | |
| def getbasename(name):
 | |
|     assert name[:2] == "py"
 | |
|     return "py." + name[2:]
 | |
| 
 | |
| def genscript_unix(name):
 | |
|     basename = getbasename(name)
 | |
|     path = bindir.join(basename)
 | |
|     path.write(py.code.Source("""
 | |
|         #!/usr/bin/env python
 | |
|         from _findpy import py
 | |
|         py.cmdline.%s()
 | |
|     """ % name).strip())
 | |
|     path.chmod(0755)
 | |
| 
 | |
| def genscript_windows(name):
 | |
|     basename = getbasename(name)
 | |
|     winbasename = basename + ".cmd"
 | |
|     path = bindir.join("win32").join(winbasename)
 | |
|     path.write(py.code.Source("""
 | |
|          @echo off
 | |
|          python "%%~dp0\..\%s" %%*
 | |
|     """ % (basename)).strip())
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     for name in dir(py.cmdline):
 | |
|         if name[0] != "_":
 | |
|             genscript_unix(name)
 | |
|             genscript_windows(name)
 | |
|         
 | |
|         
 |