Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nextcloud/workflow_script
Rule based processing of files through specified external scripts
https://github.com/nextcloud/workflow_script
nextcloud nextcloud-app
Last synced: 1 day ago
JSON representation
Rule based processing of files through specified external scripts
- Host: GitHub
- URL: https://github.com/nextcloud/workflow_script
- Owner: nextcloud
- License: agpl-3.0
- Created: 2018-10-31T18:41:16.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-12-26T14:17:41.000Z (13 days ago)
- Last Synced: 2024-12-31T19:10:15.117Z (8 days ago)
- Topics: nextcloud, nextcloud-app
- Language: PHP
- Homepage: https://apps.nextcloud.com/apps/workflow_script
- Size: 865 KB
- Stars: 73
- Watchers: 4
- Forks: 17
- Open Issues: 27
-
Metadata Files:
- Readme: README.md
- Contributing: .github/contributing.md
- License: COPYING
- Authors: AUTHORS.md
Awesome Lists containing this project
README
# Nextcloud Workflow Script app
[![REUSE status](https://api.reuse.software/badge/github.com/nextcloud/workflow_script)](https://api.reuse.software/info/github.com/nextcloud/workflow_script)
This app enables Nextcloud to pass on files to external scripts when they were created or changed. By utilizing the workflow engine it allows Nextcloud administrators to define rules upon which matching files are enqueued to be run against a specified script. Eventually, the command is executed in a background job.
Learn more about workflows on https://nextcloud.com/workflow
![The settings screen](./screenshots/flow-ui.png)
## Placeholders
After enabling this app, rules can be defined in the admin settings, "External scripts" section.
When defining the script, you can specify one of the following placeholders that will be replaced with the appropriate value:
| Placeholder | Description | example value
--- | --- | ---
%e | the event type | *\OCP\Files::postCreate*, *\OCP\Files::postWrite* or *\OCP\Files::postRename*
%i | file id | *142430*
%a | actor's user id | *bob*
%o | owner's user id | *alice*
%n | nextcloud-relative path | *alice/files/Pictures/Wonderland/20180717_192103.jpg*
%f | locally available file | */tmp/oc_tmp_m6E6OO-.jpg*
%x | old nextcloud-relative file path (only on *rename* and *copy*) | *alice/files/Workbench/20180717_192103.jpg*When no placeholder was specified, then the exact command as given is being executed.
### Hints
Events for files and folders are triggered by file system operations. An operation like
\OCP\Files::postCopy is read, create and write a file.| Action | Events |
| --- | --- |
| Copy file | \OCP\Files::postCopy
\OCP\Files::postCreate
\OCP\Files::postWrite
| Create file | \OCP\Files::postTouch
\OCP\Files::postCreate
\OCP\Files::postWrite
| Delete file | \OCP\Files::postDelete
| Move file | \OCP\Files::postRename
| Rename file | \OCP\Files::postRename
| Update file | \OCP\Files::postWrite### Example
All plain text files should be passed to a tool that collects statistics of the writing style of a document and writes them back to a specified mount on the host, in a subfolder that matches the actor's ID, and filename consisting of the basename plus ".style" appended:
![pass a file to style and write back the results](./screenshots/flow_ui.png)
```
style -L de %f > /Lektorat/%a/$(basename %n).style
```And after the cron job was run, you'll find the results on the expected place:
```
$ cat /Lektorat/bob/Sanin\ -\ Artsybashev.txt.style
readability grades:
Kincaid: 10.2
ARI: 10.4
Coleman-Liau: 10.6
Flesch Index: 55.7/100
Fog Index: 12.5
Lix: 39.0 = school year 6
SMOG-Grading: 6.4
sentence info:
684404 characters
143798 words, average length 4.76 characters = 1.56 syllables
7606 sentences, average length 18.9 words
47% (3591) short sentences (at most 14 words)
18% (1390) long sentences (at least 29 words)
1 paragraphs, average length 7606.0 sentences
4% (378) questions
24% (1849) passive sentences
longest sent 164 wds at sent 339; shortest sent 1 wds at sent 4
word usage:
verb types:
to be (2154) auxiliary (1581)
types as % of total:
conjunctions 7% (10560) pronouns 9% (12733) prepositions 8% (10894)
nominalizations 1% (1638)
sentence beginnings:
pronoun (1209) interrogative pronoun (306) article (795)
subordinating conjunction (275) conjunction (701) preposition (529)```
## LimitationsThis app does not work with either encryption method.