From ada06c0cfe37a12d0ea9bbd7a3c174b1e1ca1ddd Mon Sep 17 00:00:00 2001 From: ptrcnull Date: Mon, 6 Jun 2022 22:35:22 +0200 Subject: [PATCH] writevt: new aport --- writevt/APKBUILD | 24 ++++++++++++++++++ writevt/writevt.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 writevt/APKBUILD create mode 100644 writevt/writevt.c diff --git a/writevt/APKBUILD b/writevt/APKBUILD new file mode 100644 index 0000000..e517b80 --- /dev/null +++ b/writevt/APKBUILD @@ -0,0 +1,24 @@ +# Contributor: Patrycja Rosa +# Maintainer: Patrycja Rosa +pkgname=writevt +pkgver=1 +pkgrel=0 +pkgdesc="simulate input to terminal" +url="https://github.com/grawity/code/blob/master/thirdparty/writevt.c" +arch="all" +license="i have no idea" +source="writevt.c" +builddir="$srcdir" +options="!check" + +build() { + gcc -O2 -o writevt writevt.c +} + +package() { + install -Dm755 writevt -t "$pkgdir"/usr/bin +} + +sha512sums=" +7e73d09a8148f6e69555162f75ea9d63fffc68a5c561f88d0cb81442e6318366ac1ea34632cbd7806c049d6f5b34edbf81e3c8b9ce9d2b559bbe3285ce321481 writevt.c +" diff --git a/writevt/writevt.c b/writevt/writevt.c new file mode 100644 index 0000000..1707629 --- /dev/null +++ b/writevt/writevt.c @@ -0,0 +1,62 @@ +/* + * Mostly ripped off of console-tools' writevt.c + */ + +#include +#include +#include +#include +#include + +char *progname; + +static int usage() { + printf("Usage: %s ttydev text\n", progname); + return 2; +} + +int main(int argc, char **argv) { + int fd, argi; + char *term = NULL; + char *text = NULL; + + progname = argv[0]; + + argi = 1; + + if (argi < argc) + term = argv[argi++]; + else { + fprintf(stderr, "%s: no tty specified\n", progname); + return usage(); + } + + if (argi < argc) + text = argv[argi++]; + else { + fprintf(stderr, "%s: no text specified\n", progname); + return usage(); + } + + if (argi != argc) { + fprintf(stderr, "%s: too many arguments\n", progname); + return usage(); + } + + fd = open(term, O_RDONLY); + if (fd < 0) { + perror(term); + fprintf(stderr, "%s: could not open tty\n", progname); + return 1; + } + + while (*text) { + if (ioctl(fd, TIOCSTI, text)) { + perror("ioctl"); + return 1; + } + text++; + } + + return 0; +}