mirror of
				https://github.com/noDRM/DeDRM_tools.git
				synced 2025-10-23 23:07:47 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			86 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env python
 | |
| # code: utf-8
 | |
| 
 | |
| '''
 | |
| A wrapper script to generate zip files for GitHub releases.
 | |
| 
 | |
| This script tends to be compatible with both Python 2 and Python 3.
 | |
| '''
 | |
| 
 | |
| from __future__ import print_function
 | |
| 
 | |
| import os
 | |
| import shutil
 | |
| 
 | |
| 
 | |
| DEDRM_SRC_DIR = 'dedrm_src'
 | |
| OBOK_SRC_DIR = 'obok_src'
 | |
| SHELLS_BASE = 'contrib'
 | |
| 
 | |
| def make_calibre_plugin():
 | |
|     calibre_plugin_dir = os.path.join(SHELLS_BASE, 'DeDRM_calibre_plugin')
 | |
|     core_dir = os.path.join(calibre_plugin_dir, 'DeDRM_plugin')
 | |
| 
 | |
|     shutil.copytree(DEDRM_SRC_DIR, core_dir)
 | |
|     shutil.make_archive(core_dir, 'zip', core_dir)
 | |
|     shutil.rmtree(core_dir)
 | |
| 
 | |
| 
 | |
| def make_obok_plugin():
 | |
|     obok_plugin_dir = os.path.join(SHELLS_BASE, 'Obok_calibre_plugin')
 | |
|     core_dir = os.path.join(obok_plugin_dir, 'obok_plugin')
 | |
| 
 | |
|     shutil.copytree(OBOK_SRC_DIR, core_dir)
 | |
|     shutil.make_archive(core_dir, 'zip', core_dir)
 | |
|     shutil.rmtree(core_dir)
 | |
| 
 | |
| 
 | |
| def make_windows_app():
 | |
|     windows_app_dir = os.path.join(SHELLS_BASE, 'DeDRM_Windows_Application')
 | |
|     core_dir = os.path.join(windows_app_dir, 'DeDRM_App', 'DeDRM_lib', 'lib')
 | |
| 
 | |
|     # delete any existing core_dir
 | |
|     try:
 | |
|         shutil.rmtree(core_dir)
 | |
|     except OSError:
 | |
|         pass
 | |
| 
 | |
|     shutil.copytree(DEDRM_SRC_DIR, core_dir)
 | |
| 
 | |
| 
 | |
| def make_macos_app():
 | |
|     macos_app_dir = os.path.join(SHELLS_BASE, 'DeDRM_Macintosh_Application')
 | |
|     core_dir = os.path.join(macos_app_dir, 'DeDRM.app', 'Contents', 'Resources')
 | |
| 
 | |
|     # Resources already exists - copy contents to contents.
 | |
|     _, dirs, files = next(os.walk(DEDRM_SRC_DIR))
 | |
|     for name in dirs:
 | |
|         shutil.copyfile(
 | |
|             os.path.join(DEDRM_SRC_DIR, name),
 | |
|             os.path.join(core_dir, name)
 | |
|         )
 | |
|     for name in files:
 | |
|         shutil.copy2(
 | |
|             os.path.join(DEDRM_SRC_DIR, name),
 | |
|             os.path.join(core_dir, name)
 | |
|         )
 | |
| 
 | |
| 
 | |
| def make_release(version):
 | |
|     make_calibre_plugin()
 | |
|     make_windows_app()
 | |
|     make_macos_app()
 | |
|     make_obok_plugin()
 | |
| 
 | |
|     release_name = 'DeDRM_tools_{}'.format(version)
 | |
|     return shutil.make_archive(release_name, 'zip', SHELLS_BASE)
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     import sys
 | |
|     try:
 | |
|         version = sys.argv[1]
 | |
|     except IndexError:
 | |
|         raise SystemExit('Usage: {} version'.format(__file__))
 | |
| 
 | |
|     print(make_release(version))
 | 
