lib/versioner: Fix external versioner command specification on Windows (fixes #4560)

This commit is contained in:
Kropekk 2018-02-07 15:12:27 +01:00 committed by Audrius Butkevicius
parent 3f4f6d5787
commit bc7639b0ff
2 changed files with 6 additions and 1 deletions

View File

@ -176,7 +176,7 @@
<p translate class="help-block">Path where versions should be stored (leave empty for the default .stversions directory in the shared folder).</p>
</div>
<div class="form-group" ng-if="currentFolder.fileVersioningSelector=='external'" ng-class="{'has-error': folderEditor.externalCommand.$invalid && folderEditor.externalCommand.$dirty}">
<p translate class="help-block">An external command handles the versioning. It has to remove the file from the shared folder.</p>
<p translate class="help-block">An external command handles the versioning. It has to remove the file from the shared folder. If the path to the application contains spaces, it should be quoted.</p>
<label translate for="externalCommand">Command</label>
<input name="externalCommand" id="externalCommand" class="form-control" type="text" ng-model="currentFolder.externalCommand" required="" aria-required="true" />
<p class="help-block">

View File

@ -10,6 +10,7 @@ import (
"errors"
"os"
"os/exec"
"runtime"
"strings"
"github.com/syncthing/syncthing/lib/fs"
@ -30,6 +31,10 @@ type External struct {
func NewExternal(folderID string, filesystem fs.Filesystem, params map[string]string) Versioner {
command := params["command"]
if runtime.GOOS == "windows" {
command = strings.Replace(command, `\`, `\\`, -1)
}
s := External{
command: command,
filesystem: filesystem,