Skip to content

Commit abf463d

Browse files
committed
[ multiple identities ] fixing first run without default identity
1 parent 2eb61d6 commit abf463d

2 files changed

Lines changed: 29 additions & 1 deletion

File tree

lib/identities.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@ const minimalConfig = {
1515
name: "Untitled Identity",
1616
};
1717

18+
function createDefaultIdentity() {
19+
const appName = process.env.ssb_appname || "ssb";
20+
const defaultIdentityPath = path.join(os.homedir(), "." + appName, "secret");
21+
22+
if (!fs.existsSync(defaultIdentityPath)) {
23+
fs.ensureDirSync(path.basename(defaultIdentityPath))
24+
const defaultKeys = ssbKeys.loadOrCreateSync(defaultIdentityPath);
25+
}
26+
}
27+
1828
function getDefaultIdentity() {
1929
const appName = process.env.ssb_appname || "ssb";
2030
const defaultIdentityPath = path.join(os.homedir(), "." + appName, "secret");
@@ -264,4 +274,5 @@ module.exports = {
264274
set,
265275
importFromKeys,
266276
importFromWords,
277+
createDefaultIdentity,
267278
};

multiple-identities-entrypoint.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,16 @@ const {
3131
} = require("./lib/app-lifecycle.js");
3232
const Identities = require("./lib/identities.js");
3333

34+
if (process.defaultApp) {
35+
if (process.argv.length >= 2) {
36+
electron.app.setAsDefaultProtocolClient("ssb", process.execPath, [
37+
Path.resolve(process.argv[1]),
38+
]);
39+
}
40+
} else {
41+
electron.app.setAsDefaultProtocolClient("ssb");
42+
}
43+
3444
quitIfAlreadyRunning();
3545

3646
const config = {
@@ -54,7 +64,14 @@ electron.app.on("ready", () => {
5464
) {
5565
openIdentitiesManager();
5666
} else {
57-
const identities = Identities.list();
67+
let identities = Identities.list();
68+
69+
if (identities.length === 0) {
70+
console.log(`No identities, oops...`)
71+
Identities.createDefaultIdentity()
72+
console.log(`Default identity created!`)
73+
identities = Identities.list();
74+
}
5875

5976
for (const identity of identities) {
6077
const configuration = Identities.configurationForIdentity(

0 commit comments

Comments
 (0)