Michael Eischer
233b841ad9
Add cat tree snapshot:subpath command
...
This command prints the tree for the given path.
2023-07-22 19:55:57 +02:00
Michael Eischer
85860e6e97
Add support for snapshot:subpath syntax
...
This snapshot specification syntax is supported by the cat, diff, dump,
ls and restore command.
2023-07-22 19:55:57 +02:00
Michael Eischer
47206a6579
Merge pull request #4351 from kenny-y-dev/human-readable-ls
...
Add --human-readable to ls and find output
2023-07-16 11:44:41 +00:00
Michael Eischer
89fbd39e59
Don't print stacktrace on invalid cacert option
2023-07-09 14:23:54 +02:00
Michael Eischer
1ce599d2ae
Fix handling of empty cacert environment variable
...
This resulted in a "empty filename for root certificate supplied" error.
2023-07-09 14:23:54 +02:00
Michael Eischer
325fa916b5
stats: Add debug mode to collect repository statistics
2023-07-08 23:04:47 +02:00
Michael Eischer
cc3c218baf
small cleanups for certificate environment variables
2023-07-08 09:44:59 +02:00
arjunajesh
c1578a2035
certificates can be passed through env vars
2023-07-08 09:44:59 +02:00
Michael Eischer
389f6ee74c
backup: add minimal test for program versioni
2023-07-07 23:33:23 +02:00
Michael Eischer
bbac74b172
add program version to snapshot
2023-07-07 23:27:10 +02:00
greatroar
41a5bf357f
cmd, ui: Move size parsing code and make it more robust
2023-07-02 21:44:50 +02:00
Michael Eischer
cbf87fbdb3
init: don't include password in debug log
2023-06-17 15:15:58 +02:00
Michael Eischer
50e0d5e6b5
backend: Hardcode backend scheme in Factory
...
Our ParseConfig implementations always expect a specific scheme, thus no
other scheme would work.
2023-06-17 15:15:58 +02:00
Michael Eischer
3a3cf608f5
b2/s3: Move config validation from ApplyEnvironment to Open/Create
...
Conceptually the backend configuration should be validated when creating
or opening the backend, but not when filling in information from
environment variables into the configuration.
2023-06-17 15:15:58 +02:00
Michael Eischer
9aa9e0d1ec
local/sftp: move limiter setup into backend
2023-06-17 15:15:58 +02:00
Michael Eischer
7d12c29286
backend: Unify backend construction using factory and registry
...
This unified construction removes most backend-specific code from
global.go. The backend registry will also enable integration tests to
use custom backends if necessary.
2023-06-17 15:15:57 +02:00
Michael Eischer
56836364a4
backend: pass context into every backend constructor
2023-06-17 15:15:57 +02:00
Michael Eischer
4df77e9f26
Merge pull request #4314 from MichaelEischer/restore-json
...
Add JSON support for the restore progress bar
2023-06-16 23:53:17 +02:00
Michael Eischer
191c47d30e
Merge pull request #4353 from MichaelEischer/tune-gc
...
Tune Go garbage collector
2023-06-16 23:24:39 +02:00
Michael Eischer
cf16239058
restore: print output via termStatus
2023-06-09 12:03:33 +02:00
Michael Eischer
d54176ce5d
restore: add basic json progress
2023-06-09 12:03:33 +02:00
Michael Eischer
a9aff885d6
restore: reorganize progress bar code
...
The structure is now much more similar to that of the backup command.
2023-06-09 12:03:33 +02:00
Michael Eischer
bb20078641
restore: pass termStatus to restore in tests
2023-06-09 12:03:33 +02:00
Michael Eischer
9464c63550
Make formatNode test timezone independent
...
formatNode formats the timestamp according to the current time zone. Pin
the local timezone to UTC to ensure the test works everywhere.
2023-06-08 19:18:30 +02:00
Michael Eischer
6ebf2dd235
Reduce duplicate code in test for fomatNode
2023-06-08 19:16:16 +02:00
Michael Eischer
5f153109ba
Refactor formatNode
2023-06-08 19:12:49 +02:00
Michael Eischer
32a6b66267
backend: add standardized Config.ApplyEnvironment
...
This removes the backend specific special cases while parsing the
configuration in `global.go`.
2023-06-07 22:31:15 +02:00
Michael Eischer
f903db492c
backend: let ParseConfig return a Config pointer
...
In order to change the backend initialization in `global.go` to be able
to generically call cfg.ApplyEnvironment() for supported backends, the
`interface{}` returned by `ParseConfig` must contain a pointer to the
configuration.
An alternative would be to use reflection to convert the type from
`interface{}(Config)` to `interface{}(*Config)` (from value to pointer
type). However, this would just complicate the type mess further.
2023-06-07 22:31:15 +02:00
Michael Eischer
2f7b4ceae1
backend: Move environment based configuration into backend
2023-06-07 22:30:35 +02:00
Michael Eischer
49a6a4f5bf
Merge pull request #4356 from MichaelEischer/fix-unlock-hint
...
lock: fix missing hint to unlock command if repository is locked
2023-06-06 21:03:06 +02:00
Michael Eischer
237d00000e
lock: fix missing hint to unlock command if repository is locked
2023-06-02 23:16:49 +02:00
Michael Eischer
2fcb3947df
prune: trigger GC after prune planning
2023-06-02 21:57:40 +02:00
Michael Eischer
f1b73c9301
Reduce GOGC to 50
...
The index used by restic consumes a major part of the total memory
usage. This leads to an unnecessarily large amount of memory that
contains ephemeral objects that are only used for a short time.
2023-06-02 21:51:50 +02:00
Kenny Y
8812dcd56a
Add --human-readable to ls and find output
...
Modifies format module to add options for human readable storage size formatting, using size parsing already in ui/format.
Cmd flag --human-readable added to ls and find commands.
Additional option added to formatNode to support printing size in regular or new human readable format
2023-06-01 21:18:18 -04:00
Michael Eischer
88a10a368f
Merge pull request #4342 from greatroar/errors
...
cmd: Don't check for errno == 0
2023-05-31 22:17:07 +02:00
greatroar
8f1ca8fabe
cmd: Don't check for errno == 0
...
Maybe term.Restore's predecessor could return this, but the current
implementation never does.
2023-05-27 08:52:37 +02:00
Michael Eischer
9747cef338
fix linter warnings
2023-05-26 19:38:44 +02:00
Michael Eischer
8e913e6d3a
repair index: always read Quiet flags from GlobalOptions passed as parameter
2023-05-26 19:38:44 +02:00
Michael Eischer
b93459cbb0
repair snapshots: use local copy of globalOptions to open repository
2023-05-26 19:38:44 +02:00
Michael Eischer
692f81ede8
cleanup prune integration test
2023-05-26 19:38:44 +02:00
Michael Eischer
7a268e4aba
always access stdout/stderr via globalOptions
2023-05-26 19:38:44 +02:00
Michael Eischer
4b3a0b4104
read JSON/Quiet flag from the passed in globalOptions
2023-05-26 19:38:44 +02:00
Michael Eischer
cebce52c16
test: add helper to capture stdout for integration tests
2023-05-26 19:38:44 +02:00
Michael Eischer
675a49a95b
Restructure integration tests
...
The tests are now split into individual files for each command. The
separation isn't perfect as many tests make use of multiple commands. In
particular `init`, `backup`, `check` and `list` are used by a larger
number of test cases.
Most tests now reside in files name cmd_<name>_integration_test.go. This
provides a certain indication which commands have significant test
coverage.
2023-05-26 19:38:43 +02:00
Michael Eischer
e2dba9f5c7
test: cleanup a some check calls
2023-05-26 19:34:57 +02:00
Michael Eischer
06fd6b54d7
test: print log output if testRunCheck fails
2023-05-26 19:34:57 +02:00
Michael Eischer
419e6f26b1
tests: Simplify checks that a specific number of snapshots exists
2023-05-26 19:34:57 +02:00
Michael Eischer
c3212ab6a6
test: use standard logging methods from testing for the test helpers
...
Use the logging methods from testing.TB to make use of tb.Helper(). This
allows the tests to log the filename and line number in which the test
helper was called. Previously the test helper was logged which is rarely
useful.
2023-05-26 19:34:57 +02:00
Michael Eischer
a466e945d9
stats: pass StatsOptions via parameter
2023-05-18 21:17:53 +02:00
Michael Eischer
03b9764bce
init/generate: check that no parameters are passed
2023-05-18 21:17:53 +02:00