diff --git a/main.go b/main.go index 4b8299a..41231bf 100644 --- a/main.go +++ b/main.go @@ -9,6 +9,7 @@ import ( "fmt" "os" "os/signal" + "runtime" "strconv" ) @@ -18,8 +19,8 @@ const ( ) const ( - ENV_WG_TUN_FD = "WG_TUN_FD" - ENV_WG_UAPI_FD = "WG_UAPI_FD" + ENV_WG_TUN_FD = "WG_TUN_FD" + ENV_WG_UAPI_FD = "WG_UAPI_FD" ENV_WG_PROCESS_FOREGROUND = "WG_PROCESS_FOREGROUND" ) @@ -28,9 +29,45 @@ func printUsage() { fmt.Printf("%s [-f/--foreground] INTERFACE-NAME\n", os.Args[0]) } -func main() { +func warning() { + shouldQuit := false - Warning() + fmt.Fprintln(os.Stderr, "WARNING WARNING WARNING WARNING WARNING WARNING WARNING") + fmt.Fprintln(os.Stderr, "W G") + fmt.Fprintln(os.Stderr, "W This is alpha software. It will very likely not G") + fmt.Fprintln(os.Stderr, "W do what it is supposed to do, and things may go G") + fmt.Fprintln(os.Stderr, "W horribly wrong. You have been warned. Proceed G") + fmt.Fprintln(os.Stderr, "W at your own risk. G") + if runtime.GOOS == "linux" { + shouldQuit = os.Getenv("WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD") != "1" + + fmt.Fprintln(os.Stderr, "W G") + fmt.Fprintln(os.Stderr, "W Furthermore, you are running this software on a G") + fmt.Fprintln(os.Stderr, "W Linux kernel, which is probably unnecessary and G") + fmt.Fprintln(os.Stderr, "W foolish. This is because the Linux kernel has G") + fmt.Fprintln(os.Stderr, "W built-in first class support for WireGuard, and G") + fmt.Fprintln(os.Stderr, "W this support is much more refined than this G") + fmt.Fprintln(os.Stderr, "W program. For more information on installing the G") + fmt.Fprintln(os.Stderr, "W kernel module, please visit: G") + fmt.Fprintln(os.Stderr, "W https://www.wireguard.com/install G") + if shouldQuit { + fmt.Fprintln(os.Stderr, "W G") + fmt.Fprintln(os.Stderr, "W If you still want to use this program, against G") + fmt.Fprintln(os.Stderr, "W the sage advice here, please first export this G") + fmt.Fprintln(os.Stderr, "W environment variable: G") + fmt.Fprintln(os.Stderr, "W WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD=1 G") + } + } + fmt.Fprintln(os.Stderr, "W G") + fmt.Fprintln(os.Stderr, "WARNING WARNING WARNING WARNING WARNING WARNING WARNING") + + if shouldQuit { + os.Exit(1) + } +} + +func main() { + warning() // parse arguments diff --git a/warning_default.go b/warning_default.go deleted file mode 100644 index 8a0a448..0000000 --- a/warning_default.go +++ /dev/null @@ -1,24 +0,0 @@ -// +build !linux - -/* SPDX-License-Identifier: GPL-2.0 - * - * Copyright (C) 2017-2018 Jason A. Donenfeld . All Rights Reserved. - */ - -package main - -import ( - "fmt" - "os" -) - -func Warning() { - fmt.Fprintln(os.Stderr, "WARNING WARNING WARNING WARNING WARNING WARNING WARNING") - fmt.Fprintln(os.Stderr, "W G") - fmt.Fprintln(os.Stderr, "W This is alpha software. It will very likely not G") - fmt.Fprintln(os.Stderr, "W do what it is supposed to do, and things may go G") - fmt.Fprintln(os.Stderr, "W horribly wrong. You have been warned. Proceed G") - fmt.Fprintln(os.Stderr, "W at your own risk. G") - fmt.Fprintln(os.Stderr, "W G") - fmt.Fprintln(os.Stderr, "WARNING WARNING WARNING WARNING WARNING WARNING WARNING") -} diff --git a/warning_linux.go b/warning_linux.go deleted file mode 100644 index 2ac7957..0000000 --- a/warning_linux.go +++ /dev/null @@ -1,44 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 - * - * Copyright (C) 2017-2018 Jason A. Donenfeld . All Rights Reserved. - */ - -package main - -import ( - "fmt" - "os" -) - -func Warning() { - shouldQuit := os.Getenv("WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD") != "1" - - fmt.Fprintln(os.Stderr, "WARNING WARNING WARNING WARNING WARNING WARNING WARNING") - fmt.Fprintln(os.Stderr, "W G") - fmt.Fprintln(os.Stderr, "W This is alpha software. It will very likely not G") - fmt.Fprintln(os.Stderr, "W do what it is supposed to do, and things may go G") - fmt.Fprintln(os.Stderr, "W horribly wrong. You have been warned. Proceed G") - fmt.Fprintln(os.Stderr, "W at your own risk. G") - fmt.Fprintln(os.Stderr, "W G") - fmt.Fprintln(os.Stderr, "W Furthermore, you are running this software on a G") - fmt.Fprintln(os.Stderr, "W Linux kernel, which is probably unnecessary and G") - fmt.Fprintln(os.Stderr, "W foolish. This is because the Linux kernel has G") - fmt.Fprintln(os.Stderr, "W built-in first class support for WireGuard, and G") - fmt.Fprintln(os.Stderr, "W this support is much more refined than this G") - fmt.Fprintln(os.Stderr, "W program. For more information on installing the G") - fmt.Fprintln(os.Stderr, "W kernel module, please visit: G") - fmt.Fprintln(os.Stderr, "W https://www.wireguard.com/install G") - if shouldQuit { - fmt.Fprintln(os.Stderr, "W G") - fmt.Fprintln(os.Stderr, "W If you still want to use this program, against G") - fmt.Fprintln(os.Stderr, "W the sage advice here, please first export this G") - fmt.Fprintln(os.Stderr, "W environment variable: G") - fmt.Fprintln(os.Stderr, "W WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD=1 G") - } - fmt.Fprintln(os.Stderr, "W G") - fmt.Fprintln(os.Stderr, "WARNING WARNING WARNING WARNING WARNING WARNING WARNING") - - if shouldQuit { - os.Exit(1) - } -}