Allow fractional percentages (fixes #2233)

This commit is contained in:
Jakob Borg
2015-09-05 09:43:07 +02:00
parent d2af6dcf38
commit 2af3a92833
7 changed files with 24 additions and 18 deletions

View File

@@ -75,7 +75,7 @@ type FolderConfiguration struct {
RescanIntervalS int `xml:"rescanIntervalS,attr" json:"rescanIntervalS"`
IgnorePerms bool `xml:"ignorePerms,attr" json:"ignorePerms"`
AutoNormalize bool `xml:"autoNormalize,attr" json:"autoNormalize"`
MinDiskFreePct int `xml:"minDiskFreePct" json:"minDiskFreePct"`
MinDiskFreePct float64 `xml:"minDiskFreePct" json:"minDiskFreePct"`
Versioning VersioningConfiguration `xml:"versioning" json:"versioning"`
Copiers int `xml:"copiers" json:"copiers"` // This defines how many files are handled concurrently.
Pullers int `xml:"pullers" json:"pullers"` // Defines how many blocks are fetched at the same time, possibly between separate copier routines.
@@ -244,7 +244,7 @@ type OptionsConfiguration struct {
DatabaseBlockCacheMiB int `xml:"databaseBlockCacheMiB" json:"databaseBlockCacheMiB" default:"0"`
PingTimeoutS int `xml:"pingTimeoutS" json:"pingTimeoutS" default:"30"`
PingIdleTimeS int `xml:"pingIdleTimeS" json:"pingIdleTimeS" default:"60"`
MinHomeDiskFreePct int `xml:"minHomeDiskFreePct" json:"minHomeDiskFreePct" default:"1"`
MinHomeDiskFreePct float64 `xml:"minHomeDiskFreePct" json:"minHomeDiskFreePct" default:"1"`
}
func (orig OptionsConfiguration) Copy() OptionsConfiguration {
@@ -585,6 +585,13 @@ func setDefaults(data interface{}) error {
}
f.SetInt(i)
case float64:
i, err := strconv.ParseFloat(v, 64)
if err != nil {
return err
}
f.SetFloat(i)
case bool:
f.SetBool(v == "true")

View File

@@ -174,7 +174,7 @@ func TestOverriddenValues(t *testing.T) {
DatabaseBlockCacheMiB: 42,
PingTimeoutS: 60,
PingIdleTimeS: 120,
MinHomeDiskFreePct: 5,
MinHomeDiskFreePct: 5.2,
}
cfg, err := Load("testdata/overridenvalues.xml", device1)

View File

@@ -31,6 +31,6 @@
<databaseBlockCacheMiB>42</databaseBlockCacheMiB>
<pingTimeoutS>60</pingTimeoutS>
<pingIdleTimeS>120</pingIdleTimeS>
<minHomeDiskFreePct>5</minHomeDiskFreePct>
<minHomeDiskFreePct>5.2</minHomeDiskFreePct>
</options>
</configuration>