Commit Graph

56 Commits

Author SHA1 Message Date
Erik Westrup
0f3d39dfe1 Custom launchagent dir 2022-02-12 17:33:29 +01:00
Erik Westrup
8f118b6ddf Allow make to override etc dir 2022-02-11 22:07:26 +01:00
Erik Westrup
289016f8ea No need to write perm on scripts 2022-02-11 21:46:56 +01:00
Erik Westrup
2a287910cb Allow override INSTALL_PREFIX on make cli 2022-02-11 20:34:33 +01:00
Erik Westrup
caf95ef393 Add make target to activate launchagent 2022-02-09 17:16:18 +01:00
Erik Westrup
991476715a install instructions 2022-02-09 15:56:37 +01:00
Erik Westrup
c8ab0b4421 iterate 2022-02-09 14:04:07 +01:00
Erik Westrup
e9d77d0a31 Surpress mkdir 2022-02-09 13:08:12 +01:00
Erik Westrup
bd3123bef4 Modified: Makefile 2022-02-09 13:08:12 +01:00
Erik Westrup
ddd2233c58 Install LaunchAgent in user Library 2022-02-09 13:08:12 +01:00
Erik Westrup
7973eedae4 Modified: Makefile 2022-02-09 13:08:12 +01:00
Erik Westrup
193bf926cf PoC souce files 2022-02-09 13:08:12 +01:00
Erik Westrup
7a1409ca03 Allow users to execute scripts 2022-02-08 18:20:49 +01:00
Erik Westrup
e688499838 Surpress mkdir in make install 2022-02-08 16:49:10 +01:00
Erik Westrup
645df1a0d4 Move /sbin to /bin
As more users would have /bin than /sbin in their PATH
2022-02-07 18:22:36 +01:00
Erik Westrup
54e2d17e23 Modified: CHANGELOG.md Makefile 2022-02-06 15:28:56 +01:00
Erik Westrup
c01bb5a00e Fix broken help target 2022-02-06 15:10:31 +01:00
Erik Westrup
8db3d27174 Rename top-level install targets
"make install" -> "make install-systemd"
so that I could now add a
""make install-cron"
target.

Soon there will be
"make install-macos"
"make install-windows"

Thus it does not make sense to have a general `make install` anymore.
2022-02-06 14:49:00 +01:00
Erik Westrup
1ee0e2c919 Fix cron with multiple profiles 2022-02-06 14:36:41 +01:00
Erik Westrup
0255ad03d8 Format comments 2022-02-05 15:52:36 +01:00
Erik Westrup
5942762514 Correct build source depdendency 2022-02-05 15:48:58 +01:00
Erik Westrup
6b315814d0 spell 2022-02-05 15:45:45 +01:00
Erik Westrup
dd092af6a1 Remove legacy .template 2022-02-05 15:43:57 +01:00
Erik Westrup
7f86dbd9f4 Consistent macro names in Makefile 2022-02-05 15:40:00 +01:00
Erik Westrup
494bcc29f0 s/SCRIPTS/SCRIPT/g 2022-02-05 15:40:00 +01:00
Erik Westrup
c43367fab3 Simpler sed expression 2022-02-05 15:27:43 +01:00
Erik Westrup
67cd6ee94b Add back dependency on builddir 2022-02-05 15:18:39 +01:00
Erik Westrup
a117c95508 Format Makefile 2022-02-05 15:13:01 +01:00
Erik Westrup
fc04da5a2d Fix comment 2022-02-05 15:04:44 +01:00
Erik Westrup
25666f17a0 Remove old out-commented solution 2022-02-05 15:02:53 +01:00
Erik Westrup
ccf39e822d Remove comment not relevant 2022-02-05 15:02:24 +01:00
Erik Westrup
1a890de7ac Remove target dependency that was not cleaned up before 2022-02-05 14:55:24 +01:00
Erik Westrup
4236c93b57 spell 2022-02-05 14:53:32 +01:00
Erik Westrup
861535a86e Check properly for GNU install 2022-02-05 14:48:38 +01:00
Erik Westrup
9760cd05ec Truly support custom PREFIX= install
* Before, doing `$ PREFIX=/usr/local make install` would install files to`/usr/local/usr/local..` which is wrong
* With this PR, files will be installed to the expected location e.g. `/usr/local/etc/restic`
* `Makefile` almost completely rewritten
   * As e.g. `default.env` would source `_global.env`, `default.env` must be edited to find the right location of `_global.env` depending on what `$PREFIX` was set to.
   * see documented build stages in the `Makefile` itself.
   *  Made sure that the rules are correct so that only modifed files are installed, not all at once unnecessarily like before.
* A sub-goal was that the [PKGBUILD](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=restic-systemd-automatic-backup#n20) for Arch should not need to do any custom install configuration, to keep everything easier to maintain. `$ make install` should work out of the box for Arch.
* Additionally added the `-b` flag to `install(1)` that makes a backup of existing `etc/restic/*` files before installing a newer version.

Fixes #49
2022-02-03 20:52:00 +01:00
Gerard Bosch
3852e305b6 Add resticw (restic wrapper) utility (#60)
The script provides a convenient way to load environment config, deal
with profiles and act as a pass-through to restic. The overall thing is
to improve the UX when running restic, integrating the features this
project provides.

## Note

The script itself is a very simple thing.
The command line parser is auto-generated using docopt.sh driven from
the script's DOC. It can be refreshed upon DOC changes with:
`docopt.sh path/to/resticw`.

## How to use it

### Examples

```console
sudo resticw stats latest

sudo resticw -p profileA snapshots
```

### Help

```console
❯ resticw --help
A little wrapper over restic just to handle profiles and environment loading.

  It loads the backup profile/environment in a subshell to avoid any credential leak (Note: Run it with sudo so it can load the environment).

  Usage:
    resticw [options] <restic_arguments>

    The restic_arguments is just the regular unwrapped restic arguments, e.g. stats latest

  Options:
    -p --profile=<name>        Specify the profile to load or use default [default: default].

  Examples:
    sudo resticw --profile profileA snapshots
    sudo resticw stats latest  # this will use the profile: default
```



Co-authored-by: Erik Westrup <erik.westrup@gmail.com>
2022-02-03 20:40:45 +01:00
Gerard Bosch
d8f25cdf88 Multiple profile configuration (#45)
Adds possibility to have multiple profiles with different backup paths, retention etc.

Co-authored-by: Matt Feifarek <matt.feifarek@gmail.com>
Co-authored-by: Erik Westrup <erik.westrup@gmail.com>
2022-02-01 10:09:36 +01:00
Erik Westrup
5eeab95c84 Create backup of existing config files on install 2022-01-17 15:53:17 +01:00
Erik Westrup
3e22d8f99d Remove local generated files from templates
As discussed in #46, it's not necessary to keep the local files
generated from the templates as the users should edit the installed
confs, not in the git.
2022-01-17 15:51:39 +01:00
Erik Westrup
7141426699 Spell 2022-01-17 13:26:08 +01:00
Erik Westrup
828ff79e7a Fix make install failing when run multiple times
Due to the security feature preventing checking in B2 credentials to
git, the install target would get the same file twice due to pattern
subsitution.

This issue is not visible with BSD install as it ignores the issue, but
GNU install wil fail.

Fixes #46
2022-01-16 20:59:50 +01:00
Erik Westrup
8932e60e4a Spell fixes 2022-01-16 20:56:00 +01:00
Erik Westrup
428f4be872 Fix installation of template files
The target that copies the *.template files (#15) had a '/' prefixed which
should not be there. The copy should be locally here. The real install
happens in the install-conf that respects $PREFIX

Fixes #40
2021-12-03 17:09:14 +01:00
Erik Westrup
6689b1508f make uninstall target respect $PREFIX 2021-10-30 13:49:07 +02:00
Erik Westrup
d9459cb048 Fix b2_* install path 2021-10-30 09:16:12 +02:00
Erik Westrup
b8716ad377 Indent fix 2021-10-30 09:15:49 +02:00
Erik Westrup
b261235ba5 Simpler patsubst for installed files 2021-10-30 09:15:36 +02:00
Erik Westrup
88f2dc9eca Makefile: s/DEST_SCRIPT\b/DEST_SCRIPTS/ 2021-10-30 09:15:09 +02:00
Erik Westrup
16e3cb2df5 Makefile: remove out-commented line 2021-10-30 09:00:47 +02:00
Erik Westrup
bcd4a02e82 Makefile: add uninstall target
Fixes #30
2021-10-29 17:09:49 +02:00