53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | #!/usr/bin/env node | ||
|  | 
 | ||
|  | const { spawnSync } = require('child_process'); | ||
|  | 
 | ||
|  | const commands = { | ||
|  |   migrate: { | ||
|  |     description: 'Run migrations to update to the latest major SDK version', | ||
|  |     fn: () => { | ||
|  |       const result = spawnSync( | ||
|  |         'npx', | ||
|  |         [ | ||
|  |           '-y', | ||
|  |           'https://github.com/stainless-api/migrate-ts/releases/download/0.0.3/stainless-api-migrate-0.0.3.tgz', | ||
|  |           '--migrationConfig', | ||
|  |           require.resolve('./migration-config.json'), | ||
|  |           ...process.argv.slice(3), | ||
|  |         ], | ||
|  |         { stdio: 'inherit' }, | ||
|  |       ); | ||
|  |       if (result.status !== 0) { | ||
|  |         process.exit(result.status); | ||
|  |       } | ||
|  |     }, | ||
|  |   }, | ||
|  | }; | ||
|  | 
 | ||
|  | function exitWithHelp() { | ||
|  |   console.log(`Usage: openai <subcommand>`); | ||
|  |   console.log(); | ||
|  |   console.log('Subcommands:'); | ||
|  | 
 | ||
|  |   for (const [name, info] of Object.entries(commands)) { | ||
|  |     console.log(`  ${name}  ${info.description}`); | ||
|  |   } | ||
|  | 
 | ||
|  |   console.log(); | ||
|  |   process.exit(1); | ||
|  | } | ||
|  | 
 | ||
|  | if (process.argv.length < 3) { | ||
|  |   exitWithHelp(); | ||
|  | } | ||
|  | 
 | ||
|  | const commandName = process.argv[2]; | ||
|  | 
 | ||
|  | const command = commands[commandName]; | ||
|  | if (!command) { | ||
|  |   console.log(`Unknown subcommand ${commandName}.`); | ||
|  |   exitWithHelp(); | ||
|  | } | ||
|  | 
 | ||
|  | command.fn(); |