Skip to content

Commit 21c029e

Browse files
authored
Merge pull request #482 from gphotosuploader/release-5.0.0
Release 5.0.0
2 parents f2b227f + f85086a commit 21c029e

10 files changed

Lines changed: 46 additions & 112 deletions

CHANGELOG.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,24 @@ All notable changes to this project will be documented in this file.
33

44
The format is based on [Keep a Changelog](https://keepachangelog.com/) and this project adheres to [Semantic Versioning](https://semver.org/).
55

6+
## 5.0.0
7+
### Added
8+
- Google Photos scopes have changed, some of them have been removed. The CLI will use the new ones. ([#474][i474])
9+
10+
### Changed
11+
- Bump `golang.org/x/text` to 0.19.0 ([#479][i479])
12+
- Bump `golang.org/x/term` to 0.25.0 ([#478][i478])
13+
- Bump `github.com/schollz/progressbar/v3` to 3.16.1 ([#477][i477])
14+
15+
### Removed
16+
- The deprecated `Album: auto:folderName` and `Album: auto:folderPath` options have been removed. Use the `Album: template:%_directory%` and `Album: template:%_folderpath%` options instead.
17+
- The deprecated `Jobs: CreateAlbums` option has been removed. Use the `Jobs: Album` option instead.
18+
19+
[i474]: https://github.com/gphotosuploader/gphotos-uploader-cli/issues/474
20+
[i479]: https://github.com/gphotosuploader/gphotos-uploader-cli/pull/479
21+
[i478]: https://github.com/gphotosuploader/gphotos-uploader-cli/pull/478
22+
[i477]: https://github.com/gphotosuploader/gphotos-uploader-cli/pull/477
23+
624
## 4.6.0
725
### Added
826
- Support for the latest published Go version (1.23). This project will maintain compatibility with the latest **two major versions** published.

go.mod

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
module github.com/gphotosuploader/gphotos-uploader-cli
22

3-
go 1.21
3+
go 1.22
4+
5+
toolchain go1.23.2
46

57
require (
68
github.com/99designs/keyring v1.2.2
@@ -14,7 +16,7 @@ require (
1416
github.com/mitchellh/go-homedir v1.1.0
1517
github.com/pierrec/xxHash v0.1.5
1618
github.com/pkg/errors v0.9.1
17-
github.com/schollz/progressbar/v3 v3.15.0
19+
github.com/schollz/progressbar/v3 v3.16.1
1820
github.com/sirupsen/logrus v1.9.3
1921
github.com/spf13/afero v1.11.0
2022
github.com/spf13/cobra v1.8.1
@@ -23,8 +25,8 @@ require (
2325
github.com/syndtr/goleveldb v1.0.0
2426
golang.org/x/oauth2 v0.23.0
2527
golang.org/x/sync v0.8.0
26-
golang.org/x/term v0.24.0
27-
golang.org/x/text v0.18.0
28+
golang.org/x/term v0.25.0
29+
golang.org/x/text v0.19.0
2830
)
2931

3032
require (
@@ -51,7 +53,7 @@ require (
5153
github.com/mtibben/percent v0.2.1 // indirect
5254
github.com/pmezard/go-difflib v1.0.0 // indirect
5355
github.com/rivo/uniseg v0.4.7 // indirect
54-
golang.org/x/sys v0.25.0 // indirect
56+
golang.org/x/sys v0.26.0 // indirect
5557
google.golang.org/api v0.198.0 // indirect
5658
gopkg.in/yaml.v2 v2.3.0 // indirect
5759
gopkg.in/yaml.v3 v3.0.1 // indirect

go.sum

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym
4242
github.com/bmatcuk/doublestar/v2 v2.0.4 h1:6I6oUiT/sU27eE2OFcWqBhL1SwjyvQuOssxT4a1yidI=
4343
github.com/bmatcuk/doublestar/v2 v2.0.4/go.mod h1:QMmcs3H2AUQICWhfzLXz+IYln8lRQmTZRptLie8RgRw=
4444
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
45+
github.com/chengxilo/virtualterm v1.0.4 h1:Z6IpERbRVlfB8WkOmtbHiDbBANU7cimRIof7mk9/PwM=
46+
github.com/chengxilo/virtualterm v1.0.4/go.mod h1:DyxxBZz/x1iqJjFxTFcr6/x+jSpqN0iwWCOK1q10rlY=
4547
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
4648
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
4749
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
@@ -169,6 +171,8 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk
169171
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
170172
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
171173
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
174+
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
175+
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
172176
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=
173177
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
174178
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ=
@@ -196,8 +200,8 @@ github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
196200
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
197201
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
198202
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
199-
github.com/schollz/progressbar/v3 v3.15.0 h1:cNZmcNiVyea6oofBTg80ZhVXxf3wG/JoAhqCCwopkQo=
200-
github.com/schollz/progressbar/v3 v3.15.0/go.mod h1:ncBdc++eweU0dQoeZJ3loXoAc+bjaallHRIm8pVVeQM=
203+
github.com/schollz/progressbar/v3 v3.16.1 h1:RnF1neWZFzLCoGx8yp1yF7SDl4AzNDI5y4I0aUJRrZQ=
204+
github.com/schollz/progressbar/v3 v3.16.1/go.mod h1:I2ILR76gz5VXqYMIY/LdLecvMHDPVcQm3W/MSKi1TME=
201205
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
202206
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
203207
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
@@ -209,7 +213,6 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
209213
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
210214
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
211215
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
212-
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
213216
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
214217
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
215218
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
@@ -337,17 +340,17 @@ golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBc
337340
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
338341
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
339342
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
340-
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
341-
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
342-
golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM=
343-
golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8=
343+
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
344+
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
345+
golang.org/x/term v0.25.0 h1:WtHI/ltw4NvSUig5KARz9h521QvRC8RmF/cuYqifU24=
346+
golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M=
344347
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
345348
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
346349
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
347350
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
348351
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
349-
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
350-
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
352+
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
353+
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
351354
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
352355
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
353356
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=

internal/config/config.go

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,8 @@ func (c Config) validateJob(fs afero.Fs, job FolderUploadJob, logger log.Logger)
168168
}
169169

170170
func (c Config) checkDeprecatedCreateAlbums(job FolderUploadJob, logger log.Logger) error {
171-
// TODO: 'CreateAlbums' is deprecated. It should be removed on version 5.x
171+
// 'CreateAlbums' is deprecated and it should not be used.
172172
if job.CreateAlbums != "" {
173-
logger.Warnf("Deprecation Notice: The configuration option 'CreateAlbums' is deprecated and will be removed in a future version. Please update your configuration accordingly.")
174-
}
175-
if job.Album == "" && !isValidCreateAlbums(job.CreateAlbums) {
176173
return fmt.Errorf("option CreateAlbums is invalid, '%s", job.CreateAlbums)
177174
}
178175
return nil
@@ -210,13 +207,6 @@ func (c Config) ensureSourceFolderAbsolutePaths() error {
210207
return nil
211208
}
212209

213-
func isValidAlbumGenerationMethod(method string) bool {
214-
if method != "folderPath" && method != "folderName" {
215-
return false
216-
}
217-
return true
218-
}
219-
220210
// ValidateAlbumOption checks if the value is a valid Album option.
221211
func validateAlbumOption(value string, logger log.Logger) error {
222212
if value == "" {
@@ -232,7 +222,7 @@ func validateAlbumOption(value string, logger log.Logger) error {
232222
case "name":
233223
return validateNameOption()
234224
case "auto":
235-
return validateAutoOption(after, logger)
225+
return fmt.Errorf("option Album is invalid, '%s", value)
236226
case "template":
237227
return validateTemplateOption(after)
238228
}
@@ -243,15 +233,6 @@ func validateNameOption() error {
243233
return nil
244234
}
245235

246-
func validateAutoOption(after string, logger log.Logger) error {
247-
// TODO: 'auto:' is deprecated. It should be removed on version 5.x
248-
logger.Warnf("Deprecation Notice: The configuration option 'auto:%s' is deprecated and will be removed in a future version. Please update your configuration accordingly.", after)
249-
if !isValidAlbumGenerationMethod(after) {
250-
return fmt.Errorf("option Album is invalid: unknown album generation method '%s'", after)
251-
}
252-
return nil
253-
}
254-
255236
func validateTemplateOption(after string) error {
256237
err := upload.ValidateAlbumNameTemplate(after)
257238
if err != nil {
@@ -260,16 +241,6 @@ func validateTemplateOption(after string) error {
260241
return nil
261242
}
262243

263-
// isValidCreateAlbums checks if the value is a valid CreateAlbums option.
264-
func isValidCreateAlbums(value string) bool {
265-
switch value {
266-
case "Off", "folderPath", "folderName":
267-
return true
268-
default:
269-
}
270-
return false
271-
}
272-
273244
// unmarshalReader unmarshal HJSON data into the provided interface.
274245
func unmarshalReader(in io.Reader, c interface{}) error {
275246
buf := new(bytes.Buffer)

internal/config/config_test.go

Lines changed: 5 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package config_test
22

33
import (
4-
"fmt"
54
"github.com/gphotosuploader/gphotos-uploader-cli/internal/log"
65
"path/filepath"
7-
"strings"
86
"testing"
97

108
"github.com/spf13/afero"
@@ -68,9 +66,7 @@ func TestFromFile(t *testing.T) {
6866
}{
6967
{"Should success with Album's name option", "testdata/valid-config/configWithAlbumNameOption.hjson", "youremail@domain.com", false},
7068
{"Should success with Album's template containing token", "testdata/valid-config/configWithAlbumTemplateToken.hjson", "youremail@domain.com", false},
71-
{"Should success with deprecated Album's auto folderName option", "testdata/valid-config/configWithDeprecatedAlbumAutoFolderNameOption.hjson", "youremail@domain.com", false},
72-
{"Should success with deprecated Album's auto folderPath option", "testdata/valid-config/configWithDeprecatedAlbumAutoFolderPathOption.hjson", "youremail@domain.com", false},
73-
{"Should success with deprecated CreateAlbums option", "testdata/valid-config/configWithDeprecatedCreateAlbumsOption.hjson", "youremail@domain.com", false},
69+
{"Should success without Album option", "testdata/valid-config/configWithoutAlbumOption.hjson", "youremail@domain.com", false},
7470

7571
{"Should fail if config dir does not exist", "testdata/non-existent/config.hjson", "", true},
7672
{"Should fail if Account is invalid", "testdata/invalid-config/EmptyAccount.hjson", "", true},
@@ -85,7 +81,9 @@ func TestFromFile(t *testing.T) {
8581
{"Should fail if Album's key is invalid", "testdata/invalid-config/AlbumBadKey.hjson", "", true},
8682
{"Should fail if Album's name is invalid", "testdata/invalid-config/AlbumEmptyName.hjson", "", true},
8783
{"Should fail if Album's auto value is invalid", "testdata/invalid-config/AlbumBadAutoValue.hjson", "", true},
88-
{"Should fail if deprecated CreateAlbums is invalid", "testdata/invalid-config/DeprecatedCreateAlbums.hjson", "", true},
84+
{"Should fail if deprecated CreateAlbums option is used", "testdata/invalid-config/DeprecatedCreateAlbumsOption.hjson", "", true},
85+
{"Should fail if deprecated Album's auto folderName option is used", "testdata/invalid-config/DeprecatedAlbumAutoFolderNameOption.hjson", "", true},
86+
{"Should fail if deprecated Album's auto folderPath option is used", "testdata/invalid-config/DeprecatedAlbumAutoFolderPathOption.hjson", "", true},
8987
}
9088

9189
for _, tc := range testCases {
@@ -104,52 +102,6 @@ func TestFromFile(t *testing.T) {
104102
}
105103
}
106104

107-
type mockLogger struct {
108-
log.Logger
109-
messages []string
110-
}
111-
112-
func (m *mockLogger) Warnf(format string, args ...interface{}) {
113-
m.messages = append(m.messages, fmt.Sprintf(format, args...))
114-
}
115-
116-
func TestDeprecationNotices(t *testing.T) {
117-
testCases := []struct {
118-
name string
119-
path string
120-
want string
121-
}{
122-
{"CreateAlbums option", "testdata/valid-config/configWithDeprecatedCreateAlbumsOption.hjson", "CreateAlbums"},
123-
{"auto:folderPath option", "testdata/valid-config/configWithDeprecatedAlbumAutoFolderPathOption.hjson", "auto:folderPath"},
124-
{"auto:folderName option", "testdata/valid-config/configWithDeprecatedAlbumAutoFolderNameOption.hjson", "auto:folderName"},
125-
}
126-
127-
for _, tc := range testCases {
128-
t.Run(tc.name, func(t *testing.T) {
129-
fs := afero.OsFs{}
130-
logger := &mockLogger{}
131-
_, err := config.FromFile(fs, tc.path, logger)
132-
if err != nil {
133-
t.Fatalf("Expected no error, got %v", err)
134-
}
135-
// Check that the deprecation notice was logged
136-
if !contains(logger.messages, tc.want) {
137-
t.Errorf("Expected deprecation notice for '%s', got %v", tc.want, logger.messages)
138-
}
139-
})
140-
}
141-
}
142-
143-
// contains checks if a slice contains a string
144-
func contains(slice []string, str string) bool {
145-
for _, v := range slice {
146-
if strings.Contains(v, str) {
147-
return true
148-
}
149-
}
150-
return false
151-
}
152-
153105
func TestConfig_SafePrint(t *testing.T) {
154106
cfg := config.Config{
155107
APIAppCredentials: config.APIAppCredentials{
@@ -162,14 +114,13 @@ func TestConfig_SafePrint(t *testing.T) {
162114
{
163115
SourceFolder: "foo",
164116
Album: "name:albumName",
165-
CreateAlbums: "folderPath",
166117
DeleteAfterUpload: false,
167118
IncludePatterns: []string{},
168119
ExcludePatterns: []string{},
169120
},
170121
},
171122
}
172-
want := `{"APIAppCredentials":{"ClientID":"client-id","ClientSecret":"REMOVED"},"Account":"account","SecretsBackendType":"auto","Jobs":[{"SourceFolder":"foo","Album":"name:albumName","CreateAlbums":"folderPath","DeleteAfterUpload":false,"IncludePatterns":[],"ExcludePatterns":[]}]}`
123+
want := `{"APIAppCredentials":{"ClientID":"client-id","ClientSecret":"REMOVED"},"Account":"account","SecretsBackendType":"auto","Jobs":[{"SourceFolder":"foo","Album":"name:albumName","DeleteAfterUpload":false,"IncludePatterns":[],"ExcludePatterns":[]}]}`
173124

174125
if want != cfg.SafePrint() {
175126
t.Errorf("want: %s, got: %s", want, cfg.SafePrint())

internal/config/schema.go

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ type FolderUploadJob struct {
3535
// These are the valid values: "name:", "auto:", "template".
3636
// "name:" : Followed by the album name in Google Photos (album names are not unique, so the first to match
3737
// will be selected)
38-
// "auto:" : (deprecated) Followed either "folderPath" or "folderName" will use an autogenerated album name based on the
39-
// object's folder path or object's folder name. Use `template` instead.
4038
// "template": Followed by a template string that can contain the following predefine tokens and functions:
4139
// Tokens:
4240
// %_folderpath% - full path of the folder containing the file.
@@ -60,15 +58,7 @@ type FolderUploadJob struct {
6058

6159
Album string `json:"Album,omitempty"`
6260

63-
// CreateAlbums is the parameter to create albums on Google Photos.
64-
//
65-
// Deprecated: CreateAlbums exists to maintain backwards compatibility with version 4.x. It should not be used in
66-
// favor of the Album option.
67-
//
68-
// Valid options were:
69-
// Off: Disable album creation (default).
70-
// folderPath: Creates album with the name based on full folder path.
71-
// folderName: Creates album with the name based on the folder name.
61+
// CreateAlbums exists to notice users about its deprecation. It should not be used in favor of the Album option.
7262
CreateAlbums string `json:"CreateAlbums,omitempty"`
7363

7464
// DeleteAfterUpload if it is true, the app will remove files after upload them.

internal/config/testdata/valid-config/configWithDeprecatedAlbumAutoFolderNameOption.hjson renamed to internal/config/testdata/invalid-config/DeprecatedAlbumAutoFolderNameOption.hjson

File renamed without changes.

internal/config/testdata/valid-config/configWithDeprecatedAlbumAutoFolderPathOption.hjson renamed to internal/config/testdata/invalid-config/DeprecatedAlbumAutoFolderPathOption.hjson

File renamed without changes.

internal/config/testdata/valid-config/configWithDeprecatedCreateAlbumsOption.hjson renamed to internal/config/testdata/invalid-config/DeprecatedCreateAlbumsOption.hjson

File renamed without changes.

internal/config/testdata/invalid-config/DeprecatedCreateAlbums.hjson renamed to internal/config/testdata/valid-config/configWithoutAlbumOption.hjson

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,9 @@
1010
[
1111
{
1212
SourceFolder: ./testdata
13-
CreateAlbums: invalid
1413
DeleteAfterUpload: false
1514
IncludePatterns: []
1615
ExcludePatterns: []
1716
}
1817
]
19-
}
18+
}

0 commit comments

Comments
 (0)