UNPKG

filecoin-pin

Version:

IPFS Pinning Service API implementation that pins to Filecoin's PDP service

58 lines (55 loc) 2.13 kB
#!/usr/bin/env node import process from 'node:process'; import { readFileSync } from 'node:fs'; import { fileURLToPath } from 'node:url'; import { dirname, join } from 'node:path'; import { daemon } from './index.js'; // Get package.json for version info const filename = fileURLToPath(import.meta.url); const dirname_ = dirname(filename); const packageJson = JSON.parse(readFileSync(join(dirname_, '../package.json'), 'utf-8')); const command = process.argv[2]; const showHelp = () => { console.log(` filecoin-pin - IPFS Pinning Service API with Filecoin storage Usage: filecoin-pin daemon Start the pinning service daemon filecoin-pin version Show version information filecoin-pin help Show this help message Environment Variables: PRIVATE_KEY Private key for Filecoin transactions (required) PORT API server port (default: 3456) HOST API server host (default: localhost) RPC_URL Filecoin RPC endpoint (default: calibration testnet) DATABASE_PATH SQLite database location (default: {config}/pins.db) CAR_STORAGE_PATH Temporary CAR file directory (default: {config}/cars) LOG_LEVEL Log level (default: info) PANDORA_ADDRESS Override Pandora contract address (optional) Examples: PRIVATE_KEY=0x... filecoin-pin daemon PORT=8080 PRIVATE_KEY=0x... RPC_URL=wss://... filecoin-pin daemon `); }; switch (command) { case 'daemon': case undefined: // Default to daemon if no command specified daemon({ service: packageJson.name, version: packageJson.version }).catch((error) => { console.error('Unhandled error:', error); process.exit(1); }); break; case 'version': console.log(`${packageJson.name} v${packageJson.version}`); break; case 'help': case '--help': case '-h': showHelp(); break; default: console.error(`Unknown command: ${String(command)}`); console.error('Run "filecoin-pin help" for usage information'); process.exit(1); } //# sourceMappingURL=cli.js.map