Commit Graph

325 Commits

Author SHA1 Message Date
Luke Murphy fd04c5a6e9
Support branch selection for app repo clones
Closes #80.
2021-03-04 16:01:56 +01:00
Luke Murphy 1c9d7282b2
Revert "Sort commands listing"
continuous-integration/drone/push Build is passing Details
This reverts commit 99ab5bf369.

Woops, they cannot be sorted this way. Ignore me.
2021-03-04 15:50:27 +01:00
Luke Murphy dd9c485c66
Fix wording and wrap 2021-03-04 15:48:53 +01:00
Luke Murphy 99ab5bf369
Sort commands listing
continuous-integration/drone/push Build is failing Details
2021-03-04 15:38:09 +01:00
Luke Murphy 25a0afed65
Fix indentation and, document local options only 2021-03-04 15:35:18 +01:00
Luke Murphy 65ce949e03
Bail out if versions match
continuous-integration/drone/push Build is passing Details
Closes #87.
2021-03-04 13:20:58 +01:00
Luke Murphy 5931cbd791
Only throw away error but keep stdout 2021-03-04 13:20:45 +01:00
Luke Murphy 0bbff91722
Add service rollback
continuous-integration/drone/push Build is passing Details
Closes #76.
2021-03-04 13:10:51 +01:00
Luke Murphy 7f5e753dfd
Re-factor version output logic and fix bug
It was showing empty strings for deployed versions it could not find.
Now, it will not change messages to output if it can not detect the
versions deployed (containers dont have the tag).
2021-03-04 13:10:00 +01:00
Luke Murphy d3776f4424
Warn on secret storage after generation
continuous-integration/drone/push Build is passing Details
Closes #75.
2021-03-03 17:20:24 +01:00
Luke Murphy 544c4e86ba
Capture output for version checking
continuous-integration/drone/push Build is passing Details
Closes #85.
2021-03-03 16:56:47 +01:00
Luke Murphy 516309b478
Show command to run 2021-03-03 16:54:01 +01:00
Luke Murphy dfd7e29a30
Give spacing to blocks 2021-03-03 16:51:25 +01:00
Luke Murphy bb30fa28da
Fix wording 2021-03-03 16:50:59 +01:00
Luke Murphy 152dfe9349
Support basic version checking
Closes #82.
2021-03-02 13:06:56 +01:00
Luke Murphy 98e674b8e8
Add version and digest showing
continuous-integration/drone/push Build is passing Details
See #82.
2021-03-02 12:04:25 +01:00
Luke Murphy 5bc702bf96
Propagate new version around
continuous-integration/drone/push Build is passing Details
2021-03-01 11:44:58 +01:00
3wc e5b2a426f0 Add shared backup helpers
continuous-integration/drone/push Build is passing Details
2021-02-24 17:03:28 +02:00
3wc 29b22fe162 Display subcommand help with -h/--help
continuous-integration/drone/push Build is passing Details
Closes #78
2021-02-11 15:02:37 +02:00
3wc d2cdb11fcc Tweak INFO messages, update CHANGELOG
continuous-integration/drone/pr Build is failing Details
2021-02-08 13:43:39 +02:00
3wc cef06a82a6 abra-commands.sh → abra.sh 2021-01-30 16:10:40 +02:00
3wc 9a630a0440 Prevent accidental `cd` when loading app vars 2021-01-30 16:10:40 +02:00
3wc 1c6651b18b Fix `secret generate` help
[ci skip]
2021-01-30 16:10:13 +02:00
3wc f90e1d154c Add container IDs to debug log
continuous-integration/drone/pr Build is passing Details
2021-01-24 19:11:22 +02:00
3wc 6cc265e931 Tweak info/debug output 2021-01-24 19:11:22 +02:00
3wc 854ae23f60 Initial --verbose / --debug 2021-01-24 19:11:22 +02:00
3wc 43e7672725 Prevent accidental `cd` when loading app vars
continuous-integration/drone/push Build is passing Details
2021-01-24 19:11:11 +02:00
3wc 8a08de51e4 Alert on missing secrets, re-add . → _ STACK_NAME
continuous-integration/drone/push Build is passing Details
2021-01-09 15:07:39 +02:00
3wc 5d84cef63c `app restore`
continuous-integration/drone/pr Build is failing Details
2021-01-09 13:36:32 +02:00
3wc eda5198904 Add scaffolding for per-app `backup` commands
See #70
2021-01-09 13:36:32 +02:00
3wc a4a3dccd66 Add global --skip-check / --skip-update commands 2021-01-09 13:36:32 +02:00
3wc a2d249e3a1 Fix `abra app ls` with `*` server
continuous-integration/drone/push Build is passing Details
2021-01-02 00:34:44 +02:00
3wc d6b4a4744f Fix `abra app ls` for app → type
continuous-integration/drone/push Build is passing Details
2021-01-01 23:00:20 +02:00
Luke Murphy aa59c1ad43
Make secret generation more robust
continuous-integration/drone/pr Build is passing Details
Closes #68.
2021-01-01 18:54:41 +01:00
Luke Murphy f5c8ee1136
Merge auto/generate and use --secrets
continuous-integration/drone/pr Build is passing Details
Closes #58.
2021-01-01 17:31:21 +01:00
3wc 9a17817cc8 Tiny tweak to `abra help` advice
continuous-integration/drone/push Build is passing Details
2021-01-01 17:57:36 +02:00
3wc fff4b10a41 Gettin some help_
continuous-integration/drone/push Build is passing Details
See #50
2021-01-01 15:09:49 +02:00
3wc 886ae5b7f2 Fix help function names
continuous-integration/drone/pr Build is passing Details
2021-01-01 01:46:09 +02:00
3wc 5411c85793 Don't require weird app_ls format for abra help
continuous-integration/drone/pr Build is passing Details
2021-01-01 01:42:17 +02:00
3wc caa315e361 Add per-subcommand help 2021-01-01 01:13:17 +02:00
3wc e6b24fe65c Change -v option to `version` subcommand 2021-01-01 01:10:03 +02:00
Luke Murphy 406b9e374e
Only output length if using it
continuous-integration/drone/push Build is passing Details
Closes #67.
2020-12-31 18:16:01 +01:00
Luke Murphy ce0e0e893c
Use plain usage only when erroring out
continuous-integration/drone/push Build is passing Details
Closes #65.
2020-12-31 18:12:01 +01:00
Luke Murphy 44d3ac3a1c
Support pwqgen/pwgen checking
Closes #66.
2020-12-31 18:10:13 +01:00
Luke Murphy 5da9f26076
Remove old function
Follow on from 3936d6afc0.
2020-12-31 18:06:20 +01:00
Luke Murphy 55324524ca
Don't cut since `export ...` isn't in the env file
Closes #69.
2020-12-31 16:55:33 +01:00
3wc 29cc392dff Prompt on `app .. config` if $EDITOR is un-set
continuous-integration/drone/push Build is failing Details
Closes #41
2020-12-31 12:52:44 +02:00
3wc 0179f600f5 Change -v option to `version` subcommand 2020-12-31 11:47:12 +02:00
3wc 6761574d74 Add "app name" concept, and rename APP → TYPE
continuous-integration/drone/pr Build is failing Details
Ref #47
2020-12-30 21:26:17 +02:00
3wc 8384af8b95 First foray into <domain> → <app> 2020-12-30 13:47:41 +02:00
3wc b9e97688d6 ... and update docopt
continuous-integration/drone/push Build is passing Details
2020-12-30 13:43:17 +02:00
3wc 1055805c8d Merge duplicate `run` commands
continuous-integration/drone/push Build is passing Details
Closes #57
2020-12-30 13:33:57 +02:00
Luke Murphy 11c50ae98d
Use set -a/+a and docker env file formats
continuous-integration/drone/pr Build is failing Details
Closes #40.
2020-12-30 11:22:58 +01:00
decentral1se 34775f306b Merge branch 'main' into merge-logging
continuous-integration/drone/pr Build is passing Details
2020-12-30 11:21:03 +01:00
Luke Murphy 375a4dd29d
Re-add require_app_latest for custom commands
continuous-integration/drone/push Build is passing Details
Revision of 67cce192df.

See #54 (comment).
2020-12-30 11:19:55 +01:00
Luke Murphy 3936d6afc0
Merge logs/multilogs and avoid multitail external
continuous-integration/drone/pr Build is passing Details
2020-12-29 23:22:46 +01:00
Luke Murphy 67cce192df
Don't do more cloning that necessary
continuous-integration/drone/pr Build is passing Details
2020-12-29 17:06:49 +01:00
Luke Murphy 3a9e141b24
Pull latest changes
Closes #42.
2020-12-29 17:06:32 +01:00
Luke Murphy ebfe7ca4e8
Suppress output of clone and do better logging 2020-12-29 17:05:30 +01:00
Luke Murphy fff2fbe819
Prepare function name for new functionality 2020-12-29 17:05:00 +01:00
Luke Murphy f213c3df5f
Follow convention and show type of message 2020-12-29 17:04:17 +01:00
Luke Murphy f017324431
<app> -> <type>
continuous-integration/drone/pr Build is passing Details
Closes #48.
2020-12-29 14:56:50 +01:00
Luke Murphy 592f515ec4
Remove `abra server use`
continuous-integration/drone/pr Build is passing Details
2020-12-29 14:24:50 +01:00
3wc 77ba5652b2 Run "check" during "deploy", + "--skip-check"
continuous-integration/drone/push Build is passing Details
2020-12-29 11:15:14 +02:00
3wc 412729aac9 Fix calling `logs` with no arguments
continuous-integration/drone/push Build is failing Details
Closes #31
2020-12-27 12:23:16 +02:00
3wc 8022a2cb41 Add cheeky `network` command
continuous-integration/drone/push Build is failing Details
2020-12-27 12:07:10 +02:00
3wc 35182ed260 Get both `.. volume ..` and custom commands working 2020-12-27 12:07:10 +02:00
3wc d90c6ef361 Add `--no-tty` option to `app run` 2020-12-27 12:07:10 +02:00
3wc 40ca8dfe93 Add --server filter to `app list`..
.. and add `server <host> apps` as an alias.
2020-12-27 12:07:10 +02:00
3wc 7f009f927b Fix `app ls --status`
Closes #35
2020-12-27 12:06:39 +02:00
3wc 63c982c550 Fix custom commands loading
continuous-integration/drone/push Build is failing Details
2020-12-17 13:38:30 +02:00
3wc 0d202eedfc Reënable custom per-stack commands
continuous-integration/drone/push Build is failing Details
2020-12-14 12:33:22 +02:00
3wc cb2d563ea0 Fix status header
continuous-integration/drone/push Build is failing Details
2020-11-18 01:06:07 +02:00
3wc 059968a8cf Fix `abra app ls --status` 2020-11-18 00:40:26 +02:00
3wc c57069e0af Use ABRA_DIR instead of hard-coding .abra 2020-11-18 00:39:41 +02:00
3wc 946a527baa Add `app ... ps` command, and some comments 2020-11-16 17:29:35 +02:00
Luke Murphy 89d530a553
Use printf instead of echo like docker docs do
continuous-integration/drone/push Build is failing Details
2020-11-08 16:40:45 +01:00
Luke Murphy 25fe6808ad
Use one line and strip newlines on generation
continuous-integration/drone/push Build is failing Details
2020-11-08 16:34:26 +01:00
Luke Murphy 28b2d8ecc7
Strip whitespace 2020-11-08 16:34:21 +01:00
3wc fd735a1310 Add `app <domain> check` to sniff out missing vars
continuous-integration/drone/push Build is failing Details
Re #36
2020-11-06 23:14:26 +02:00
3wc e307286db7 Add `--status` option to `app ls`
continuous-integration/drone/push Build is failing Details
Closes #35
2020-11-06 22:35:48 +02:00
Luke Murphy f495ec0d94
Appease shellcheck
continuous-integration/drone/push Build is failing Details
2020-11-05 16:00:50 +01:00
decentral1se 0d62f01d5a Merge branch 'main' into new-pass-keys-generation
continuous-integration/drone/pr Build is failing Details
2020-11-05 15:57:32 +01:00
Luke Murphy eec55896a4
Implement password/key handling
continuous-integration/drone/pr Build is failing Details
2020-11-05 15:56:31 +01:00
Luke Murphy c2a56c6c09
Drop this broken catch-all
continuous-integration/drone/push Build is failing Details
Closes #29.
2020-11-01 21:15:06 +01:00
Luke Murphy 74dfd75fb1
Use same [] style once more
continuous-integration/drone/push Build is failing Details
2020-11-01 20:55:47 +01:00
Luke Murphy e8c0efa91e
Add --auto to app new for generation
continuous-integration/drone/push Build is failing Details
Step one of #32.
2020-11-01 20:54:43 +01:00
Luke Murphy 6bae48431c
Use same style as other [] options 2020-11-01 20:41:58 +01:00
Luke Murphy 57e3a34133
Make sure to clone on deploy as well
continuous-integration/drone/push Build is failing Details
2020-11-01 17:08:44 +01:00
Luke Murphy 33a49a8457
Trim whitespace
continuous-integration/drone/push Build is failing Details
2020-11-01 17:05:13 +01:00
Luke Murphy 5806e40c1c
Add require_app_clone 2020-11-01 17:05:10 +01:00
3wc 80f06ba0e1 Support >2 COMPOSE_FILEs
continuous-integration/drone/push Build is failing Details
2020-10-31 17:51:56 +02:00
3wc b226396764 Consistent y/n confirmation prompts 2020-10-30 20:57:13 +02:00
3wc 50651aeea1 Mollify shellcheck
continuous-integration/drone/push Build is failing Details
2020-10-30 18:30:53 +02:00
3wc 50ca4f8029 Tighten up options for `secret` commands
continuous-integration/drone/push Build is failing Details
2020-10-30 18:24:22 +02:00
3wc 0433da3689 Fix subcommand -> function mapper
continuous-integration/drone/push Build is failing Details
2020-10-30 18:17:06 +02:00
3wc 3e0b9e9475 Working completion `app` and `server`
continuous-integration/drone/push Build is failing Details
2020-10-30 17:52:47 +02:00
3wc c6b841de6c First stab 2020-10-30 17:52:47 +02:00
3wc 2daffc8694 Use bash `select`, tweak args 2020-10-30 17:52:46 +02:00
Luke Murphy b15a214049
WIP: app secret rm
continuous-integration/drone/push Build is failing Details
2020-10-30 02:09:59 +01:00
Luke Murphy 8d7194fcce
Add quotes
continuous-integration/drone/push Build is failing Details
2020-10-30 00:39:24 +01:00
Luke Murphy dbfe6f8097
Add initial CLI parsing for secret deletion
continuous-integration/drone/push Build is failing Details
2020-10-30 00:32:03 +01:00
Luke Murphy 26b994ab84
Add --pass for new apps command
continuous-integration/drone/push Build is failing Details
See #25.
2020-10-30 00:04:53 +01:00
3wc dba3c391bd Handle missing `tput` gracefully
continuous-integration/drone/push Build is failing Details
2020-10-29 19:40:19 +02:00
3wc 5a72ed0cfb Make `config` more chill, small gardening 2020-10-29 19:39:51 +02:00
3wc 85b8a4f459 Add config command 2020-10-29 19:35:59 +02:00
3wc 6e38dc35e5 Fix `run` subcommand 2020-10-29 19:35:57 +02:00
Luke Murphy 841e4fc61a
Explode if can't clone the app
continuous-integration/drone/push Build is failing Details
2020-10-28 18:24:28 +01:00
Luke Murphy c1d12eacc5
Fix typo 2020-10-28 18:24:15 +01:00
Luke Murphy 3b730d314b
Use basename when listing servers for `abra new`
continuous-integration/drone/push Build is failing Details
2020-10-28 18:05:53 +01:00
Luke Murphy 5df3a9fffb
Account for 0 or 1 servers
continuous-integration/drone/push Build is failing Details
2020-10-28 17:33:48 +01:00
Luke Murphy 3e3fe0e349
Create under servers directory
continuous-integration/drone/push Build is failing Details
2020-10-28 17:32:38 +01:00
Luke Murphy db766f4aec
Don't explode if you already have the context 2020-10-28 17:32:30 +01:00
3wc 8909a46d8c Add --force option to app .. delete
continuous-integration/drone/push Build is failing Details
2020-10-28 01:52:27 +02:00
3wc 8d139d4d28 Add undeploy/delete commands
Ref #4
2020-10-28 01:40:35 +02:00
3wc b6b80298c2 Add `.. secret auto` command
continuous-integration/drone/push Build is failing Details
2020-10-28 00:29:40 +02:00
3wc b1e8ac4498 Local server list, more tidying 2020-10-27 23:46:03 +02:00
3wc c5785089d6 Tidy up CLI commands, add `app list`
continuous-integration/drone/push Build is failing Details
2020-10-27 21:38:20 +02:00
3wc bec3272a41 .abra dir, `abra new`
continuous-integration/drone/push Build is failing Details
Closes #24

Ref #21
2020-10-27 17:58:34 +02:00
Luke Murphy dc3b772b72
Use server naming
continuous-integration/drone/push Build is failing Details
2020-10-26 18:40:04 +01:00
Luke Murphy 07d4f8cbdf
Remove abra.yml / yq stuff for now
continuous-integration/drone/push Build is failing Details
2020-10-26 18:36:28 +01:00
Luke Murphy 37c59a53ef
Drop interactive flags
continuous-integration/drone/push Build is passing Details
2020-10-26 18:31:03 +01:00
Luke Murphy cc060b8546
Fix error code 2020-10-26 18:02:24 +01:00
Luke Murphy e6458e5e60
Update parser once more 2020-10-26 17:30:37 +01:00
Luke Murphy 9580199616
Remove extra secrets help 2020-10-26 17:19:32 +01:00
3wc b59e902d18 Fix `logs`, `cp`, `multilogs
continuous-integration/drone/push Build is passing Details
Ref #18
2020-10-26 16:55:43 +02:00
3wc c50b1d8760 Goodbye, parse_subcommand! 👋
continuous-integration/drone/push Build is passing Details
Ref #18
2020-10-26 16:08:15 +02:00
3wc b49b510c43 Load custom commands in a function 2020-10-26 13:46:54 +02:00
3wc b68bfdfb43 Regnerate Docopt
continuous-integration/drone/push Build is passing Details
2020-10-26 13:35:58 +02:00
3wc 983e4af08c Use docopts variables
continuous-integration/drone/push Build is failing Details
Ref #18
2020-10-26 13:34:49 +02:00
3wc 6cf7cf843a Update server subcommands 2020-10-26 13:34:30 +02:00
3wc d37d8a0c66 Add default --tail option to `abra logs` 2020-10-26 13:33:56 +02:00
Luke Murphy a13e58c6c0
Finally work out subcommands
continuous-integration/drone/push Build is failing Details
2020-10-26 10:05:03 +01:00
Luke Murphy 44c41830a7
Finalise docopt parser integration
continuous-integration/drone/push Build is failing Details
2020-10-26 09:46:14 +01:00
Luke Murphy ae6c2c26ae
A first stab at docopt-sh integration
continuous-integration/drone/push Build is failing Details
2020-10-25 21:41:17 +01:00
3wc 16a09887e6 Rename `abra context` to `abra server` 2020-10-23 05:02:39 +02:00
3wc b7757b51b1 Fix `abra run` if there are 2 containers up
continuous-integration/drone/push Build is passing Details
2020-10-23 03:58:55 +02:00
Luke Murphy f15dfd9f5f
First stab at new help
continuous-integration/drone/pr Build is passing Details
2020-10-22 21:16:30 +02:00
3wc 66dcaedfd0 Add `stack` and `volume` as shortcuts to docker
continuous-integration/drone/push Build is passing Details
2020-10-06 20:27:50 +02:00
3wc 6598aabc37 Work even if a local path contains $SERVICE
continuous-integration/drone/push Build is passing Details
2020-10-01 01:08:29 +02:00
3wc 6759e6a175 Show multiple COMPOSE_FILEs better
continuous-integration/drone/push Build is passing Details
Fixes #16
2020-09-29 00:17:26 +02:00
3wc 8735362580 Load custom commands from $ABRA_STACK_DIR too
continuous-integration/drone/push Build is passing Details
2020-09-28 15:02:18 +02:00
3wc 7223dca951 Re-enable running commands as another user
continuous-integration/drone/push Build is passing Details
Fixes #14
2020-09-27 23:45:39 +02:00
3wc dd9444b036 Add `context init` command to set up remote swarm
continuous-integration/drone/push Build is passing Details
2020-09-27 13:26:27 +02:00
3wc 81e24b6f72 Remove debugging from secret_generate 2020-09-27 13:26:15 +02:00
3wc 77eb83b128 Add credit to sub_multilogs
continuous-integration/drone/push Build is passing Details
2020-09-25 00:48:46 +02:00
3wc ff7fcf2201 Combined logging
continuous-integration/drone/push Build is passing Details
Closes #8
2020-09-25 00:36:23 +02:00
3wc b0d525a980 Tweak usage text 2020-09-24 21:19:40 +02:00
3wc aa1ffd5d8a Add success() method & `secret insert` subcommand 2020-09-24 21:17:08 +02:00
3wc 5627e67bf7 Bail if we can't load the specified $ABRA_ENV
continuous-integration/drone/push Build is failing Details
2020-09-24 14:47:00 +02:00
3wc 29343369f3 Further tidy-up (+ add warning()) 2020-09-24 14:47:00 +02:00
3wc 427ed97678 Update README and tweak default STACK_DIR 2020-09-24 14:47:00 +02:00
3wc b01fee3c86 Add -e, -c and ABRA_STACK_DIR options..
..and tidy up a little
2020-09-24 14:46:57 +02:00
Luke Murphy a065f5f2a6
Rough and ready upgrading
continuous-integration/drone/push Build is passing Details
2020-09-22 14:17:12 +02:00
3wc f4798bf3bd Context set-up, Subsubcommands, COMPOSE->{_FILE}
continuous-integration/drone/push Build is passing Details
2020-09-22 00:08:13 +02:00
3wc 46de298b7f Appease shellcheck
continuous-integration/drone/push Build is passing Details
2020-09-19 12:02:55 +02:00
3wc 5a646abb12 Respect COMPOSE var to make optional services easier
continuous-integration/drone/push Build is failing Details
2020-09-18 23:42:01 +02:00
3wc 4658e3484c Add `abra cp` command to push & pull files 2020-09-14 19:16:34 +02:00
Luke Murphy f0a17bfd87
Add yq key checking for abra.yml
continuous-integration/drone/push Build is passing Details
2020-09-14 00:16:46 +02:00
Luke Murphy 6fdb0d64af
Un-bork quoting to allow splitting
continuous-integration/drone/push Build is passing Details
Closes autonomic-cooperative/abra#12.
2020-09-13 23:36:35 +02:00
Luke Murphy 67dafbb274
Remove bad quoting 2020-09-13 23:33:55 +02:00
3wc dfe588d7f8 Don't try and show $DOMAIN if undefined
continuous-integration/drone/push Build is passing Details
Fixes #11
2020-09-13 17:43:12 +02:00
Luke Murphy c7e5e3cc98
Appease shellcheck
continuous-integration/drone/push Build is passing Details
2020-09-13 09:31:43 +02:00
3wc 76986927eb Allow passing arguments to `logs`
continuous-integration/drone/push Build is failing Details
2020-09-12 14:03:11 +02:00
3wc b67d45e14d Load per-stack commands from abra-commands.sh..
continuous-integration/drone/push Build is failing Details
.. and add a new `abra run_args` command to allow adding arguments to
`docker exec`.
2020-09-11 18:04:47 +02:00
3wc 8da3e7dfca Move -a processing, another shellcheck fix
continuous-integration/drone/push Build is failing Details
2020-09-11 16:04:48 +02:00
3wc 69e00bafd6 Fix shellcheck error?
continuous-integration/drone/push Build is failing Details
2020-09-11 13:07:01 +02:00
3wc ea79ad809a Allow overriding the STACK_NAME..
continuous-integration/drone/push Build is failing Details
..to be able to run e.g. `abra -a traefik logs traefik`
2020-09-11 12:58:59 +02:00
3wc 348e4ca255 Error if .envrc is blocked
Closes #6
2020-09-11 12:58:11 +02:00
3wc ebb763518a `deploy` status, install globally, rename run
continuous-integration/drone/push Build is passing Details
2020-09-09 01:55:03 +02:00
3wc 86785b6aea Custom command to generate passwords
continuous-integration/drone/push Build is passing Details
2020-09-08 20:10:37 +02:00
Luke Murphy 9c89834d20
Add attempt at logs command
continuous-integration/drone/push Build is passing Details
2020-09-08 09:10:37 +02:00
Luke Murphy c29ce5cdda
Appease shellcheck
continuous-integration/drone/push Build is passing Details
2020-09-08 08:58:49 +02:00
Luke Murphy 59e54504fe
Format out some whitespaces 2020-09-08 08:49:27 +02:00
3wc a8a83f9e06 Initial import 2020-09-07 23:29:29 +02:00