aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: ae39763d10e41629b2af96d67250d0b8d4c0d2d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Stud.IP Backend for rclone

This project provides an **rclone backend** for accessing files from **Stud.IP** instances.

Although it should work with all Stud.IP instances, it has currently only been tested with the [University of Bremen](https://elearning.uni-bremen.de) installation.

**Note:** This is a **proof of concept** and currently offers **limited functionality (read-only access)** and **may contain bugs**.

## Usage

You can use this backend either as an rclone plugin or by building a custom rclone binary with the backend compiled in.

### 1. Build as an rclone plugin (Supported on macOS & Linux as of now)

1. Edit `/backend/studip/studip.go` and change the package declaration at the top from:

```go
package studip
````

to:

```go
package main
```

2. Build the plugin using Go’s plugin build mode:

```bash
go build --buildmode=plugin -o librcloneplugin_backend_studip.so backend/studip/studip.go
```

3. Load the plugin

```bash
mv librcloneplugin_backend_studip.so $RCLONE_PLUGIN_PATH/
```
- All plugins in the folder specified by variable $RCLONE_PLUGIN_PATH are loaded.
- If this variable doesn't exist, plugin support is disabled.
- Plugins must be compiled against the exact version of rclone to work. (The rclone used during building the plugin must be the same as the source of rclone)




### 2. Build a custom rclone binary with the backend included

You can also build a full rclone binary that has the Stud.IP backend compiled in.

From the repository root, build rclone with:

```bash
go build -o rclone-studip
```