diff options
author | Jesse Luehrs <doy@tozt.net> | 2020-06-09 01:42:24 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2020-06-09 01:42:24 -0400 |
commit | 472d5e52e874b570ce4f04726796fa63a1853e77 (patch) | |
tree | 11d83de6bfc25aca68630b98519ab26b4e937db4 /modules/partofme | |
parent | 43df79ed21379e8f2f795ab3a5ae4b9b74346779 (diff) | |
download | puppet-tozt-472d5e52e874b570ce4f04726796fa63a1853e77.tar.gz puppet-tozt-472d5e52e874b570ce4f04726796fa63a1853e77.zip |
switch the console to graphics mode before using it
Diffstat (limited to 'modules/partofme')
-rw-r--r-- | modules/partofme/files/twitch | 3 | ||||
-rw-r--r-- | modules/partofme/files/vtmode.c | 40 | ||||
-rw-r--r-- | modules/partofme/manifests/twitch.pp | 25 |
3 files changed, 65 insertions, 3 deletions
diff --git a/modules/partofme/files/twitch b/modules/partofme/files/twitch index c28b80b..de5a5a7 100644 --- a/modules/partofme/files/twitch +++ b/modules/partofme/files/twitch @@ -1,3 +1,6 @@ #!/bin/sh +vtmode graphics +trap "vtmode text" EXIT + streamlink -p "cvlc -A alsa --alsa-audio-device hdmi:CARD=PCH,DEV=2 -V fb --no-fb-tty" twitch.tv/"${1}" best diff --git a/modules/partofme/files/vtmode.c b/modules/partofme/files/vtmode.c new file mode 100644 index 0000000..e530674 --- /dev/null +++ b/modules/partofme/files/vtmode.c @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <string.h> + +#include <fcntl.h> +#include <linux/kd.h> +#include <sys/ioctl.h> + +int main(int argc, char *argv[]) { + int err, fd, mode; + + if (argc != 2) { + fprintf(stderr, "usage: %s <graphics|text>\n", argv[0]); + return 1; + } + + if (strcmp(argv[1], "graphics") == 0) { + mode = KD_GRAPHICS; + } + else if (strcmp(argv[1], "text") == 0) { + mode = KD_TEXT; + } + else { + fprintf(stderr, "usage: %s <graphics|text>\n", argv[0]); + return 1; + } + + fd = open("/dev/tty0", O_WRONLY); + if (fd < 0) { + perror(argv[0]); + return 1; + } + + err = ioctl(fd, KDSETMODE, mode); + if (err < 0) { + perror(argv[0]); + return 1; + } + + return 0; +} diff --git a/modules/partofme/manifests/twitch.pp b/modules/partofme/manifests/twitch.pp index 13bd824..407a514 100644 --- a/modules/partofme/manifests/twitch.pp +++ b/modules/partofme/manifests/twitch.pp @@ -1,10 +1,29 @@ class partofme::twitch { + include c_toolchain + package { ["streamlink", "vlc"]: ensure => installed; } - file { "/usr/local/bin/twitch": - mode => "0755", - source => 'puppet:///modules/partofme/twitch'; + file { + "/usr/local/bin/twitch": + mode => "0755", + source => 'puppet:///modules/partofme/twitch'; + "/usr/local/src/vtmode.c": + source => 'puppet:///modules/partofme/vtmode.c'; + } + + exec { "compile vtmode": + command => "cc /usr/local/src/vtmode.c -o /usr/local/bin/vtmode", + creates => "/usr/local/bin/vtmode", + require => [ + File["/usr/local/src/vtmode.c"], + Class["c_toolchain"], + ], + } + + exec { "suid vtmode": + command => "chmod u+s /usr/local/bin/vtmode", + require => Exec["compile vtmode"], } } |