Skip to content
This repository was archived by the owner on May 23, 2024. It is now read-only.

Commit 22925bf

Browse files
authored
Merge pull request #98 from ethereum/fixremixd
Fixremixd
2 parents d502e8d + 0d460f3 commit 22925bf

File tree

6 files changed

+5235
-1951
lines changed

6 files changed

+5235
-1951
lines changed

.circleci/config.yml

+6-4
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,15 @@ aliases:
2525
# run: node --version && yarn install
2626

2727
- &install
28-
run: node --version && npm install
28+
run: node --version && yarn
2929

3030
- &test_e2e
3131
run: yarn test:e2e -s
3232

3333
- &run_script
3434
run:
3535
name: "Building app (deploy if on master)"
36+
no_output_timeout: 30m
3637
command: |
3738
if [[ "${CIRCLE_BRANCH}" == 'master' ]]; then
3839
yarn release --$GRID_ENV;
@@ -58,23 +59,24 @@ aliases:
5859
jobs:
5960
build:
6061
docker:
61-
- image: electronuserland/builder:10
62+
- image: electronuserland/builder:14
6263
environment:
6364
GRID_ENV: linux
6465
working_directory: ~/repo
6566
<<: *run_steps
6667

6768
build-win:
6869
docker:
69-
- image: electronuserland/builder:wine-01.19
70+
- image: electronuserland/builder:wine
7071
environment:
7172
GRID_ENV: win
7273
working_directory: ~/repo
7374
<<: *run_steps
7475

7576
build-mac:
77+
resource_class: xlarge
7678
macos:
77-
xcode: '10.0'
79+
xcode: 13.1.0
7880
environment:
7981
GRID_ENV: mac
8082
working_directory: ~/repo

applicationMenu.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const {Menu, shell, app} = require('electron')
2-
const os = require('os')
2+
const config = require('./config')
33
const selectFolder = require('./selectFolder')
44

55
module.exports = (outdatedVersion, sharedFolderClient) => {
@@ -31,6 +31,7 @@ const template = [
3131
click: async () => {
3232
selectFolder().then((folder) => {
3333
sharedFolderClient(folder)
34+
config.write({sharedFolder:folder})
3435
}).catch(console.log)
3536
}
3637
},

config.js

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
const fs = require('fs')
2+
const os = require('os')
3+
const path = require('path')
4+
5+
const cacheDir = path.join(os.homedir(), '.cache_remix_ide')
6+
const write = (data) => {
7+
const cache = read()
8+
try {
9+
fs.writeFileSync(cacheDir + '/config.json', JSON.stringify({...cache, ...data}))
10+
} catch (e) {
11+
console.error('Can\'t write config file', e)
12+
}
13+
}
14+
15+
const read = () => {
16+
if(fs.existsSync(cacheDir + '/config.json')){
17+
try {
18+
const data = JSON.parse(fs.readFileSync(cacheDir + '/config.json'))
19+
return data
20+
}catch(e){
21+
console.error('Can\'t read config file', e)
22+
}
23+
}
24+
return undefined
25+
}
26+
27+
exports.write = write
28+
exports.read = read

main.js

+20-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
const fs = require('fs')
2-
const remixd = require('@remix-project/remixd')
3-
const utils = remixd.utils
2+
const remixd = require('@remix-project/remixd/src')
43
const path = require('path')
54
const os = require('os')
65
const fetch = require('node-fetch')
76
const semver = require('semver')
87
const IPFS = require('ipfs')
8+
const config = require('./config')
99
const IPFSGateway = require('ipfs-http-gateway')
1010

1111
const { version } = require('./package.json')
@@ -132,24 +132,37 @@ function startService (service, callback) {
132132
}
133133
}
134134

135+
// return either current folder in client, or the one in cache or by default the os homedir
136+
function getFolder(client) {
137+
if(client.currentSharedFolder) return client.currentSharedFolder
138+
const cache = config.read()
139+
if(cache){
140+
try {
141+
const folder = cache.sharedFolder
142+
if(fs.existsSync(folder)) return folder
143+
}catch(e){
144+
}
145+
}
146+
return os.homedir()
147+
}
148+
135149
let remixdStart = () => {
136150
console.log('start shared folder service')
137-
const currentFolder = process.cwd()
138151
try {
139152
startService('folder', (ws, client) => {
140153
client.setWebSocket(ws)
141-
client.sharedFolder(currentFolder)
142-
client.setupNotifications(currentFolder)
154+
client.sharedFolder(getFolder(client))
155+
client.setupNotifications(getFolder(client))
143156
})
144157

145158
startService('slither', (ws, client) => {
146159
client.setWebSocket(ws)
147-
client.sharedFolder(currentFolder)
160+
client.sharedFolder(getFolder(client))
148161
})
149162

150163
startService('hardhat', (ws, client) => {
151164
client.setWebSocket(ws)
152-
client.sharedFolder(currentFolder)
165+
client.sharedFolder(getFolder(client))
153166
})
154167

155168
} catch (error) {

package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "1.3.2",
2+
"version": "1.3.3",
33
"name": "remix-ide",
44
"description": "Remix - Ethereum IDE",
55
"main": "main.js",
@@ -34,6 +34,7 @@
3434
"selectFolder.js",
3535
"setFolder.js",
3636
"applicationMenu.js",
37+
"config.js",
3738
"build/icon.png",
3839
"*.asar",
3940
"*.zip"
@@ -71,7 +72,7 @@
7172
}
7273
},
7374
"dependencies": {
74-
"@remix-project/remixd": "^0.5.0",
75+
"@remix-project/remixd": "^0.5.5",
7576
"electron-app-manager": "0.57.0",
7677
"ipfs": "^0.52.2",
7778
"ipfs-http-gateway": "^0.1.3",

0 commit comments

Comments
 (0)