Skip to content

Commit db8a85f

Browse files
authored
Merge pull request #53 from arduino/bugfix/windows-path
Bugfix/windows path
2 parents 15eb66b + 07e0d7a commit db8a85f

File tree

5 files changed

+198
-126
lines changed

5 files changed

+198
-126
lines changed

index.js

+11-15
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ function ilistFolder(folder, filesOnly) {
4040
return files
4141
}
4242

43-
4443
// LOCAL FILE SYSTEM ACCESS
4544
ipcMain.handle('open-folder', async (event) => {
4645
console.log('ipcMain', 'open-folder')
@@ -64,16 +63,14 @@ ipcMain.handle('ilist-files', async (event, folder) => {
6463
return ilistFolder(folder)
6564
})
6665

67-
ipcMain.handle('load-file', (event, folder, filename) => {
68-
console.log('ipcMain', 'load-file', folder, filename )
69-
let filePath = path.resolve(folder, filename)
66+
ipcMain.handle('load-file', (event, filePath) => {
67+
console.log('ipcMain', 'load-file', filePath)
7068
let content = fs.readFileSync(filePath)
7169
return content
7270
})
7371

74-
ipcMain.handle('save-file', (event, folder, filename, content) => {
75-
console.log('ipcMain', 'save-file', folder, filename, content)
76-
let filePath = path.resolve(folder, filename)
72+
ipcMain.handle('save-file', (event, filePath, content) => {
73+
console.log('ipcMain', 'save-file', filePath, content)
7774
fs.writeFileSync(filePath, content, 'utf8')
7875
return true
7976
})
@@ -89,21 +86,20 @@ ipcMain.handle('update-folder', (event, folder) => {
8986
return { folder, files }
9087
})
9188

92-
ipcMain.handle('remove-file', (event, folder, filename) => {
93-
console.log('ipcMain', 'remove-file', folder, filename)
94-
let filePath = path.resolve(folder, filename)
89+
ipcMain.handle('remove-file', (event, filePath) => {
90+
console.log('ipcMain', 'remove-file', filePath)
9591
fs.unlinkSync(filePath)
9692
return true
9793
})
9894

99-
ipcMain.handle('rename-file', (event, folder, filename, newFilename) => {
100-
console.log('ipcMain', 'rename-file', folder, filename, newFilename)
101-
let filePath = path.resolve(folder, filename)
102-
let newFilePath = path.resolve(folder, newFilename)
95+
ipcMain.handle('rename-file', (event, filePath, newFilePath) => {
96+
console.log('ipcMain', 'rename-file', filePath, newFilePath)
10397
fs.renameSync(filePath, newFilePath)
104-
return newFilename
98+
return true
10599
})
106100

101+
// WINDOW MANAGEMENT
102+
107103
ipcMain.handle('set-window-size', (event, minWidth, minHeight) => {
108104
console.log('ipcMain', 'set-window-size', minWidth, minHeight)
109105
if (!win) {

package-lock.json

+27-27
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

preload.js

+31-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
console.log('preload')
22
const { contextBridge, ipcRenderer } = require('electron')
3+
const path = require('path')
34

45
const Micropython = require('micropython.js')
56
const board = new Micropython()
@@ -53,14 +54,12 @@ const Serial = {
5354
saveFileContent: async (filename, content, dataConsumer) => {
5455
return board.fs_save(content || ' ', filename, dataConsumer)
5556
},
56-
uploadFile: async (diskFolder, serialFolder, filename, dataConsumer) => {
57-
let src = `${diskFolder}/${filename}`
58-
let dest = `${serialFolder}/${filename}`
57+
uploadFile: async (src, dest, dataConsumer) => {
5958
return board.fs_put(src, dest, dataConsumer)
6059
},
61-
downloadFile: async (serialFolder, diskFolder, filename) => {
62-
let contents = await Serial.loadFile(`${serialFolder}/${filename}`)
63-
return ipcRenderer.invoke('save-file', diskFolder, filename, contents)
60+
downloadFile: async (src, dest) => {
61+
let contents = await Serial.loadFile(src)
62+
return ipcRenderer.invoke('save-file', dest, contents)
6463
},
6564
renameFile: async (oldName, newName) => {
6665
return board.fs_rename(oldName, newName)
@@ -73,6 +72,15 @@ const Serial = {
7372
},
7473
exit_raw_repl: async () => {
7574
return board.exit_raw_repl()
75+
},
76+
getNavigationPath: (navigation, target) => {
77+
return [navigation, target].filter(p => p).join('/')
78+
},
79+
getFullPath: (root, navigation, file) => {
80+
return root + [navigation, file].filter(p => p).join('/')
81+
},
82+
getParentPath: (filePath) => {
83+
return filePath.split('/').slice(0, -1).join('/')
7684
}
7785
}
7886

@@ -86,18 +94,27 @@ const Disk = {
8694
ilistFiles: async (folder) => {
8795
return ipcRenderer.invoke('ilist-files', folder)
8896
},
89-
loadFile: async (folder, file) => {
90-
let content = await ipcRenderer.invoke('load-file', folder, file)
97+
loadFile: async (filePath) => {
98+
let content = await ipcRenderer.invoke('load-file', filePath)
9199
return new TextDecoder().decode(content)
92100
},
93-
removeFile: async (folder, file) => {
94-
return ipcRenderer.invoke('remove-file', folder, file)
101+
removeFile: async (filePath) => {
102+
return ipcRenderer.invoke('remove-file', filePath)
103+
},
104+
saveFileContent: async (filePath, content) => {
105+
return ipcRenderer.invoke('save-file', filePath, content)
106+
},
107+
renameFile: async (oldName, newName) => {
108+
return ipcRenderer.invoke('rename-file', oldName, newName)
109+
},
110+
getNavigationPath: (navigation, target) => {
111+
return path.join(navigation, target)
95112
},
96-
saveFileContent: async (folder, file, content) => {
97-
return ipcRenderer.invoke('save-file', folder, file, content)
113+
getFullPath: (root, navigation, file) => {
114+
return path.resolve(path.join(root, navigation, file))
98115
},
99-
renameFile: async (folder, oldName, newName) => {
100-
return ipcRenderer.invoke('rename-file', folder, oldName, newName)
116+
getParentPath: (navigation) => {
117+
return path.dirname(navigation)
101118
}
102119
}
103120

ui/arduino/components/panel_files.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ function PanelFiles(state, emit) {
8484
<div class="path">
8585
${state.isConnected ? Icon('icons/Connect.svg') : Icon('icons/Disconnect.svg')}
8686
<a class="full" href="#" onclick=${() => emit('open-port-dialog')}>
87-
${state.isConnected ? state.serialPath : 'Connect'}
87+
${state.isConnected ? state.serialPort : 'Connect'}
8888
</a>
8989
${removeSerial}
9090
${newSerial}

0 commit comments

Comments
 (0)