Skip to content

Commit

Permalink
Get default username from environment vars
Browse files Browse the repository at this point in the history
  • Loading branch information
samuelmaddock committed Feb 19, 2018
1 parent 1d9ad20 commit aaee1be
Show file tree
Hide file tree
Showing 9 changed files with 44 additions and 22 deletions.
8 changes: 7 additions & 1 deletion app/browser/platform/swarm/index.ts
@@ -1,6 +1,7 @@
import fs from 'fs-extra'
import path from 'path'
import { app, ipcMain, webContents } from 'electron'
const { productName } = require('package.json')

import log from 'browser/log'
import { keyPair, KeyPair, Key } from './crypto'
Expand All @@ -12,6 +13,7 @@ import { SimplePeer } from 'simple-peer'
import { signalRenderer } from 'browser/platform/swarm/signal'
import { NETWORK_TIMEOUT } from 'constants/network'
import { sleep } from 'utils/async'
import * as username from 'username'

function checkNativeDeps() {
try {
Expand Down Expand Up @@ -58,13 +60,17 @@ async function initIdentity() {

ipcMain.on('platform-swarm-init', async (event: Electron.Event) => {
let id
let name = (await username()) || productName
try {
id = await initIdentity()
} catch (e) {
id = ''
log.error('Failed to initialize swarm identity')
} finally {
event.returnValue = id
event.returnValue = {
id,
username: name
}
}
})

Expand Down
17 changes: 8 additions & 9 deletions app/main.dev.ts
Expand Up @@ -8,16 +8,22 @@
*/
import { app, BrowserWindow, globalShortcut, protocol } from 'electron'
import os from 'os'

import packageJson from 'package.json'
import 'browser/net'

if (process.env.NODE_ENV === 'development' || process.env.DEBUG_PROD === 'true') {
require('electron-debug')()
const path = require('path')
const p = path.join(__dirname, '..', 'app', 'node_modules')
require('module').globalPaths.push(p)
}

if (process.env.NODE_ENV === 'development') {
// Update version before running any code
// Fixes Brave overriding version
;(app as any).setVersion(packageJson.version)
}

import 'browser/net'
import { register as registerLocalShortcut } from 'electron-localshortcut'
import { join, dirname } from 'path'

Expand Down Expand Up @@ -48,13 +54,6 @@ if (process.env.NODE_ENV === 'production') {
sourceMapSupport.install()
}

if (process.env.NODE_ENV === 'development' || process.env.DEBUG_PROD === 'true') {
require('electron-debug')()
const path = require('path')
const p = path.join(__dirname, '..', 'app', 'node_modules')
require('module').globalPaths.push(p)
}

const installExtensions = async () => {
const installer = require('electron-devtools-installer')
const forceDownload = !!process.env.UPGRADE_EXTENSIONS
Expand Down
4 changes: 4 additions & 0 deletions app/renderer/network/connection.ts
Expand Up @@ -10,6 +10,10 @@ export class NetUniqueId<T = any> {
toString(): string {
return this.id + ''
}

equals(other: NetUniqueId<T>): boolean {
return this.id === other.id
}
}

abstract class NetConnection extends EventEmitter {
Expand Down
14 changes: 8 additions & 6 deletions app/renderer/platform/swarm/index.ts
Expand Up @@ -4,20 +4,22 @@ import { Platform, ILobbyOptions, ILobbySession, ILobbyData } from 'renderer/pla
import { Deferred } from 'utils/async'
import { NetUniqueId } from 'renderer/network'
import { IRTCPeerCoordinator } from 'renderer/network/rtc'
import { SwarmRTCPeerCoordinator } from 'renderer/platform/swarm/peer-coordinator';
import { SwarmRTCPeerCoordinator } from 'renderer/platform/swarm/peer-coordinator'

type SwarmId = string

export class SwarmPlatform extends Platform {
private id: NetUniqueId<SwarmId>
private username: string
private connected: boolean = false
private isHosting: boolean = false

constructor() {
super()

const swarmId = ipcRenderer.sendSync('platform-swarm-init')
this.id = new NetUniqueId<SwarmId>(swarmId)
const swarmInfo = ipcRenderer.sendSync('platform-swarm-init')
this.id = new NetUniqueId<SwarmId>(swarmInfo.id)
this.username = swarmInfo.username
}

async createLobby(opts: ILobbyOptions): Promise<boolean> {
Expand Down Expand Up @@ -79,14 +81,14 @@ export class SwarmPlatform extends Platform {

createPeerCoordinator(): IRTCPeerCoordinator {
if (!this.connected) {
throw new Error('[Swarm Platform] createPeerCoordinator: No active session.');
throw new Error('[Swarm Platform] createPeerCoordinator: No active session.')
}

return new SwarmRTCPeerCoordinator(this.isHosting);
return new SwarmRTCPeerCoordinator(this.isHosting)
}

getUserName(userId: NetUniqueId): string {
return `Swarm-${userId}`
return this.username || `Swarm-${userId}`
}

getLocalId(): NetUniqueId {
Expand Down
1 change: 1 addition & 0 deletions app/types/placeholders.d.ts
@@ -1,3 +1,4 @@
declare module 'electron-localshortcut'
declare module 'sodium-universal'
declare module 'sodium-native'
declare module 'username'
Binary file not shown.
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -198,6 +198,7 @@
"swarm-server": "git+ssh://git@github.com/samuelmaddock/swarm-server.git#0.0.4",
"typescript": "^2.5.3",
"url-loader": "^0.5.8",
"username": "^3.0.0",
"webpack": "^3.5.6",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.8.1",
Expand Down
8 changes: 5 additions & 3 deletions webpack.config.main.dev.js
Expand Up @@ -9,10 +9,12 @@ import baseConfig from './webpack.config.base';
import nodeExternals from 'webpack-node-externals';

export default merge.smart(baseConfig, {
// TODO: remove this?
externals: [nodeExternals()],
// BUG: attempts to load native modules from /node_modules and not app/node_modules
// externals: [nodeExternals()],

devtool: 'source-map',
// Speed up dev times
devtool: false,
// devtool: 'source-map',

target: 'electron-main',

Expand Down
13 changes: 10 additions & 3 deletions yarn.lock
Expand Up @@ -8233,9 +8233,9 @@ svgo@^0.7.0:
sax "~1.2.1"
whet.extend "~0.9.9"

"swarm-server@git+ssh://git@github.com/samuelmaddock/swarm-server.git#0.0.2":
version "0.0.2"
resolved "git+ssh://git@github.com/samuelmaddock/swarm-server.git#390ef69a72ca003917fc5f6d8dbabaebbcde875d"
"swarm-server@git+ssh://git@github.com/samuelmaddock/swarm-server.git#0.0.4":
version ""
resolved "git+ssh://git@github.com/samuelmaddock/swarm-server.git#f9e44c8b61fd84245312b5139b15a2a7c991db37"
dependencies:
dat-swarm-defaults "^1.0.0"
discovery-swarm "^4.4.2"
Expand Down Expand Up @@ -8675,6 +8675,13 @@ use@^2.0.0:
isobject "^3.0.0"
lazy-cache "^2.0.2"

username@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/username/-/username-3.0.0.tgz#b3dba982a72b4ce59d52f159fa1aeba266af5fc8"
dependencies:
execa "^0.7.0"
mem "^1.1.0"

utf8-byte-length@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
Expand Down

0 comments on commit aaee1be

Please sign in to comment.