UNPKG

ziti-sdk-c-nodejs

Version:

Node.js wrapper for OpenZiti C SDK

93 lines (81 loc) â€ĸ 4.25 kB
const fs = require('fs'); const path = require('path'); function copyZitiLibraries() { const platform = process.platform; const packageRoot = __dirname + '/..'; // Package root directory console.log(`🔧 Copying Ziti libraries for platform: ${platform}`); console.log(`📁 Package root: ${packageRoot}`); if (platform === 'win32') { const sourcePath = path.join(packageRoot, 'ziti-sdk-1.7.8-Windows-AMD64', 'lib', 'ziti.dll'); const targetPath = path.join(packageRoot, 'ziti.dll'); try { // Check if source exists if (!fs.existsSync(sourcePath)) { console.log(`âš ī¸ Warning: ziti.dll not found at ${sourcePath}`); return; } // Copy DLL to package root fs.copyFileSync(sourcePath, targetPath); console.log(`✅ Successfully copied ziti.dll to ${targetPath}`); // Also copy to build directory if it exists const buildPath = path.join(packageRoot, 'build', 'Release', 'ziti.dll'); const buildDir = path.dirname(buildPath); if (fs.existsSync(buildDir)) { fs.copyFileSync(sourcePath, buildPath); console.log(`✅ Successfully copied ziti.dll to build directory`); } else { console.log(`â„šī¸ Build directory not found, skipping build copy`); } } catch (error) { console.error('❌ Error copying ziti.dll:', error.message); // Don't throw error, just log it } } else if (platform === 'linux') { // Copy both static and shared libraries for Linux const staticSourcePath = path.join(packageRoot, 'ziti-sdk-1.7.8-Linux-x86_64', 'lib', 'libziti.a'); const sharedSourcePath = path.join(packageRoot, 'ziti-sdk-1.7.8-Linux-x86_64', 'lib', 'libziti.so'); const staticTargetPath = path.join(packageRoot, 'libziti.a'); const sharedTargetPath = path.join(packageRoot, 'libziti.so'); try { if (fs.existsSync(staticSourcePath)) { fs.copyFileSync(staticSourcePath, staticTargetPath); console.log(`✅ Successfully copied libziti.a to package directory`); } if (fs.existsSync(sharedSourcePath)) { fs.copyFileSync(sharedSourcePath, sharedTargetPath); console.log(`✅ Successfully copied libziti.so to package directory`); } } catch (error) { console.error('❌ Error copying Linux libraries:', error.message); // Don't throw error, just log it } } else if (platform === 'darwin') { // Copy both static and dynamic libraries for macOS const staticSourcePath = path.join(packageRoot, 'ziti-sdk-1.7.8-Darwin-arm64', 'lib', 'libziti.a'); const dynamicSourcePath = path.join(packageRoot, 'ziti-sdk-1.7.8-Darwin-arm64', 'lib', 'libziti.dylib'); const staticTargetPath = path.join(packageRoot, 'libziti.a'); const dynamicTargetPath = path.join(packageRoot, 'libziti.dylib'); try { if (fs.existsSync(staticSourcePath)) { fs.copyFileSync(staticSourcePath, staticTargetPath); console.log(`✅ Successfully copied libziti.a to package directory`); } if (fs.existsSync(dynamicSourcePath)) { fs.copyFileSync(dynamicSourcePath, dynamicTargetPath); console.log(`✅ Successfully copied libziti.dylib to package directory`); } } catch (error) { console.error('❌ Error copying macOS libraries:', error.message); // Don't throw error, just log it } } console.log('🎉 Ziti library copy process completed'); } // Run the copy function with error handling try { copyZitiLibraries(); } catch (error) { console.error('❌ Fatal error in postinstall script:', error.message); // Exit with success to prevent npm install from failing process.exit(0); }