forked from cybrespace/pinafore
parent
15b51bb3eb
commit
7b92f894a4
|
@ -21,8 +21,7 @@ OTP_SECRET=foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoo
|
||||||
|
|
||||||
const mastodonDir = path.join(dir, '../mastodon')
|
const mastodonDir = path.join(dir, '../mastodon')
|
||||||
|
|
||||||
let railsChildProc
|
let childProc
|
||||||
let webpackChildProc
|
|
||||||
|
|
||||||
async function cloneMastodon () {
|
async function cloneMastodon () {
|
||||||
try {
|
try {
|
||||||
|
@ -55,6 +54,7 @@ async function runMastodon () {
|
||||||
console.log('Running mastodon...')
|
console.log('Running mastodon...')
|
||||||
let cmds = [
|
let cmds = [
|
||||||
'gem install bundler',
|
'gem install bundler',
|
||||||
|
'gem install foreman',
|
||||||
'bundle install',
|
'bundle install',
|
||||||
'yarn --pure-lockfile'
|
'yarn --pure-lockfile'
|
||||||
]
|
]
|
||||||
|
@ -63,19 +63,11 @@ async function runMastodon () {
|
||||||
console.log(cmd)
|
console.log(cmd)
|
||||||
await exec(cmd, {cwd: mastodonDir})
|
await exec(cmd, {cwd: mastodonDir})
|
||||||
}
|
}
|
||||||
|
const promise = spawn('foreman', ['start'], {cwd: mastodonDir})
|
||||||
const log = fs.createWriteStream('mastodon.log', {flags: 'a'})
|
const log = fs.createWriteStream('mastodon.log', {flags: 'a'})
|
||||||
|
childProc = promise.childProcess
|
||||||
railsChildProc = spawn(
|
childProc.stdout.pipe(log)
|
||||||
'bundle', ['exec', 'rails', 'server'], {cwd: mastodonDir}
|
childProc.stderr.pipe(log)
|
||||||
).childProcess
|
|
||||||
railsChildProc.stdout.pipe(log)
|
|
||||||
railsChildProc.stderr.pipe(log)
|
|
||||||
|
|
||||||
webpackChildProc = spawn(
|
|
||||||
'./bin/webpack-dev-server', [], {cwd: mastodonDir}
|
|
||||||
).childProcess
|
|
||||||
webpackChildProc.stdout.pipe(log)
|
|
||||||
webpackChildProc.stderr.pipe(log)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function main () {
|
async function main () {
|
||||||
|
@ -87,14 +79,10 @@ async function main () {
|
||||||
await waitForMastodonUiToStart()
|
await waitForMastodonUiToStart()
|
||||||
}
|
}
|
||||||
|
|
||||||
function shutdownMastodon () {
|
function shutdownMastodon() {
|
||||||
if (railsChildProc) {
|
if (childProc) {
|
||||||
console.log('killing rails child process')
|
console.log('killing child process')
|
||||||
railsChildProc.kill()
|
childProc.kill()
|
||||||
}
|
|
||||||
if (webpackChildProc) {
|
|
||||||
console.log('killing webpack child process')
|
|
||||||
webpackChildProc.kill()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ if (require.main === module) {
|
||||||
Promise.resolve()
|
Promise.resolve()
|
||||||
.then(waitForMastodonApiToStart)
|
.then(waitForMastodonApiToStart)
|
||||||
.then(waitForMastodonUiToStart).catch(err => {
|
.then(waitForMastodonUiToStart).catch(err => {
|
||||||
console.error(err)
|
console.error(err)
|
||||||
process.exit(1)
|
process.exit(1)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue