Compare commits

..

27 Commits

Author SHA1 Message Date
Adphi 7453afcd93 v0.0.5 2020-01-26 15:59:19 +01:00
Adphi 3c90233c24 build dist 2020-01-26 15:53:43 +01:00
Adphi 659216dbd0 fix app compliance 2020-01-26 15:38:26 +01:00
Adphi 1d7ad2331b Fix core server lib import path 2019-07-20 14:02:52 +02:00
Adphi 533accb9dd updated build 2019-06-04 19:45:21 +02:00
Adphi 57d13d236b added version 16 to info.xml 2019-06-04 19:43:58 +02:00
Adphi 21988b68f5 removed memory infos 2019-01-24 20:22:55 +01:00
Adphi 507b630c41 rebuild 2019-01-24 20:04:24 +01:00
Adphi e882bc3354 rebuild 2019-01-24 20:02:06 +01:00
Adphi 47f7ecbb00 Merge branch 'master' of http://git.adphi.net/Adphi/OCCWeb 2019-01-24 19:56:32 +01:00
Adphi 045df01234 fix #1 remove dirty hack 2019-01-24 19:56:20 +01:00
Adphi c1687a8f69 added screenshot to README.md 2019-01-21 18:27:30 +01:00
Adphi 77a647c448 fix website url in info.xml 2019-01-21 18:24:52 +01:00
Adphi 3db25f358d improved app infos, add website 2019-01-21 18:22:46 +01:00
Adphi 3de7d661d7 improved app infos, fix app category 2019-01-21 18:17:23 +01:00
Adphi 461f2184b8 build 2019-01-21 17:57:25 +01:00
Adphi 12f727d918 Updated README.md 2019-01-19 21:00:53 +01:00
Adphi 1a3d8ebcc5 fix greetings not updating date on exit 2019-01-19 19:15:22 +01:00
Adphi 0722adf0b5 updated build 2019-01-19 18:45:27 +01:00
Adphi 6f370bb567 fixed android keyboard 2019-01-19 18:43:06 +01:00
Adphi 3d5a5806b9 updated build 2019-01-19 18:25:55 +01:00
Adphi b96cff9bde add scroll down on key down 2019-01-19 18:09:39 +01:00
Adphi 4fcfcc12bf Updated README.md 2019-01-19 17:45:02 +01:00
Adphi 45b142e46d Fix Controllers Files names 2019-01-19 17:20:07 +01:00
Adphi 0dba9d5c44 again... sorry. 2019-01-19 17:07:42 +01:00
Adphi c1a21cafb0 fix dist 2019-01-19 16:58:37 +01:00
Adphi ea221aa95f build dist 2019-01-19 16:52:40 +01:00
9 changed files with 83 additions and 53 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

2
.gitignore vendored
View File

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

View File

@ -115,21 +115,20 @@ dist:
source:
rm -rf $(source_build_directory)
mkdir -p $(source_build_directory)
tar \
tar cvzf $(source_package_name).tar.gz ../$(app_name) \
--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 \
tar cvzf $(appstore_package_name).tar.gz ../$(app_name) \
--exclude-vcs \
--exclude="../$(app_name)/build" \
--exclude="../$(app_name)/tests" \
@ -151,23 +150,8 @@ 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,25 +1,73 @@
# ⚠️ Deprecated ⚠️ OCCWeb terminal
# 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/**
## ⚠️ Warnings ⚠️
## Building the app
- 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...
The app can be built by using the provided Makefile by running:
## TODOs:
See [open issues](https://git.adphi.net/Adphi/OCCWeb/issues)
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

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.7</version>
<version>0.0.6</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.

Binary file not shown.

View File

@ -58,8 +58,9 @@ class OccController extends Controller
$this->application->run($input, $this->output);
return $this->output->fetch();
} catch (Exception $ex) {
$this->logger->logException($ex);
return "error: " . $ex->getMessage();
exceptionHandler($ex);
} catch (Error $ex) {
exceptionHandler($ex);
}
}
@ -86,3 +87,9 @@ 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,14 +30,7 @@ class OccOutput extends BufferedOutput implements ConsoleOutputInterface
}
/**
* 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());
public function __call($name, $arguments) {
// TODO: Implement @method ConsoleSectionOutput section()
}
}