From dd9130a331e8aa6e4d4954984ccf577cd034f4e3 Mon Sep 17 00:00:00 2001 From: qaidvoid <12017109+QaidVoid@users.noreply.github.com> Date: Sat, 31 Oct 2020 15:37:32 +0545 Subject: [PATCH] BUSY.. TODO --- .gitignore | 1 + Makefile | 9 ++++----- README.md | 2 ++ include/shell.h | 4 ++++ include/vm.h | 5 +++++ passthrough | Bin 64208 -> 0 bytes src/main.cpp | 4 ++++ src/shell.cpp | 22 ++++++++++++++++++++++ src/vm.cpp | 11 +++++++++++ 9 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 .gitignore create mode 100644 include/vm.h delete mode 100755 passthrough create mode 100644 src/vm.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..600d2d3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.vscode \ No newline at end of file diff --git a/Makefile b/Makefile index 18dade2..4f332e1 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,8 @@ -CXX := g++ -CXX_FLAGS := -Wall -Wextra -std=c++17 +CXX := g++ +CXX_FLAGS := -Wall -Wextra -std=c++17 -BIN := bin -SRC := src -INCLUDE := include +SRC := src +INCLUDE := include EXECUTABLE := passthrough diff --git a/README.md b/README.md index ac077ad..420369d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ ## Automated Setup ###### Not well-tested. Only supports systemd init system. Installs packages, enables iommu and creates libvirt hooks for now. +###### Halted till December. +###### TODO: upstart, openrc, sysv support. Automatic VM creation and passthrough support. Libvirt script for window managers. ```sh make sudo ./passthrough diff --git a/include/shell.h b/include/shell.h index 11de708..f20cbeb 100644 --- a/include/shell.h +++ b/include/shell.h @@ -1,4 +1,8 @@ #include #include +#include std::string shell_cmd(char const *cmd); +void trim(std::string &s); +void rtrim(std::string &s); +void ltrim(std::string &s); \ No newline at end of file diff --git a/include/vm.h b/include/vm.h new file mode 100644 index 0000000..77bb53c --- /dev/null +++ b/include/vm.h @@ -0,0 +1,5 @@ +#include +#include + +void create_vm(); +void create_vm_with_libvirt(); \ No newline at end of file diff --git a/passthrough b/passthrough deleted file mode 100755 index ebdb0e2420d9a20775b076c1eb9057c1a2f0eb8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64208 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 L&NLM;CAI$pO68~T diff --git a/src/main.cpp b/src/main.cpp index 3329714..09e09c9 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,6 +6,10 @@ int main() { try { + std::string user = shell_cmd("echo $(whoami)"); + if (user != "root") + throw std::runtime_error("\033[1;31mYou need to run the tool as root.\033[0m"); + char cnf; configure_iommu(); diff --git a/src/shell.cpp b/src/shell.cpp index 64e67ef..32121fd 100644 --- a/src/shell.cpp +++ b/src/shell.cpp @@ -12,5 +12,27 @@ std::string shell_cmd(char const *cmd) { resp += buffer.data(); } + trim(resp); return resp; +} + +void ltrim(std::string &s) +{ + s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](unsigned char ch) { + return !std::isspace(ch); + })); +} + +void rtrim(std::string &s) +{ + s.erase(std::find_if(s.rbegin(), s.rend(), [](unsigned char ch) { + return !std::isspace(ch); + }).base(), + s.end()); +} + +void trim(std::string &s) +{ + ltrim(s); + rtrim(s); } \ No newline at end of file diff --git a/src/vm.cpp b/src/vm.cpp new file mode 100644 index 0000000..1c3bd1d --- /dev/null +++ b/src/vm.cpp @@ -0,0 +1,11 @@ +#include + +void create_vm() +{ + // TODO +} + +void create_vm_with_libvirt() +{ + // TODO +} \ No newline at end of file