pinafore/bin/wait-for-mastodon-to-start.js

42 lines
1,022 B
JavaScript
Raw Normal View History

2018-03-06 04:51:42 +00:00
import fetch from 'node-fetch'
2018-02-18 20:03:37 +00:00
2018-03-06 05:21:28 +00:00
export async function waitForMastodonUiToStart () {
2018-02-18 20:03:37 +00:00
while (true) {
try {
2018-02-19 01:28:08 +00:00
let html = await ((await fetch('http://127.0.0.1:3035/packs/common.js')).text())
2018-03-06 05:21:28 +00:00
if (html) {
break
}
} catch (err) {
console.log('Waiting for Mastodon UI to start up...')
await new Promise(resolve => setTimeout(resolve, 1000))
}
}
console.log('Mastodon UI started up')
}
export async function waitForMastodonApiToStart () {
while (true) {
try {
let json = await ((await fetch('http://127.0.0.1:3000/api/v1/instance')).json())
if (json.uri) {
2018-02-18 20:03:37 +00:00
break
}
} catch (err) {
2018-03-06 05:21:28 +00:00
console.log('Waiting for Mastodon API to start up...')
2018-02-18 20:03:37 +00:00
await new Promise(resolve => setTimeout(resolve, 1000))
}
}
2018-03-06 05:21:28 +00:00
console.log('Mastodon API started up')
2018-02-18 20:03:37 +00:00
}
if (require.main === module) {
2018-03-06 05:21:28 +00:00
Promise.all([
waitForMastodonApiToStart(),
waitForMastodonUiToStart()
]).catch(err => {
2018-02-18 20:03:37 +00:00
console.error(err)
process.exit(1)
})
2018-02-18 23:30:42 +00:00
}