1
- const remixd = require ( 'remixd' )
1
+ const remixd = require ( '@remix-project/ remixd' )
2
2
const path = require ( 'path' )
3
3
const os = require ( 'os' )
4
4
const IPFS = require ( 'ipfs' )
@@ -7,18 +7,19 @@ const IPFSGateway = require('ipfs-http-gateway')
7
7
const { version } = require ( './package.json' )
8
8
const applicationMenu = require ( './applicationMenu' )
9
9
const { app, BrowserWindow, shell } = require ( 'electron' )
10
- const { AppManager, registerPackageProtocol } = require ( '@philipplgh/ electron-app-manager' )
10
+ const { AppManager, registerPackageProtocol } = require ( 'electron-app-manager' )
11
11
12
12
const cacheDir = path . join ( os . homedir ( ) , '.cache_remix_ide' )
13
13
registerPackageProtocol ( cacheDir )
14
14
15
+ const remixIdeUrl = 'package://6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod'
16
+
15
17
console . log ( 'running' , version )
16
18
const updater = new AppManager ( {
17
19
repository : 'https://github.com/ethereum/remix-desktop' ,
18
20
auto : true ,
19
21
electron : true
20
22
} )
21
- const sharedFolderClient = new remixd . services . sharedFolder ( )
22
23
23
24
function createWindow ( ) {
24
25
let win = new BrowserWindow ( {
@@ -29,13 +30,12 @@ function createWindow () {
29
30
} ,
30
31
icon : path . join ( __dirname , 'build/icon.png' )
31
32
} )
32
- applicationMenu ( sharedFolderClient )
33
33
win . webContents . on ( 'new-window' , function ( e , url ) {
34
34
e . preventDefault ( ) ;
35
35
shell . openExternal ( url ) ;
36
36
} )
37
37
win . loadURL ( 'package://github.com/ethereum/remix-project' )
38
-
38
+
39
39
// Modify the user agent for all requests to the following urls.
40
40
const filter = {
41
41
urls : [ 'https://*.dyn.plugin.remixproject.org/ipfs/*' ]
@@ -55,7 +55,7 @@ function createWindow () {
55
55
} )
56
56
57
57
win . webContents . session . webRequest . onErrorOccurred ( ( details ) => {
58
- console . error ( details )
58
+ // console.error(details)
59
59
} )
60
60
}
61
61
@@ -65,16 +65,55 @@ app.on('ready', () => {
65
65
ipfsStart ( )
66
66
} )
67
67
68
+ let sharedFolderClient = new remixd . services . sharedFolder ( )
69
+ let gitClient = new remixd . services . GitClient ( )
70
+ const services = {
71
+ git : ( ) => {
72
+ gitClient . options . customApi = { }
73
+ return gitClient
74
+ } ,
75
+ folder : ( ) => {
76
+ sharedFolderClient . options . customApi = { }
77
+ return sharedFolderClient
78
+ }
79
+ }
80
+
81
+ applicationMenu ( ( folder ) => {
82
+ console . log ( 'set folder' , folder )
83
+ sharedFolderClient . sharedFolder ( folder , false )
84
+ sharedFolderClient . setupNotifications ( folder )
85
+ gitClient . sharedFolder ( folder , false )
86
+ } )
87
+
88
+ const ports = {
89
+ git : 65521 ,
90
+ folder : 65520
91
+ }
92
+
93
+ function startService ( service , callback ) {
94
+ try {
95
+ const socket = new remixd . Websocket ( ports [ service ] , { remixIdeUrl } , ( ) => services [ service ] ( ) )
96
+ socket . start ( callback )
97
+ } catch ( e ) {
98
+ console . error ( e )
99
+ }
100
+ }
101
+
68
102
let remixdStart = ( ) => {
69
- const remixIdeUrl = 'package://6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod'
70
103
console . log ( 'start shared folder service' )
104
+ const currentFolder = process . cwd ( )
71
105
try {
72
- const websocketHandler = new remixd . Websocket ( 65520 , { remixIdeUrl } , sharedFolderClient )
73
-
74
- websocketHandler . start ( ( ws ) => {
75
- console . log ( 'set websocket' )
76
- sharedFolderClient . setWebSocket ( ws )
106
+ startService ( 'folder' , ( ws , client ) => {
107
+ client . setWebSocket ( ws )
108
+ client . sharedFolder ( currentFolder , false )
109
+ client . setupNotifications ( currentFolder )
110
+ } )
111
+
112
+ startService ( 'git' , ( ws , client ) => {
113
+ client . setWebSocket ( ws )
114
+ client . sharedFolder ( currentFolder , false )
77
115
} )
116
+
78
117
} catch ( error ) {
79
118
throw new Error ( error )
80
119
}
0 commit comments