2019-01-19 20:00:53 +00:00
|
|
|
# OCCWeb terminal
|
|
|
|
|
|
|
|
A web terminal for admins to launch Nextcloud's occ commands
|
|
|
|
|
|
|
|
|
2019-01-19 14:40:52 +00:00
|
|
|
Place this app in **nextcloud/apps/**
|
|
|
|
|
|
|
|
## Building the app
|
|
|
|
|
|
|
|
The app can be built by using the provided Makefile by running:
|
|
|
|
|
|
|
|
make
|
|
|
|
|
|
|
|
This requires the following things to be present:
|
|
|
|
* make
|
|
|
|
* which
|
|
|
|
* tar: for building the archive
|
2019-01-19 20:00:53 +00:00
|
|
|
* curl: used if phpunit and composer are not installed to fetch them
|
|
|
|
from the web
|
|
|
|
* npm: for building and testing everything JS, only required if a
|
|
|
|
package.json is placed inside the **js/** folder
|
|
|
|
|
|
|
|
The make command will install or update Composer dependencies if a
|
|
|
|
composer.json is present and also **npm run build** if a package.json
|
|
|
|
is present in the **js/** folder. The npm **build** script should use
|
|
|
|
local paths for build systems and package managers, so people that
|
|
|
|
simply want to build the app won't need to install npm libraries
|
|
|
|
globally, e.g.:
|
2019-01-19 14:40:52 +00:00
|
|
|
|
|
|
|
**package.json**:
|
|
|
|
```json
|
|
|
|
"scripts": {
|
|
|
|
"test": "node node_modules/gulp-cli/bin/gulp.js karma",
|
2019-01-19 20:00:53 +00:00
|
|
|
"prebuild": "npm install && node_modules/bower/bin/bower install &&
|
|
|
|
node_modules/bower/bin/bower update",
|
2019-01-19 14:40:52 +00:00
|
|
|
"build": "node node_modules/gulp-cli/bin/gulp.js"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Publish to App Store
|
|
|
|
|
2019-01-19 20:00:53 +00:00
|
|
|
First get an account for the [App Store](http://apps.nextcloud.com/)
|
|
|
|
then run:
|
2019-01-19 14:40:52 +00:00
|
|
|
|
|
|
|
make && make appstore
|
|
|
|
|
2019-01-19 20:00:53 +00:00
|
|
|
The archive is located in build/artifacts/appstore and can then be
|
|
|
|
uploaded to the App Store.
|
2019-01-19 14:40:52 +00:00
|
|
|
|
|
|
|
## Running tests
|
|
|
|
You can use the provided Makefile to run all tests by using:
|
|
|
|
|
|
|
|
make test
|
|
|
|
|
2019-01-19 20:00:53 +00:00
|
|
|
This will run the PHP unit and integration tests and if a package.json
|
|
|
|
is present in the **js/** folder will execute **npm run test**
|
2019-01-19 14:40:52 +00:00
|
|
|
|
2019-01-19 20:00:53 +00:00
|
|
|
Of course you can also install
|
|
|
|
[PHPUnit](http://phpunit.de/getting-started.html) and use the
|
|
|
|
configurations directly:
|
2019-01-19 14:40:52 +00:00
|
|
|
|
|
|
|
phpunit -c phpunit.xml
|
|
|
|
|
|
|
|
or:
|
|
|
|
|
|
|
|
phpunit -c phpunit.integration.xml
|
|
|
|
|
|
|
|
for integration tests
|