mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 04:51:31 +08:00 
			
		
		
		
	chore(sign): clean up
This commit is contained in:
		
							parent
							
								
									385182cd97
								
							
						
					
					
						commit
						04ed9c0155
					
				
							
								
								
									
										7
									
								
								.github/workflows/nightly.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/workflows/nightly.yml
									
									
									
									
										vendored
									
									
								
							| @ -87,13 +87,6 @@ jobs: | |||||||
|           tag_name: nightly |           tag_name: nightly | ||||||
|           name: Nightly Build |           name: Nightly Build | ||||||
| 
 | 
 | ||||||
|       - name: Publish artifacts |  | ||||||
|         uses: actions/upload-artifact@v4 |  | ||||||
|         if: always() |  | ||||||
|         with: |  | ||||||
|           name: signing ${{ matrix.os.name }} ${{ matrix.arch }} |  | ||||||
|           path: apps/desktop/electron-forge/sign |  | ||||||
| 
 |  | ||||||
|       - name: Publish artifacts |       - name: Publish artifacts | ||||||
|         uses: actions/upload-artifact@v4 |         uses: actions/upload-artifact@v4 | ||||||
|         if: ${{ github.event_name == 'pull_request' }} |         if: ${{ github.event_name == 'pull_request' }} | ||||||
|  | |||||||
| @ -1,75 +1,35 @@ | |||||||
| const child_process = require("child_process"); | const child_process = require("child_process"); | ||||||
| const { default: e } = require("express"); |  | ||||||
| const fs = require("fs"); | const fs = require("fs"); | ||||||
| const path = require("path"); | const path = require("path"); | ||||||
| 
 | 
 | ||||||
| const LOG_LOCATION = "c:\\ev_signer_trilium\\ev_signer_trilium.err.log"; | function sign(sourcePath) { | ||||||
| 
 |  | ||||||
| module.exports = function (sourcePath) { |  | ||||||
|     const { WINDOWS_SIGN_EXECUTABLE } = process.env; |     const { WINDOWS_SIGN_EXECUTABLE } = process.env; | ||||||
|     if (!WINDOWS_SIGN_EXECUTABLE) { |     if (!WINDOWS_SIGN_EXECUTABLE) { | ||||||
|         console.warn("[Sign] Skip signing due to missing environment variable."); |         console.warn("[Sign] Skip signing due to missing environment variable."); | ||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     const outputDir = path.join(__dirname, "sign"); |  | ||||||
|     if (!fs.existsSync(outputDir)) { |  | ||||||
|       fs.mkdirSync(outputDir); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     try { |     try { | ||||||
|         const destPath = path.join(outputDir, path.basename(sourcePath)); |  | ||||||
|         fs.copyFileSync(sourcePath, destPath); |  | ||||||
|         const command = `${WINDOWS_SIGN_EXECUTABLE} --executable "${sourcePath}"`; |         const command = `${WINDOWS_SIGN_EXECUTABLE} --executable "${sourcePath}"`; | ||||||
|         console.log(`[Sign] ${command}`); |         console.log(`[Sign] ${command}`); | ||||||
| 
 |  | ||||||
|         child_process.execSync(command); |         child_process.execSync(command); | ||||||
|     } catch (e) { |     } catch (e) { | ||||||
|         console.error("[Sign] Got error while signing " + e.output.toString("utf-8")); |         console.error("[Sign] Got error while signing " + e.output.toString("utf-8")); | ||||||
|         printSigningErrorLogs(sourcePath); |         printSigningErrorLogs(); | ||||||
|         process.exit(2);  |         process.exit(2);  | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function printSigningErrorLogs(sourcePath) { | function printSigningErrorLogs() { | ||||||
|   const buffer = fs.readFileSync(sourcePath); |   const logLocation = path.join(path.dirname(WINDOWS_SIGN_EXECUTABLE), "ev_signer_trilium.err.log"); | ||||||
|   console.log("Platform: ", process.platform); |  | ||||||
|   console.log("CPU archi:", process.arch); |  | ||||||
|   console.log("DLL archi: ", getDllArchitectureFromBuffer(buffer)); |  | ||||||
| 
 | 
 | ||||||
|   if (!fs.existsSync(LOG_LOCATION)) { |   if (!fs.existsSync(logLocation)) { | ||||||
|     console.warn("[Sign] No debug log file found."); |     console.warn("[Sign] No debug log file found."); | ||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   const logContent = fs.readFileSync(LOG_LOCATION, "utf-8"); |   const logContent = fs.readFileSync(logLocation, "utf-8"); | ||||||
|   console.error("[Sign] Debug log content:\n" + logContent); |   console.error("[Sign] Debug log content:\n" + logContent); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function getDllArchitectureFromBuffer(buffer) { | module.exports = sign; | ||||||
|     // Check for MZ header
 |  | ||||||
|     if (buffer[0] !== 0x4D || buffer[1] !== 0x5A) { |  | ||||||
|       return 'Not a PE file (missing MZ header)'; |  | ||||||
|     } |  | ||||||
|    |  | ||||||
|     // Offset to PE header
 |  | ||||||
|     const peHeaderOffset = buffer.readUInt32LE(0x3C); |  | ||||||
|    |  | ||||||
|     // Confirm PE signature
 |  | ||||||
|     const peSig = buffer.toString('utf8', peHeaderOffset, peHeaderOffset + 4); |  | ||||||
|     if (peSig !== 'PE\u0000\u0000') { |  | ||||||
|       return 'Invalid PE header'; |  | ||||||
|     } |  | ||||||
|    |  | ||||||
|     // Machine field is 2 bytes at PE header + 4
 |  | ||||||
|     const machine = buffer.readUInt16LE(peHeaderOffset + 4); |  | ||||||
|    |  | ||||||
|     const archMap = { |  | ||||||
|       0x014c: 'x86 (32-bit)', |  | ||||||
|       0x8664: 'x64 (64-bit)', |  | ||||||
|       0x01c4: 'ARM (32-bit)', |  | ||||||
|       0xaa64: 'ARM64', |  | ||||||
|     }; |  | ||||||
|    |  | ||||||
|     return archMap[machine] || `Unknown (0x${machine.toString(16)})`; |  | ||||||
|   } |  | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Elian Doran
						Elian Doran