diff --git a/_test_out.py b/_test_out.py deleted file mode 100755 index 94711d4..0000000 --- a/_test_out.py +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/python - -for i in range(0, 10000): - print(f"\033[{(i % 7) + 30}mHello World!") - print(f"\033[{(i % 7) + 90}mHello World!") diff --git a/pyproject.toml b/pyproject.toml index 3fb26fb..acb06ef 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,8 +29,3 @@ sshare-validate = "sshare.validator:main" [tool.setuptools_scm] version_file = "src/sshare/version.py" - -[tool.pytest.ini_options] -addopts = [ - "--import-mode=importlib" -] diff --git a/src/sshare/plugin/config.py b/src/sshare/plugin/config.py index b12f099..6df34ed 100644 --- a/src/sshare/plugin/config.py +++ b/src/sshare/plugin/config.py @@ -12,8 +12,6 @@ # You should have received a copy of the GNU General Public License along with # SSHare. If not, see . -import argparse - class NoDefault: pass def Flag(name=None, help=None): @@ -35,8 +33,6 @@ class Argument: self._short = None self._long = name - self._is_remainder = kwargs.get("nargs", None) == argparse.REMAINDER - if not "default" in kwargs: kwargs["default"] = NoDefault kwargs["default"] = _None(kwargs["default"]) @@ -47,8 +43,6 @@ class Argument: if self._long == None: self._long = argument self._kwargs["metavar"] = argument - if self._is_remainder: - self._long = self.dest() def set_flags(self, short, long): if short != None: @@ -81,13 +75,11 @@ class Argument: def add(self, arg_parser): flags = [] - kwargs = self._kwargs - if self._is_remainder: - flags.append(self._long) - else: - if self._short != None: flags.append(f"-{self._short}") - if self._long != None: flags.append(f"--{self._long}") - kwargs["dest"] = self.dest() + if self._short != None: flags.append(f"-{self._short}") + if self._long != None: flags.append(f"--{self._long}") + kwargs = self._kwargs | { + "dest": self.dest() + } arg_parser.add_argument( *flags, **kwargs diff --git a/src/sshare/plugin/plugin.py b/src/sshare/plugin/plugin.py index dc413c6..3d75c6b 100644 --- a/src/sshare/plugin/plugin.py +++ b/src/sshare/plugin/plugin.py @@ -14,9 +14,6 @@ import importlib import importlib.util -import sys - -from pathlib import Path from sshare.plugin.config import Flag from sshare.plugin.config import NoDefault @@ -35,7 +32,6 @@ class PluginLoader: in ([ "command_line" ] if command_line else []) + [ "file", "stdin", - "wrap_command", "current_time", "append_type", "ssh", @@ -53,9 +49,9 @@ class PluginLoader: ] @staticmethod - def at(*args, logger=None, config=dict(), flags=dict()): + def at(logger=None, config=dict(), flags=dict(), *args): return [ - Plugin.external(Path(plugin), logger, config, flags) + Plugin.external(plugin, logger, config, flags) for plugin in args ] diff --git a/src/sshare/plugins/stdin.py b/src/sshare/plugins/stdin.py index d4edc64..7b219b6 100644 --- a/src/sshare/plugins/stdin.py +++ b/src/sshare/plugins/stdin.py @@ -21,7 +21,7 @@ plugin_type = "source" activate = { "stdin" } config = { - "suffix": "txt", + "suffix": "txt" } args = { "stdin": Flag(help="Upload from stdin") diff --git a/src/sshare/plugins/wrap_command.py b/src/sshare/plugins/wrap_command.py deleted file mode 100644 index 410874b..0000000 --- a/src/sshare/plugins/wrap_command.py +++ /dev/null @@ -1,50 +0,0 @@ -# This file is part of SSHare. -# -# SSHare is free software: you can redistribute it and/or modify it under the terms of -# the GNU General Public License as published by the Free Software Foundation, -# either version 3 of the License, or (at your option) any later version. -# -# SSHare is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -# more details. -# -# You should have received a copy of the GNU General Public License along with -# SSHare. If not, see . - -import argparse -import locale -import subprocess - -from sshare.plugin.config import Argument -from sshare.plugin.source import Raw - -plugin_type = "source" - -activate = { "command" } -config = { - "suffix": "txt", -} -args = { - "command": Argument( - nargs=argparse.REMAINDER, - help="Upload the contents of the wrapped command", - ) -} - -def init(): - config.command = config.command[1:] - -def get_source(): - output = b"" - with subprocess.Popen( - config.command, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - bufsize=0, - ) as process: - for line in process.stdout: - print(line.decode(locale.getpreferredencoding()), end="") - output += line - - return Raw(config.suffix, output) diff --git a/src/sshare/validator.py b/src/sshare/validator.py index b003ba2..f4e21fd 100644 --- a/src/sshare/validator.py +++ b/src/sshare/validator.py @@ -113,7 +113,7 @@ def main(): arg_parser.add_argument( "plugins", nargs="*", - help="plugin(s) to be validated (Default: all external plugins)", + help="plugin(s) to be validated", ) arguments = arg_parser.parse_args() if arguments.dev: diff --git a/_test_in.py b/test_in.py similarity index 100% rename from _test_in.py rename to test_in.py diff --git a/test_out.py b/test_out.py new file mode 100755 index 0000000..f89bd5d --- /dev/null +++ b/test_out.py @@ -0,0 +1,4 @@ +#!/usr/bin/python + +for i in range(0, 5): + print("\033[91mHello World!") diff --git a/tests/test_test.py b/tests/test_test.py deleted file mode 100644 index 3c71169..0000000 --- a/tests/test_test.py +++ /dev/null @@ -1,4 +0,0 @@ -from src.sshare.plugin.config import Argument - -def test_foo(): - assert True