Richard Hansen
1cfbf88f7c
run_cmd: Enhance with ability to return stdout as string
2021-02-18 19:18:59 +00:00
Richard Hansen
d8bb5aa009
plugins: Eliminate unnecessary run_npm.js
...
I had anticipated more shared logic than we actually need (the
abstraction in `run_npm.js` is YAGNI).
2021-02-18 19:18:59 +00:00
Richard Hansen
689a75b381
plugins: Pass --no-production
instead of setting NODE_ENV=development
2021-02-18 19:18:59 +00:00
Richard Hansen
dcf7891316
plugins: Improve logging of plugin events
...
This will make it easier to troubleshoot plugin and npm issues.
2021-02-18 19:18:59 +00:00
Richard Hansen
a8479e4a0e
lint: Fix some ESLint errors in pluginfw
2021-02-18 19:18:59 +00:00
Richard Hansen
f868788417
Remove unnecessary path.normalize()
calls
...
`path.join()` already normalizes.
2021-02-18 19:18:59 +00:00
Richard Hansen
fc9f236977
plugins: Use npm ls
to list the installed plugins
...
This speeds up startup considerably, and we get rid of a lot of buggy
code.
This works with both npm v6.x and v7.x.
2021-02-09 22:18:35 +00:00
Richard Hansen
746cc8cc34
pluginfw: In-line formatPluginsWithVersion()
...
There's only one caller of the function, so move the logic to where it
is used.
2021-02-04 08:41:00 +00:00
Richard Hansen
2b32bc1840
lint: src/static/js/pluginfw/plugins.js
2021-02-04 08:41:00 +00:00
Richard Hansen
a06662fd00
pluginfw: Delete commented-out code
2021-02-04 08:41:00 +00:00
John McLear
b3dda3b11c
lint: src/static/js/pluginfw/*.js
2021-01-30 17:00:40 -05:00
Richard Hansen
f54dcbc766
lint: Re-run eslint --fix
2020-12-16 22:09:48 +00:00
Richard Hansen
8e5fd19db2
lint: Run eslint --fix
on src/
2020-11-24 20:06:12 +00:00
Richard Hansen
cedd27e4fe
plugins: Default the module name to the plugin name
2020-11-13 20:30:27 +00:00
Richard Hansen
8a918fbc46
plugins: async
ify more functions
2020-11-13 20:30:27 +00:00
Richard Hansen
9f575ebc84
plugins: Delete unused ensure
function
2020-11-13 20:30:27 +00:00
Richard Hansen
ac5614dadd
plugins: Don't export callInit
...
It's unused outside of this module.
Also use an arrow function.
2020-11-13 20:30:27 +00:00
Richard Hansen
ba4794cf8a
plugins: Call require('./hooks')
at top level
2020-11-13 20:30:27 +00:00
Richard Hansen
14a9479e69
plugins: Use functions from fs.promises
2020-11-13 20:30:27 +00:00
Richard Hansen
da459888dc
plugins: Move plugin definitions to avoid monkey patching
...
Also document the plugin data structures.
2020-09-08 00:50:24 +01:00
Richard Hansen
8cf2bcaeb4
plugins: Fix type typo
...
`exports.parts` is a topologically sorted array, but the intermediate
collection of parts assembled in `plugins.update()` is associative.
2020-09-08 00:47:32 +01:00
Richard Hansen
442fe1e86f
pluginfw: Always include the function name in hook_fn_name
...
Plugin authors are allowed to omit the function name in the `ep.json`
parts definition. For example:
```
{
"parts": [
{
"name": "ep_example",
"hooks": {
"authenticate": "ep_example",
"authFailure": "ep_example"
}
}
]
}
```
If omitted, the function name is assumed to be the same as the hook
name. Before this change, `hook_fn_name` for the example hooks would
both be `/opt/etherpad-lite/node_modules/ep_example`. Now they are
suffixed with `:authenticate` and `:authFailure`. This improves
logging, and it makes it possible to use `hook_fn_name` to uniquely
identify a particular hook function.
2020-09-05 22:43:17 +01:00
muxator
72ccb28382
AbsolutePaths: initial work to allow Etherpad to be run without changing CWD
...
With this change, it is no longer necessary to "cd" to the Etherpad base
directory to start it: Etherpad runs from everywhere.
Known issues:
- unless the program is started as before (CWD == base directory) it is still
not possible to install & uninstall plugins via the web interface
--HG--
branch : absolute-paths
2020-04-19 04:51:50 +02:00
Ray Bellis
80b3019154
pluginfw/plugins.js: converted to Promise API
2019-01-18 13:52:37 +00:00
muxator
9497ee734f
prepare to async: trivial reformatting
...
This change is only cosmetic. Its aim is do make it easier to understand the
async changes that are going to be merged later on. It was extracted from the
original work from Ray Bellis.
To verify that nothing has changed, you can run the following command on each
file touched by this commit:
npm install uglify-es
diff --unified <(uglify-js --beautify bracketize <BEFORE.js>) <(uglify-js --beautify bracketize <AFTER.js>)
This is a complete script that does the same automatically (works from a
mercurial clone):
```bash
#!/usr/bin/env bash
set -eu
REVISION=<THIS_REVISION>
PARENT_REV=$(hg identify --rev "${REVISION}" --template '{p1rev}')
FILE_LIST=$(hg status --no-status --change ${REVISION})
UGLIFYJS="node_modules/uglify-es/bin/uglifyjs"
for FILE_NAME in ${FILE_LIST[@]}; do
echo "Checking ${FILE_NAME}"
diff --unified \
<("${UGLIFYJS}" --beautify bracketize <(hg cat --rev "${PARENT_REV}" "${FILE_NAME}")) \
<("${UGLIFYJS}" --beautify bracketize <(hg cat --rev "${REVISION}" "${FILE_NAME}"))
done
```
2019-02-08 23:20:57 +01:00
Claudius Mbemba
8d60bd5234
fixed plugin dependency issue
...
running ./bin/run.sh after the 1st time caused the following error "TypeError: Cannot read property 'dependencies' of undefined".
fixed it.
2017-05-30 05:36:29 +02:00
Stefan
00c9caf7a3
Updated npm to 4.0.2 and removed recursive searching for ep-plugins
2016-11-20 11:28:17 +01:00
John McLear
1f471b0f81
show versions of plugins at startup, fixes #2642
2015-04-28 23:41:55 +01:00
Marcel Klehr
78e64ffea8
Mimic, replace or work around removed npm utils.
2012-10-28 18:34:20 +01:00
Chad Weider
1258ed3a0d
Split client and server plugin functionality.
...
There is virtually no shared code for the client, extract it into its own
module and do away with the switches.
2012-09-11 21:16:47 -07:00
Chad Weider
3631f0ece3
Inject special normalization behavior.
2012-09-11 21:16:47 -07:00
Chad Weider
e375b6212a
Static functions are static.
2012-09-11 21:16:47 -07:00
Chad Weider
b0d71df604
Fix worthless indentation.
2012-09-11 21:16:47 -07:00
Marcel Klehr
227477967f
Fix plugin loader
...
make it work on client side and with relative paths
2012-06-29 12:40:16 +02:00
Marcel Klehr
b0d369883b
Fix plugin loader to work with windows paths (e.g. 'D:\foo\...')
2012-06-28 15:58:28 +02:00
Egil Moeller
cf2f0b72a3
More plugin information
2012-06-04 14:33:38 +02:00
Matthias Bartelmeß
513deef768
added baseURL export to pad.js, timeslider.js, plugins.js, fixing #670
2012-04-25 10:23:58 +02:00
John McLear
0a9fcc267f
Merge pull request #658 from redhog/master
...
Bugfixes for when plugins are installed as dependencies for other plugins
2012-04-20 05:56:57 -07:00
Egil Moeller
72c972b256
Bugfix for recursive dependency-installation and paths
2012-04-20 14:37:53 +02:00
0ip
a743112170
Fix #626 , Plugins don't work if pad is on a subdir
2012-04-19 19:44:44 +03:00
Chad Weider
e695c716e5
Work around strange order of execution bug in Firefox. Fixes #620
2012-04-11 02:08:50 -07:00
Egil Moeller
a3c9407ed6
Merge branch 'develop' of git://github.com/Pita/etherpad-lite
2012-04-05 20:14:48 +02:00
Egil Moeller
8cd1298a16
Added init hook to install plugin database default content and the like
2012-04-05 01:48:12 +02:00
Matthias Bartelmeß
4acbb11fd5
Merge branch 'develop' into feature/implicit_hooks
2012-04-04 15:04:10 +02:00
Matthias Bartelmeß
5115f74f66
use hook name as function name, if not specified
...
Example `"[hookName]": "ep_plugin/static/js/index:[hookName]"` becomes `"[hookName]": "ep_plugin/static/js/index"`
2012-04-04 15:03:28 +02:00
Matthias Bartelmeß
5a77979486
make jshint happy
2012-04-04 09:51:46 +02:00
Matthias Bartelmeß
b2173a1084
get rid of node.extend (since duplicated by underscorejs)
2012-04-04 09:40:18 +02:00
Egil Moeller
6120a0b7aa
Merge branch 'develop' of git://github.com/Pita/etherpad-lite
2012-03-27 22:36:48 +02:00
John McLear
beec69ac1c
Merge pull request #556 from fourplusone/feature_jquery
...
added jQuery to ace2_inner, make it embeddable, ace hooks work now propertly in ace2_inner
2012-03-26 08:10:58 -07:00
Matthias Bartelmeß
208d88cc03
proceed if plugin-definitions.json didn't load properly
2012-03-24 13:29:15 +01:00