Compare commits

..

39 Commits

Author SHA1 Message Date
adphi abdf1777f5 Mettre à jour 'README.md' 2020-06-20 04:31:41 +02:00
adphi 317c2483d4 deprecation notice 2020-06-20 03:59:38 +02:00
adphi d0c4cd1488 obviously, it's in front of the description 2020-06-20 03:46:31 +02:00
adphi 5a5ba37b69 Deprecated application 2020-06-20 03:44:49 +02:00
Adphi 4fecde9d9d returns error message on exception 2020-02-02 17:54:29 +01:00
Adphi 411e9e800f fix name cases 2020-02-02 13:15:44 +00:00
Adphi 6579503c63 Makefile: added make version 2020-02-01 15:10:33 +01:00
Adphi ad5306cf67 occweb lowercase 2020-02-01 14:54:37 +01:00
Adphi f2d7ff4c14 increment version 2020-01-30 22:05:35 +01:00
Adphi aa2848cfee fix #11 2020-01-30 22:04:23 +01:00
Adphi e5d211826f fix Makefile dist 2020-01-29 22:51:19 +01:00
Adphi 222e9d5956 fix #6 2020-01-29 22:03:47 +01:00
Adphi 93e4701a82 v0.0.5 2020-01-26 15:59:19 +01:00
Adphi 5e7ddb1578 build dist 2020-01-26 15:53:43 +01:00
Adphi e03bd71092 fix app compliance 2020-01-26 15:38:26 +01:00
Adphi 2447aea115 Fix core server lib import path 2019-07-20 14:02:52 +02:00
Adphi b4761ebb4f updated build 2019-06-04 19:45:21 +02:00
Adphi a9019903cf added version 16 to info.xml 2019-06-04 19:43:58 +02:00
Adphi 608b0e2462 removed memory infos 2019-01-24 20:22:55 +01:00
Adphi e725fd3ed7 rebuild 2019-01-24 20:04:24 +01:00
Adphi 4dbbcce938 rebuild 2019-01-24 20:02:06 +01:00
Adphi 16de1641ea Merge branch 'master' of http://git.adphi.net/Adphi/OCCWeb 2019-01-24 19:56:32 +01:00
Adphi 77b1f007cf fix #1 remove dirty hack 2019-01-24 19:56:20 +01:00
Adphi 9ade0837b0 added screenshot to README.md 2019-01-21 18:27:30 +01:00
Adphi cee4b7a7e1 fix website url in info.xml 2019-01-21 18:24:52 +01:00
Adphi 42ccc2e7e5 improved app infos, add website 2019-01-21 18:22:46 +01:00
Adphi 1831886e20 improved app infos, fix app category 2019-01-21 18:17:23 +01:00
Adphi a79cc12161 build 2019-01-21 17:57:25 +01:00
Adphi 8c4d675e1f Updated README.md 2019-01-19 21:00:53 +01:00
Adphi 1745aa185a fix greetings not updating date on exit 2019-01-19 19:15:22 +01:00
Adphi a1efcf2096 updated build 2019-01-19 18:45:27 +01:00
Adphi d077d211c8 fixed android keyboard 2019-01-19 18:43:06 +01:00
Adphi 96dfe2ebdb updated build 2019-01-19 18:25:55 +01:00
Adphi e5a9f0142f add scroll down on key down 2019-01-19 18:09:39 +01:00
Adphi 4fc2359fdc Updated README.md 2019-01-19 17:45:02 +01:00
Adphi 83ed35c4c5 Fix Controllers Files names 2019-01-19 17:20:07 +01:00
Adphi 0d59a3595e again... sorry. 2019-01-19 17:07:42 +01:00
Adphi 395cbee8cc fix dist 2019-01-19 16:58:37 +01:00
Adphi 2325df3667 build dist 2019-01-19 16:52:40 +01:00
9 changed files with 53 additions and 83 deletions

BIN
.DS_Store vendored

Binary file not shown.

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.idea
build

View File

@ -115,20 +115,21 @@ dist:
source:
rm -rf $(source_build_directory)
mkdir -p $(source_build_directory)
tar cvzf $(source_package_name).tar.gz ../$(app_name) \
tar \
--exclude-vcs \
--exclude="../$(app_name)/build" \
--exclude="../$(app_name)/js/node_modules" \
--exclude="../$(app_name)/node_modules" \
--exclude="../$(app_name)/*.log" \
--exclude="../$(app_name)/js/*.log" \
-cvzf $(source_package_name).tar.gz ../$(app_name)
# Builds the source package for the app store, ignores php and js tests
.PHONY: appstore
appstore:
rm -rf $(appstore_build_directory)
mkdir -p $(appstore_build_directory)
tar cvzf $(appstore_package_name).tar.gz ../$(app_name) \
tar \
--exclude-vcs \
--exclude="../$(app_name)/build" \
--exclude="../$(app_name)/tests" \
@ -150,8 +151,23 @@ appstore:
--exclude="../$(app_name)/protractor\.*" \
--exclude="../$(app_name)/.*" \
--exclude="../$(app_name)/js/.*" \
-cvzf $(appstore_package_name).tar.gz ../$(app_name)
.PHONY: test
test: composer
$(CURDIR)/vendor/phpunit/phpunit/phpunit -c phpunit.xml
$(CURDIR)/vendor/phpunit/phpunit/phpunit -c phpunit.integration.xml
.PHONY: sign
sign:
@openssl dgst -sha512 -sign ~/.nextcloud/certificates/occweb.key build/artifacts/appstore/occweb.tar.gz |openssl base64
.PHONY: version
version:
@echo "Creating version v$(VERSION)"
@sed -i "s/<version>[0-9a-z.]\{1,\}<\/version>/<version>$(VERSION)<\/version>/g" appinfo/info.xml
@git tag v$(VERSION)
@git push origin v$(VERSION)
@make dist
@echo "\nRelease Signature: \n"
@make sign

View File

@ -1,73 +1,25 @@
# OCCWeb terminal
# ⚠️ Deprecated ⚠️ OCCWeb terminal
### A web terminal for admins to launch Nextcloud's occ commands
![occweb](https://git.adphi.net/Adphi/OCCWeb/raw/master/appinfo/screenshot.png)
##
## ⚠️ Deprecated ⚠️
As nextcloudd has no native support for asynchronous operations, due to the use of php, this aplication is deprecated, and will no longer support the Nextcloud' future versions (19+). I did not find a way to implemement true support for interactive and long running occ tasks in a web terminal whitout introducing addtional dependencies (through websockets, for example), the lack of true asynchronous occ operations can lead to serious alterations of voluminous instances.
[This issue](https://github.com/nextcloud/server/issues/16726) may give some hints on why I decided to not support this application anymore.
And over all of this , I want to say I really dislike, even dispise the overall Nextloud teams communication, the "we are the best", and other "look, we make so many commits", witout fixing good old issues, moving fast forward, "we make more commits than pydio"! what a good point ! your more than 10x their developpers ! What a 'prouesse' !!!
## Install
Place this app in **nextcloud/apps/**
## Building the app
## ⚠️ Warnings ⚠️
The app can be built by using the provided Makefile by running:
- The application is not a real interactive terminal and does not support long running tasks.
So if your instance is pretty big, commands like `occ files:scan` will time out and fail.
- Do not use `occ maintenance:mode --on`, obvious...
make
This requires the following things to be present:
* make
* which
* tar: for building the archive
* 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.:
**package.json**:
```json
"scripts": {
"test": "node node_modules/gulp-cli/bin/gulp.js karma",
"prebuild": "npm install && node_modules/bower/bin/bower install &&
node_modules/bower/bin/bower update",
"build": "node node_modules/gulp-cli/bin/gulp.js"
}
```
## Publish to App Store
First get an account for the [App Store](http://apps.nextcloud.com/)
then run:
make && make appstore
The archive is located in build/artifacts/appstore and can then be
uploaded to the App Store.
## Running tests
You can use the provided Makefile to run all tests by using:
make test
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**
Of course you can also install
[PHPUnit](http://phpunit.de/getting-started.html) and use the
configurations directly:
phpunit -c phpunit.xml
or:
phpunit -c phpunit.integration.xml
for integration tests
## TODOs:
See [open issues](https://git.adphi.net/Adphi/OCCWeb/issues)

View File

@ -5,15 +5,15 @@
<name>OCC Web</name>
<summary>OCC Commands in a web terminal</summary>
<description><![CDATA[Run OCC Commands in a web terminal]]></description>
<version>0.0.6</version>
<version>0.0.7</version>
<licence>agpl</licence>
<author mail="adphi.apps@gmail.com" >Adphi</author>
<namespace>OCCWeb</namespace>
<category>tools</category>
<website>https://git.adphi.net/Adphi/OCCWeb</website>
<bugs>https://git.adphi.net/Adphi/OCCWeb/issues</bugs>
<repository>https://git.adphi.net/Adphi/OCCWeb</repository>
<screenshot>https://git.adphi.net/Adphi/OCCWeb/raw/master/appinfo/screenshot.png</screenshot>
<website>https://git.adphi.net/adphi/occweb</website>
<bugs>https://git.adphi.net/adphi/occweb/issues</bugs>
<repository>https://git.adphi.net/adphi/occweb</repository>
<screenshot>https://git.adphi.net/adphi/occweb/raw/master/appinfo/screenshot.png</screenshot>
<dependencies>
<nextcloud min-version="13" max-version="18"/>
</dependencies>

Binary file not shown.

View File

@ -58,9 +58,8 @@ class OccController extends Controller
$this->application->run($input, $this->output);
return $this->output->fetch();
} catch (Exception $ex) {
exceptionHandler($ex);
} catch (Error $ex) {
exceptionHandler($ex);
$this->logger->logException($ex);
return "error: " . $ex->getMessage();
}
}
@ -87,9 +86,3 @@ class OccController extends Controller
}
}
function exceptionHandler($exception)
{
echo "An unhandled exception has been thrown:" . PHP_EOL;
echo $exception;
exit(1);
}

View File

@ -8,12 +8,12 @@ use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\Console\Output\ConsoleSectionOutput;
use Symfony\Component\Console\Output\OutputInterface;
/**
* @method ConsoleSectionOutput section()
*/
class OccOutput extends BufferedOutput implements ConsoleOutputInterface
{
private $consoleSectionOutputs = [];
private $stream;
/**
* Gets the OutputInterface for errors.
*
@ -30,7 +30,14 @@ class OccOutput extends BufferedOutput implements ConsoleOutputInterface
}
public function __call($name, $arguments) {
// TODO: Implement @method ConsoleSectionOutput section()
/**
* Creates a new output section.
*/
public function section(): ConsoleSectionOutput {
if ($this->stream === null) {
$this->stream = fopen('php://temp','w');
}
return new ConsoleSectionOutput($this->stream, $this->consoleSectionOutputs, $this->getVerbosity(), $this->isDecorated(), $this->getFormatter());
}
}