blob: fa83ca92e6017ba4f806f81bc62d801580e0aa93 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
Data model!
Dynamic data lookup should opportunisticly cache any associated cheap data. For instance, there are three data from stat(/srv/git/$reponame.git), so looking up one should grab the others. /etc/password parsing would be similar.
[[!table format=dsv delimiter=# data="""
datum #stored location #constraint
username #usually $ENV{SUDO_USER} # !~ /^git-|^ikiwiki-/ and =~ /^[a-zA-Z0-9_.][a-zA-Z0-9_.-]+$/
uid #/etc/passwd # None
email #/etc/passwd GECOS #Email::Valid::Loose->new("-fqdn" => 1, "-fudge" => 0, "-local_rules" => 0, "-mxcheck" => 1, "-tldcheck" => 0 );
repoaccess #/etc/group git-$reponame entry # None
reponame #/srv/git/$reponame.git # =~ /^[a-z0-9][a-z0-9+.-]+$/
repodescription #/srv/git/$reponame.git/description # =~ /^[\x{0020}-\x{FDCF}\x{FDF0}-\x{FFFD}]{1,80}$/
repoowner #stat /srv/git/$reponame.git uid; might be better as first non-ikiwiki user in /etc/group git-$reponame entry # None
repoglobalwritable #stat /srv/git/$reponame.git all write bit # None
repoglobalreadable #stat /srv/git/$reponame.git all read bit # None
repoikiwikidisable #UNDECIDED; probably in /srv/git/$reponame.git # None
repointernaltemplates #UNDECIDED; probably in /srv/git/$reponame.git # None
repospecialdomain #UNDECIDED; probably in /srv/git/$reponame.git # None
"""]]
|