1+ #!/usr/bin/env node
2+
3+ const fs = require ( 'fs' ) ;
4+ const path = require ( 'path' ) ;
5+ const { execSync } = require ( 'child_process' ) ;
6+
7+ const packageRoot = path . join ( __dirname , '..' ) ;
8+ const currentDir = process . cwd ( ) ;
9+
10+ function copyFiles ( ) {
11+ const filesToCopy = [ 'src' , 'scheduleWorkflow.ts' , 'tsconfig.json' ] ;
12+ filesToCopy . forEach ( file => {
13+ fs . cpSync ( path . join ( packageRoot , file ) , path . join ( currentDir , file ) , { recursive : true } ) ;
14+ } ) ;
15+
16+ // Copy package.json separately and modify it
17+ const packageJson = require ( path . join ( packageRoot , 'package.json' ) ) ;
18+ delete packageJson . bin ;
19+ delete packageJson . files ;
20+ fs . writeFileSync ( path . join ( currentDir , 'package.json' ) , JSON . stringify ( packageJson , null , 2 ) ) ;
21+ }
22+
23+ function installDependencies ( ) {
24+ console . log ( 'Installing dependencies...' ) ;
25+ execSync ( 'npm install' , { stdio : 'inherit' , cwd : currentDir } ) ;
26+ }
27+
28+ function main ( ) {
29+ console . log ( 'Creating Restack get-started project...' ) ;
30+ copyFiles ( ) ;
31+ installDependencies ( ) ;
32+ console . log ( 'Project created successfully!' ) ;
33+ console . log ( 'To start the service, run: npm run service' ) ;
34+ console . log ( 'To schedule a workflow, run: npm run schedule' ) ;
35+ }
36+
37+ main ( ) ;
0 commit comments