summaryrefslogtreecommitdiff
path: root/lib/Properties.hs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* various fixes to bugsstuebinm2021-11-281-34/+34
| | | | | | | | | | Among them - always set correct exit codes - refuse to write out files if the out path already exists - calculate the overall severity correctly - slightly changed the json output schema - also output the text output format in json - make the default config.json suitable for a production environment
* make link adjustments configurablestuebinm2021-11-201-24/+35
| | | | | | this allows for creating custom URI "schemas" in the linter's config, which may be either allowed, prefixed, or translated according to some (domain-based) substitution.
* add domain allow- and blocklists for weblinksstuebinm2021-11-191-4/+14
| | | | | | (these use a rather crude regex for parsing, which may be possible to side-step, and which should probably be replaced by something that was actually written while following the relevant rfc)
* add lint for empty group layersstuebinm2021-11-191-0/+7
|
* deal with group layersstuebinm2021-11-191-5/+0
| | | | | I have no idea why these even exist, but apparently they do, so here's some code to deal with them in a hopefully useful manner …
* assorted lints for properties found in some mapsstuebinm2021-11-181-17/+56
| | | | | (mostly to do with the scripting API, but also some old ones which are already deprecated / not even mentioned in the documentation anymore)
* add warnings for as-yet unlinted layer propertiesstuebinm2021-11-171-0/+9
|
* make map parser work with more mapsstuebinm2021-11-171-2/+14
| | | | | I found yet more properties that weren't really documented or weren't marked as optional, hurray!
* reject map urls starting with /_/stuebinm2021-11-161-3/+6
|
* add adjustment: add prefix for openWebsitestuebinm2021-11-161-2/+5
|
* config options: implement script-related optionsstuebinm2021-11-141-2/+13
|
* Functional jitsiRoomAdminTag adjustmentstuebinm2021-11-141-6/+11
| | | | also yet another typeclass™, because why not?
* little code cleanupstuebinm2021-11-101-1/+1
|
* first example of a map adjustmentstuebinm2021-11-091-10/+21
| | | | | | | | | this also includes some more monad plumbing, and an option for the linter to actually write things out again. Some of the previous commit was reverted a bit since it turned out to be stupid, but overall it was suprisingly easy once I got around to it, so yay! i guess Also includes a fairly silly example of how to use it.
* monad plumbing to let the linter modify thingsstuebinm2021-11-021-1/+1
| | | | | | | I'm not sure if this is the right approach tbh — it lets the LintWriter monad modify its own context, but maybe we might run into cases where lints and modifications depend on each other across longer "distances" than just the context of the linter (i.e. just across a property?)
* better lint messagesstuebinm2021-10-301-10/+10
|
* re-enable dependency checkingstuebinm2021-10-301-2/+3
|
* make aeson instances agree with themselvesstuebinm2021-10-301-14/+7
| | | | | | | | | | | | | | | | This cleans up all the old rubble that came from the Tiled package I originally took from hackage. It now uses generics instead of implementing all the ToJSON and FromJSON instances by hand, and (deserialize . serialise) will now actually return a (semantically) equivalent json. It'll now also reject keys that it doesn't know, which required adding some in several places which the tiled package didn't know about (or which were introduced after it was originally written, dunno). Several more Maybes are required now, to represent the difference between e.g. empty lists and on set value, which does make the code slightly weirder in other places …
* more sensible msg for "property required by"-lintsstuebinm2021-10-301-1/+8
| | | | | the previous state appears to have been an oversight and made no sense at all.
* add tileset property lintingstuebinm2021-10-301-6/+23
| | | | | | this reorganised the whole linting for tilesets somewhat; it's now very similar to that linting layers, and it may be possible to abstract some of the code away ...
* add warning for very large tileset imagesstuebinm2021-10-301-2/+3
|
* simple map-map link dependency checkingstuebinm2021-09-301-1/+4
| | | | | | | | This is purely based on a set difference, i.e. it won't catch stupid things like a map linking to itself, a map link going only one-way, etc. Also, it only handles map links; it doesn't check if all ressource files referenced by a map actually exist.
* very naïve handling of directoriesstuebinm2021-09-231-1/+1
|
* use PrettyPrinter morestuebinm2021-09-201-4/+3
|
* typechecking for path depths!stuebinm2021-09-201-53/+67
| | | | | | This now checks if relative paths are still inside the repository, as a general safety mechanism to stop the linter from accidentally reading other things, as well as a nice hint for users.
* rebuilding the core LintWriter monadstuebinm2021-09-201-11/+11
| | | | | it is no longer an Either since that wasn't used anyways, but is now also a Reader.
* simple parsing of local dependency pathsstuebinm2021-09-201-11/+16
|
* moving code aroundstuebinm2021-09-201-57/+69
|
* lint embedded tilesetsstuebinm2021-09-201-2/+13
|
* lint map things that aren't custom propertiesstuebinm2021-09-201-4/+31
|
* lint general map propertiesstuebinm2021-09-201-63/+94
|
* some properties require non-empty layersstuebinm2021-09-191-41/+78
|
* support for properties that aren't stringsstuebinm2021-09-191-36/+52
| | | | apparently i couldn't read or something?
* collecting map dependenciesstuebinm2021-09-181-8/+22
|
* can collect dependencies!stuebinm2021-09-181-6/+8
| | | | | | | There's now a Lint type, which may be either a "true lint" (which is a Hint, which contains some message and level of severity), or a Depends, which indicates that this map depends on some ressource or other (and is otherwise treated as a special info Hint in all other cases)
* type check propertiesstuebinm2021-09-181-53/+15
| | | | | | /finally/ figured out that all properties just look like {name, value, type} so now that's abstracted away and Properties.hs doesn't look like javascript anymore
* tame the stringsstuebinm2021-09-181-8/+9
| | | | | | Adds a PrettyPrint typeclass which operates on Text and should replace Show, since constantly converting strings from linked lists to arrays seems somewhat silly.
* some unused codestuebinm2021-09-161-5/+2
|
* moving lots of code aroundstuebinm2021-09-161-0/+116
(also renaming things now that concepts seem a bit clearer)