1- const remixd = require ( 'remixd' )
1+ const remixd = require ( '@remix-project/ remixd' )
22const path = require ( 'path' )
33const os = require ( 'os' )
44const IPFS = require ( 'ipfs' )
@@ -7,18 +7,19 @@ const IPFSGateway = require('ipfs-http-gateway')
77const { version } = require ( './package.json' )
88const applicationMenu = require ( './applicationMenu' )
99const { app, BrowserWindow, shell } = require ( 'electron' )
10- const { AppManager, registerPackageProtocol } = require ( '@philipplgh/ electron-app-manager' )
10+ const { AppManager, registerPackageProtocol } = require ( 'electron-app-manager' )
1111
1212const cacheDir = path . join ( os . homedir ( ) , '.cache_remix_ide' )
1313registerPackageProtocol ( cacheDir )
1414
15+ const remixIdeUrl = 'package://6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod'
16+
1517console . log ( 'running' , version )
1618const updater = new AppManager ( {
1719 repository : 'https://github.com/ethereum/remix-desktop' ,
1820 auto : true ,
1921 electron : true
2022} )
21- const sharedFolderClient = new remixd . services . sharedFolder ( )
2223
2324function createWindow ( ) {
2425 let win = new BrowserWindow ( {
@@ -29,13 +30,12 @@ function createWindow () {
2930 } ,
3031 icon : path . join ( __dirname , 'build/icon.png' )
3132 } )
32- applicationMenu ( sharedFolderClient )
3333 win . webContents . on ( 'new-window' , function ( e , url ) {
3434 e . preventDefault ( ) ;
3535 shell . openExternal ( url ) ;
3636 } )
3737 win . loadURL ( 'package://github.com/ethereum/remix-project' )
38-
38+
3939 // Modify the user agent for all requests to the following urls.
4040 const filter = {
4141 urls : [ 'https://*.dyn.plugin.remixproject.org/ipfs/*' ]
@@ -55,7 +55,7 @@ function createWindow () {
5555 } )
5656
5757 win . webContents . session . webRequest . onErrorOccurred ( ( details ) => {
58- console . error ( details )
58+ // console.error(details)
5959 } )
6060}
6161
@@ -65,16 +65,55 @@ app.on('ready', () => {
6565 ipfsStart ( )
6666} )
6767
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+
68102let remixdStart = ( ) => {
69- const remixIdeUrl = 'package://6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod'
70103 console . log ( 'start shared folder service' )
104+ const currentFolder = process . cwd ( )
71105 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 )
77115 } )
116+
78117 } catch ( error ) {
79118 throw new Error ( error )
80119 }
0 commit comments