@@ -12,21 +12,16 @@ const FILEPATH_PREFIX = `${cwd()}/node_modules/.cache/@shelf/postgres-local`;
12
12
13
13
type StartESOptions = {
14
14
seedPath ?: string ;
15
- version ?: string ;
15
+ version ?: number ;
16
16
} ;
17
17
18
18
export async function start ( options : StartESOptions ) : Promise < string > {
19
- const { seedPath, version = '14' } = options ;
19
+ const { seedPath, version = 14 } = options ;
20
20
21
21
const url = 'postgres://localhost:5432/postgres' ;
22
22
23
23
try {
24
- await asyncExec ( `
25
- ${ getInstallationScript ( version ) }
26
- mkdir ${ FILEPATH_PREFIX } /data;
27
- initdb -D ${ FILEPATH_PREFIX } /data;
28
- pg_ctl -D ${ FILEPATH_PREFIX } /data -l logfile start;
29
- ` ) ;
24
+ await asyncExec ( getInstallationScript ( version ) ) ;
30
25
31
26
debug ( 'Connecting to postgres...' ) ;
32
27
const sql = postgres ( url ) ;
@@ -46,17 +41,19 @@ export async function start(options: StartESOptions): Promise<string> {
46
41
}
47
42
}
48
43
49
- export async function stop ( ) : Promise < { stdout : string ; stderr : string } > {
50
- return asyncExec ( `
51
- pg_ctl stop -D ${ FILEPATH_PREFIX } /data
52
- rm -rf ${ FILEPATH_PREFIX }
53
- ` ) ;
44
+ export async function stop ( version ?: string ) : Promise < { stdout : string ; stderr : string } > {
45
+ return asyncExec ( getStopScript ( version ) ) ;
54
46
}
55
47
56
- export function getInstallationScript ( version : string ) : string {
48
+ export function getInstallationScript ( version : number ) : string {
57
49
switch ( platform ( ) ) {
58
50
case 'darwin' : {
59
- return `brew install postgresql@${ version } ` ;
51
+ return `
52
+ brew install postgresql@${ version }
53
+ mkdir -p ${ FILEPATH_PREFIX } /data;
54
+ initdb -D ${ FILEPATH_PREFIX } /data;
55
+ pg_ctl -D ${ FILEPATH_PREFIX } /data -l logfile start;
56
+ ` ;
60
57
}
61
58
case 'win32' : {
62
59
throw new Error ( 'Unsupported OS, try run on OS X or Linux' ) ;
@@ -65,6 +62,26 @@ export function getInstallationScript(version: string): string {
65
62
return `
66
63
apt-get update
67
64
apt-get install -y postgresql-${ version }
65
+ mkdir -p ${ FILEPATH_PREFIX } /data;
66
+ /usr/lib/postgresql/${ version } /bin/initdb -D ${ FILEPATH_PREFIX } /data;
67
+ /usr/lib/postgresql/${ version } /bin/pg_ctl -D ${ FILEPATH_PREFIX } /data -l logfile start;
68
+ ` ;
69
+ }
70
+ }
71
+ }
72
+
73
+ export function getStopScript ( version ?: string ) : string {
74
+ switch ( platform ( ) ) {
75
+ case 'darwin' : {
76
+ return `
77
+ pg_ctl stop -D ${ FILEPATH_PREFIX } /data
78
+ rm -rf ${ FILEPATH_PREFIX }
79
+ ` ;
80
+ }
81
+ default : {
82
+ return `
83
+ /usr/lib/postgresql/${ version } /bin/pg_ctl -D ${ FILEPATH_PREFIX } /data
84
+ rm -rf ${ FILEPATH_PREFIX }
68
85
` ;
69
86
}
70
87
}
0 commit comments