Moodle is now available
One option would be picking common types of plugins and supporting those. Like these:
/path/to/moodle/theme/ - themes
/path/to/moodle/mod/ - activity modules and resources
/path/to/moodle/blocks/ - sidebar blocks
/path/to/moodle/question/ - question types/behaviours/formats
/path/to/moodle/course/format/ - course formats
/path/to/moodle/admin/report/ - admin reports
/path/to/moodle/local - Generic plugins for local customisations
/path/to/moodle/auth - Auth plugins
/path/to/moodle/enrol - Enrollment methods
/path/to/moodle/filter - Filters
/path/to/moodle/webservice - Custom webservices
/path/to/moodle/portfolio - Portfolio plugins (useful for Mahara)
Could we symlink those? Part of me is concerned about the "why is x plusing supported on cloudron but not y" for more obscure use cases which might cause more support traffic, but I suppose that part is your call as you and @nebulon are the ones that have to handle that support traffic.
robi last edited by
sounds like we need to make an upstream PR o improve the plugin directory structure.. then we can symlink just that directory and not individual plugins as they get installed.
is there a config change option on where to save plugins?
@atrilahiji It's too much to symlink. I think /app/data it is. Sucks, but can't blame them really. I saw a copyright header from 1999 in the code (!). That was about the time I was learning to program, hee hee.
I tried several plugins and they all really rely on the code writing all over, so there is no point wasting time trying to fit it into Cloudron's packaging model. For a start, I will go with the list you gave me and we can just fixup the package as we go.
@girish Yeah. Nobody ever said Moodle was well written :^)
But yeah their plugin system is pretty dated. I can push something to Moodle tracker (their JIRA instance) and see if they agree or decide to stick to their old ways.
@girish I pushed a MR here and my feelings would not be hurt if you decline it: https://git.cloudron.io/cloudron/moodle-app/-/merge_requests/3
This is super sketchy and I'm really not fond of it as a solution. In my mind its either this or move the code to /app/date entirely. Not sustainable the way it is now
@atrilahiji It's more complicated unfortunately All those subdirectories already have existing code from upstream. So, let's say
course/formathave existing subdirectories coming in from moodle release. So, we have to keep a copy and reverse symlink etc. It gets very ugly...
I have moved everything to /app/data now though (I pushed it). Will push a new package shortly. There was a php snippet in the docs that gave me all the interesting plugin directories - https://git.cloudron.io/cloudron/moodle-app/-/blob/master/plugintypes.php . And then I copy them over like https://git.cloudron.io/cloudron/moodle-app/-/blob/master/start.sh#L44
@atrilahiji To add to this, I also found that many plugin do
require ../../config.phpwhich breaks with symlinks.
@girish Yeah... the upgrade would get messy.
I was just looking over that. That script is magic.
This is what I get for panic pushing a MR. I'll remove that.
@girish Oh boy. Automating this has turned out to be quite the struggle. Thanks for all your work! I thought it would be easier than it turned out to be
Egg on face for me
@atrilahiji Ha ha, it's fine. Moodle has been requested often and this is hopefully a one time thing. I think the package is good to go now, the tests are done and all the plugins I could get hold of work.
Moodle is now marked as stable.