Compare commits

..

7 Commits

Author SHA1 Message Date
Wez Furlong
8a773856de Improve error handling in install.sh (#404)
Prior to this change, running the example from the docs without root privs produces this misleading/confusing output that claims that the software was installed when it wasn't:

```console
$ wget -qO - https://raw.githubusercontent.com/cupcakearmy/autorestic/master/install.sh | bash
linux
amd64
/usr/local/bin/autorestic.bz2: Permission denied
bzip2: Can't open input file /usr/local/bin/autorestic.bz2: No such file or directory.
chmod: cannot access '/usr/local/bin/autorestic': No such file or directory
bash: line 49: autorestic: command not found
Successfully installed autorestic
```

With this change, the errors stop the script much earlier and produce this output instead:

```
linux
amd64
/usr/local/bin/autorestic.bz2: Permission denied
```
2024-10-21 16:06:49 +02:00
Boris Bera
41e4e4a5f3 fix(cron): crash when errors are encountered during a backup (#403) 2024-10-17 13:49:45 +02:00
Chao
6424c64304 Update docker.md, fix incorrect location name (#399) 2024-09-27 21:55:02 +02:00
dependabot[bot]
d39dafaef1 Bump golang from 1.22-alpine to 1.23-alpine (#391)
Bumps golang from 1.22-alpine to 1.23-alpine.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-21 22:56:08 +02:00
dependabot[bot]
5a0f7e94f4 Bump restic/restic from 0.17.0 to 0.17.1 (#393)
Bumps restic/restic from 0.17.0 to 0.17.1.

---
updated-dependencies:
- dependency-name: restic/restic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-21 22:55:52 +02:00
Boris Bera
6a60d02759 chore(CI): add basic CI (build & test) for PRs and master pushes (#396) 2024-09-21 22:55:23 +02:00
1f7240c6a0 add start command 2024-08-29 17:09:45 +02:00
7 changed files with 46 additions and 7 deletions

24
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: CI
on:
pull_request:
push:
branches: [master]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: '^1.21'
- run: go test -v ./...
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: '^1.21'
- run: go build -v .

View File

@@ -1,4 +1,4 @@
FROM golang:1.22-alpine as builder
FROM golang:1.23-alpine as builder
WORKDIR /app
COPY go.* .
@@ -6,7 +6,7 @@ RUN go mod download
COPY . .
RUN go build
FROM restic/restic:0.17.0
FROM restic/restic:0.17.1
RUN apk add --no-cache rclone bash curl docker-cli
COPY --from=builder /app/autorestic /usr/bin/autorestic
ENTRYPOINT []

View File

@@ -1,7 +1,8 @@
{
"scripts": {
"build": "NEXT_TELEMETRY_DISABLED=1 next build",
"dev": "NEXT_TELEMETRY_DISABLED=1 next"
"dev": "NEXT_TELEMETRY_DISABLED=1 next",
"start": "NEXT_TELEMETRY_DISABLED=1 next start"
},
"dependencies": {
"next": "^14.2.7",

View File

@@ -18,7 +18,7 @@ services:
```yaml | .autorestic.yml
locations:
foo:
hello:
from: my-data
type: volume
# ...

View File

@@ -1,5 +1,5 @@
#!/bin/bash
set -e -o pipefail
shopt -s nocaseglob
OUT_FILE=/usr/local/bin/autorestic

View File

@@ -1,12 +1,22 @@
package internal
import (
"errors"
"fmt"
)
func RunCron() error {
c := GetConfig()
var errs []error
for name, l := range c.Locations {
l.name = name
if err := l.RunCron(); err != nil {
return err
errs = append(errs, err)
}
}
if len(errs) > 0 {
return fmt.Errorf("Encountered errors during cron process:\n%w", errors.Join(errs...))
}
return nil
}

View File

@@ -1,6 +1,7 @@
package internal
import (
"errors"
"fmt"
"io/ioutil"
"os"
@@ -446,7 +447,10 @@ func (l Location) RunCron() error {
now := time.Now()
if now.After(next) {
lock.SetCron(l.name, now.Unix())
l.Backup(true, "")
errs := l.Backup(true, "")
if len(errs) > 0 {
return fmt.Errorf("Failed to backup location \"%s\":\n%w", l.name, errors.Join(errs...))
}
} else {
if !flags.CRON_LEAN {
colors.Body.Printf("Skipping \"%s\", not due yet.\n", l.name)