summaryrefslogtreecommitdiff
path: root/lib (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-11-28various fixes to bugsstuebinm5-83/+96
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
2021-11-23why oh why does the prelude contain unsafe functionsstuebinm1-1/+1
some parts of haskell are really, really old …
2021-11-23add a severity attribute to the json outputstuebinm1-11/+16
2021-11-20whoops, forgot to add a filestuebinm1-0/+80
2021-11-20make link adjustments configurablestuebinm3-43/+48
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.
2021-11-19add domain allow- and blocklists for weblinksstuebinm3-4/+29
(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)
2021-11-19fix group layer handlingstuebinm1-9/+22
we don't want to accidentally copy maps, whoopsie
2021-11-19add lint for empty group layersstuebinm1-0/+7
2021-11-19deal with group layersstuebinm2-9/+37
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 …
2021-11-18assorted lints for properties found in some mapsstuebinm1-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)
2021-11-17add warnings for as-yet unlinted layer propertiesstuebinm1-0/+9
2021-11-17small fixesstuebinm1-8/+7
2021-11-17make map parser work with more mapsstuebinm2-7/+39
I found yet more properties that weren't really documented or weren't marked as optional, hurray!
2021-11-17map format: turns out more things are optionalstuebinm1-6/+6
the unhelpfulness of the spec is slowly starting to grate … Anyways, apparently a lot more properties don't have to be present, and you find out by finding maps somewhere that work but currently fail the parser.
2021-11-17exit with code 1 if maximum lint level exceededstuebinm3-14/+25
2021-11-16reject map urls starting with /_/stuebinm1-3/+6
2021-11-16add adjustment: add prefix for openWebsitestuebinm2-2/+6
2021-11-14disable print output when copying filesstuebinm1-2/+2
(this would otherwise break the json schema if `--json` is given)
2021-11-14config options: implement script-related optionsstuebinm3-2/+20
2021-11-14config: some small documentationstuebinm1-0/+4
2021-11-14config option: don't copy asset filesstuebinm2-21/+27
2021-11-14Functional jitsiRoomAdminTag adjustmentstuebinm7-35/+54
also yet another typeclass™, because why not?
2021-11-14add some simple config optionsstuebinm1-9/+30
2021-11-14too much type level stuff to read a config filestuebinm1-0/+99
This got kinda out of hand, but it can now (a) read a json config file and (b) patch that with another json given on the command line to change some of the options given in the file. No, I probably didn't need to make the `patch` function sufficiently general to work with arbitrary records, but it was kinda fun to do.
2021-11-10fail on missing map assetsstuebinm1-3/+8
(but not (yet?) on missing maps/entrypoints)
2021-11-10copy map assets (and refuse if any are missing)stuebinm2-22/+56
2021-11-10extra module for repository writeoutstuebinm3-10/+33
2021-11-10remove dead codestuebinm2-41/+11
(also fix some hlints) This removes some code that was apparently dead and I never noticed. I only noticed now since it wouldn't work with the newer versions of Aeson anymore.
2021-11-10little code cleanupstuebinm2-8/+6
2021-11-09first example of a map adjustmentstuebinm5-33/+81
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.
2021-11-02monad plumbing to let the linter modify thingsstuebinm2-14/+24
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?)
2021-10-30better lint messagesstuebinm1-10/+10
2021-10-30turns out records are just sugarstuebinm1-8/+2
(and one that contains almost only mempty can be written much shorter than I thought it could)
2021-10-30yet more tiled propertiesstuebinm2-2/+6
2021-10-30re-enable dependency checkingstuebinm2-21/+22
2021-10-30also flipping tileset lint output structurestuebinm2-26/+36
2021-10-30added more keys to the Tiled formatstuebinm1-30/+51
(apparently, some of them aren't even in the spec, just the changelog!)
2021-10-30readable prettyprint for inverted lint outputstuebinm2-1/+5
the previous state was a hacky mess
2021-10-30flipping the output map structurestuebinm4-19/+49
for now, just with layers. Instead of listing by layer (and giving lints multiple times), list by lint type (and list all layers in which this lint was applicable). This is a bit wonky for now, but readability of output is much better.
2021-10-30make aeson instances agree with themselvesstuebinm3-198/+79
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 …
2021-10-30more sensible msg for "property required by"-lintsstuebinm1-1/+8
the previous state appears to have been an oversight and made no sense at all.
2021-10-30add tileset property lintingstuebinm4-16/+47
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 ...
2021-10-30add warning for very large tileset imagesstuebinm1-2/+3
2021-10-01rename to walintstuebinm3-44/+43
2021-09-30check if assets existstuebinm1-8/+40
2021-09-30remove unused Maybestuebinm1-4/+4
2021-09-30nicer json output which leaks less haskell namesstuebinm4-40/+56
2021-09-30simple map-map link dependency checkingstuebinm6-21/+106
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.
2021-09-23prettier pretty printing and stuffstuebinm4-37/+71
also, configurable log level, which only required relaxing the type system once!
2021-09-23some documentationstuebinm2-5/+20