agendafs

A filesystem for your calendar.

git clone git://mccd.space/agendafs

agendafs.5.scd (3169B)

      1 MOUNT.AGENDAFS(5)
      2 
      3 # NAME
      4 
      5 mount.agendafs - Mount notes from vdir storages
      6 
      7 # SYNOPSIS
      8 
      9 *mount.agendafs* [-fdnrsvw] [*-o* _<OPTION>_] _MOUNTPOINT_
     10 
     11 # DESCRIPTION
     12 
     13 Agendafs is a virtual filesystem that loads vdir storages to a mountpoint, 
     14 allowing you to create and edit notes.
     15 
     16 # OPTIONS
     17 
     18 Most mount options are described in _mount.fuse_(8) and _mount_(8). Below
     19 are agendafs specific options:
     20 
     21 *vdir=*<_path_>
     22 	Use the specified vdir storage path as mountpoint. Currently
     23 	only one calendar is supported. Required.
     24 
     25 *ext=*<_format_>
     26 	Automatically assign a file extension to files created outside
     27 	of Agendafs. Disabled by default.
     28 
     29 # XATTRIBUTES
     30 
     31 Agendafs has support for xattributes (*xattr*(7)) to modify icalendar
     32 fields. See the man pages of *setfattr*(1) and *getfattr*(1) for basic
     33 usage. Built-in extended attributes are:
     34 
     35 *user.categories*
     36 	A comma separated list of categories to classify an entry.
     37 
     38 *user.class*
     39 	The classification of an entry. Can be either *public*,
     40 	*private* or *confidential*. By default classification is set to
     41 	*private*.
     42 	
     43 *user.sibling*
     44 	Reserved for the future.
     45 
     46 *user.uid*
     47 	Immutable. The underlying UUID for the file. In the future, this
     48 	can be used to reference notes with *user.sibling*.
     49 
     50 *user.dtstart*
     51 	Date-time start, ISO-formatted. Specifies the "beginning" of the
     52 	file.
     53 
     54 *user.status*
     55 	Either *draft* or *final*. Can not be removed. By default, 
     56 	directories are set to *final* while files are set to *draft*.
     57 
     58 Arbitrary user-provided attributes are also supported. Limits are set to
     59 255 bytes for attributes and 64 kilobytes for their value.
     60 
     61 # FILE PERMISSIONS
     62 
     63 Agendafs inherits the file permissions of the files in the underlying
     64 vdir storage.
     65 
     66 Currently hidden files (I.E. files prefixed with a dot) are not permitted
     67 as they are reserved for future functionality.
     68 
     69 # EXAMPLES
     70 
     71 Mount vdir storage with agendafs to your home journal directory:
     72 
     73 	```
     74 	$ mount.agendafs \\
     75 	  -o vdir=$HOME/.calendars/vjournal-calendar \\
     76 	  $HOME/journal
     77 	```
     78 
     79 Mount vdir storage, and let files created outside of Agendafs automatically
     80 use Markdown:
     81 
     82 	```
     83 	$ mount.agendafs \\
     84 	  -o ext=md \\
     85 	  -o vdir=$HOME/.calendars/vjournal-calendar \\
     86 	  $HOME/journal
     87 	```
     88 
     89 Find all files with categories:
     90 
     91 	```
     92 	$ find . -type f -exec getfattr -n user.categories {} \\
     93 	  + 2>/dev/null
     94 	```
     95 
     96 Find files by category MY_CATEGORY:
     97 
     98 	```
     99 	$ find . -type f -exec getfattr -n user.categories {} + 2>/dev/null \\
    100 	  | grep -B1 "MY_CATEGORY" \\
    101 	  | grep '^# file' \\
    102 	  | awk '{ print substr($0, 9) }'
    103 	```
    104 
    105 The dtstart xattribute can be used for journaling. Simply set the xattribute
    106 when creating a new file:
    107 
    108 	```
    109 	$ export FILE="Meeting with John"; export TIME=$(date +'%Y%m%d');
    110 	$ touch "$FILE" && setfattr -n user.dtstart -v $TIME "$FILE"
    111 	```
    112 
    113 # SEE ALSO
    114 
    115 *pimsync*(1) *mount.fuse*(8) *mount*(1) *fusermount*(1) *xattr*(7) *getfattr*(1) *setfattr*(1) *agendafs-examples*(7)
    116 
    117 vdirsyncer (https://vdirsyncer.pimutils.org/en/stabl)
    118 
    119 
    120 # AUTHORS
    121 
    122 Maintained by Marc Coquand <marc@coquand.email>. Up do date sources can be found at
    123 https://git.sr.ht/~marcc/agendafs and bugs/patches can be submitted by email to
    124 ~marcc/agendafs@lists.sr.ht.
    125