File tree 2 files changed +45
-0
lines changed
2 files changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -35,6 +35,7 @@ import (
35
35
srv_debug "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/debug/v1"
36
36
srv_monitor "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/monitor/v1"
37
37
srv_settings "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/settings/v1"
38
+ srv_files "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/files/v1"
38
39
"github.com/segmentio/stats/v4"
39
40
"github.com/sirupsen/logrus"
40
41
"github.com/spf13/cobra"
@@ -98,6 +99,9 @@ func runDaemonCommand(cmd *cobra.Command, args []string) {
98
99
// Register the debug session service
99
100
srv_debug .RegisterDebugServiceServer (s , & daemon.DebugService {})
100
101
102
+ // Register the files service
103
+ srv_files .RegisterFilesServiceServer (s , & daemon.FilesService {})
104
+
101
105
if ! daemonize {
102
106
// When parent process ends terminate also the daemon
103
107
go func () {
Original file line number Diff line number Diff line change
1
+ // This file is part of arduino-cli.
2
+ //
3
+ // Copyright 2020 ARDUINO SA (http://www.arduino.cc/)
4
+ //
5
+ // This software is released under the GNU General Public License version 3,
6
+ // which covers the main part of arduino-cli.
7
+ // The terms of this license can be found at:
8
+ // https://www.gnu.org/licenses/gpl-3.0.en.html
9
+ //
10
+ // You can be released from the requirements of the above licenses by purchasing
11
+ // a commercial license. Buying such a license is mandatory if you want to
12
+ // modify or otherwise use the software for commercial activities involving the
13
+ // Arduino software without disclosing the source code of your own applications.
14
+ // To purchase a commercial license, send an email to [email protected] .
15
+
16
+ package daemon
17
+
18
+ import (
19
+ "context"
20
+ "os"
21
+
22
+ rpc "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/files/v1"
23
+ )
24
+
25
+ // FilesService implements the `Files` service
26
+ type FilesService struct {
27
+ rpc.UnimplementedFilesServiceServer
28
+ }
29
+
30
+ // LoadFile returns a requested file content or an error.
31
+ func (s * FilesService ) LoadFile (ctx context.Context , req * rpc.LoadFileRequest ) (* rpc.LoadFileResponse , error ) {
32
+ content , err := os .ReadFile (req .Path )
33
+ if err == nil {
34
+ return & rpc.LoadFileResponse {
35
+ Content : content ,
36
+ Type : rpc .ContentType_CONTENT_TYPE_RAW_UNSPECIFIED ,
37
+ }, nil
38
+ }
39
+
40
+ return nil , err
41
+ }
You can’t perform that action at this time.
0 commit comments