Skip to content

Commit aad1405

Browse files
committed
Testing support for linux
1 parent 9187ed0 commit aad1405

File tree

1 file changed

+32
-15
lines changed

1 file changed

+32
-15
lines changed

src/index.ts

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,16 @@ const FILEPATH_PREFIX = `${cwd()}/node_modules/.cache/@shelf/postgres-local`;
1212

1313
type StartESOptions = {
1414
seedPath?: string;
15-
version?: string;
15+
version?: number;
1616
};
1717

1818
export async function start(options: StartESOptions): Promise<string> {
19-
const {seedPath, version = '14'} = options;
19+
const {seedPath, version = 14} = options;
2020

2121
const url = 'postgres://localhost:5432/postgres';
2222

2323
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));
3025

3126
debug('Connecting to postgres...');
3227
const sql = postgres(url);
@@ -46,17 +41,19 @@ export async function start(options: StartESOptions): Promise<string> {
4641
}
4742
}
4843

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));
5446
}
5547

56-
export function getInstallationScript(version: string): string {
48+
export function getInstallationScript(version: number): string {
5749
switch (platform()) {
5850
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+
`;
6057
}
6158
case 'win32': {
6259
throw new Error('Unsupported OS, try run on OS X or Linux');
@@ -65,6 +62,26 @@ export function getInstallationScript(version: string): string {
6562
return `
6663
apt-get update
6764
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}
6885
`;
6986
}
7087
}

0 commit comments

Comments
 (0)