5 Commits

Author SHA1 Message Date
4dd166e65e Update changelog for release 2022-05-09 09:57:26 +09:30
9f7090a2f8 Bump version 2022-05-08 11:39:54 +09:30
1bf557c3eb Update changelog 2022-05-08 11:39:14 +09:30
df0c6d090d Fix race condition causing multiple uploads 2022-05-08 11:38:07 +09:30
b851a4f773 🙏🏼 2022-05-02 21:21:00 +09:30
5 changed files with 18 additions and 1 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1 @@
github: tardisx

View File

@@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
## [v0.12.3] - 2022-05-09
- Fix a race condition occasionally causing multiple duplicate uploads
## [v0.12.2] - 2022-05-01
- Automatically open your web browser to the `dau` web interface

1
dau.go
View File

@@ -129,6 +129,7 @@ func (w *watch) ProcessNewFiles() []string {
}
w.lastCheck = w.newLastCheck
}
return newFiles
}

View File

@@ -15,6 +15,7 @@ import (
"net/http"
"os"
"path/filepath"
"sync"
"sync/atomic"
"time"
@@ -43,6 +44,7 @@ type HTTPClient interface {
type Uploader struct {
Uploads []*Upload `json:"uploads"`
Lock sync.Mutex
}
type Upload struct {
@@ -76,6 +78,7 @@ func NewUploader() *Uploader {
}
func (u *Uploader) AddFile(file string, conf config.Watcher) {
u.Lock.Lock()
atomic.AddInt32(&currentId, 1)
thisUpload := Upload{
Id: currentId,
@@ -91,19 +94,27 @@ func (u *Uploader) AddFile(file string, conf config.Watcher) {
thisUpload.State = StatePending
}
u.Uploads = append(u.Uploads, &thisUpload)
u.Lock.Unlock()
}
// Upload uploads any files that have not yet been uploaded
func (u *Uploader) Upload() {
u.Lock.Lock()
for _, upload := range u.Uploads {
if upload.State == StateQueued {
upload.processUpload()
}
}
u.Lock.Unlock()
}
func (u *Uploader) UploadById(id int32) *Upload {
u.Lock.Lock()
defer u.Lock.Unlock()
for _, anUpload := range u.Uploads {
if anUpload.Id == int32(id) {
return anUpload

View File

@@ -13,7 +13,7 @@ import (
"golang.org/x/mod/semver"
)
const CurrentVersion string = "v0.12.2"
const CurrentVersion string = "v0.12.3"
type GithubRelease struct {
HTMLURL string `json:"html_url"`