(function () { const rsName = 'rs0'; const host = 'box-mongodb:27017'; const j = (x) => { try { return JSON.stringify(x); } catch (e) { return String(x); } }; try { const st = rs.status(); if (st && st.ok === 1) { print('[init-rs] Replica set already initialized. ok=1'); quit(0); } } catch (e) { // not initialized yet => continue } const cfg = { _id: rsName, members: [{ _id: 0, host }] }; try { const res = rs.initiate(cfg); print('[init-rs] rs.initiate:', j(res)); } catch (e) { print('[init-rs] rs.initiate error:', String(e)); } // wait for ok for (let i = 0; i < 60; i++) { try { const st2 = rs.status(); if (st2 && st2.ok === 1) { print('[init-rs] Replica set OK. status:', j(st2)); quit(0); } } catch (e) {} sleep(1000); } print('[init-rs] Replica set NOT OK after timeout'); quit(1); })();