automate/020_mutt-vdirsyncer.sh

55 lines
1.8 KiB
Bash

# https://github.com/pimutils/vdirsyncer
# https://vdirsyncer.pimutils.org/en/stable/tutorial.html
# https://hund.tty1.se/2020/08/12/how-to-sync-and-manage-your-caldav-and-carddav-via-the-terminal.html
# https://www.dj-bauer.de/once-forever-mutt-configuration-en.html
#
VDIRSYNCER_CONFIG=${HOME}/.config/vdirsyncer/config
NEXTCLOUD_URL="http://192.168.1.102"
PORT="8080"
NEXTCLOUD_USER="nextcloud"
NEXTCLOUD_PASSWORD="nextcloud" # password for nextcloud user
apt-get install -y vdirsyncer
cat << EOF | sudo tee "${VDIRSYNCER_CONFIG}"
[general]
# A cache path where the current status of vdirsyncer will be stored
status_path = "${TARGET}/.config/vdirsyncer/status/"
# Create a new sync connection between two storages we will define
[pair nextcloud_contacts]
a = "nextcloud_contacts_local"
b = "nextcloud_contacts_remote"
collections = ["from a", "from b"]
metadata = ["displayname"]
# A local storage to store the contacts
[storage nextcloud_contacts_local]
type = "filesystem"
# Path to where to store the vcards
path = "${TARGET}/.contacts/"
fileext = ".vcf"
# A remote storage to nextcloud
[storage nextcloud_contacts_remote]
type = "carddav"
# Can be obtained from nextcloud
url = "${NEXTCLOUD_URL}:${PORT}/remote.php/dav/addressbooks/users/${USERNAME}/"
username = "${NEXTCLOUD_USER}"
# Shell command which calls the external command pass and reads the password nextcloud
password.fetch = ["command", "pass", "nextcloud"]
# SSL certificate fingerprint
verify_fingerprint = "FINGERPRINT"
# Verify ssl certificate. Set to false if it is self signed and not installed on local machine
verify = true
EOF
# echo -n | openssl s_client -connect redhat.com:443 | openssl x509 -noout -fingerprint
echo -n | openssl s_client -connect "${NEXTCLOUD_URL}":8443 | openssl x509 -noout -fingerprint