]> git.puffer.fish Git - matthieu/nova.git/commitdiff
fix some things
authorMatthieu <matthieu@developershouse.xyz>
Wed, 20 Oct 2021 05:49:41 +0000 (09:49 +0400)
committerMatthieu <matthieu@developershouse.xyz>
Wed, 20 Oct 2021 05:49:41 +0000 (09:49 +0400)
BUILD
bazel/patch/BUILD [deleted file]
bazel/patch/BUILD_script_patch [deleted file]
bazel/patch/libsodium_sys_build_script_script_.rs [deleted file]
common/rust/src/discord_models/audit_log.rs
common/rust/src/discord_models/gateway.rs
docs/docs/intro.md
rest/src/proxy/mod.rs

diff --git a/BUILD b/BUILD
index c486575bd8f5dea3d58442ece9185eea99b60fc8..19af8fe939c4db9f28e7bbc597dac875497b39df 100644 (file)
--- a/BUILD
+++ b/BUILD
@@ -8,6 +8,10 @@ gazelle(name = "gazelle")
 
 exports_files(["go.mod"])
 
+platform(
+    name = "aarch64",
+)
+
 filegroup(
     name = "binaries",
     srcs = [
@@ -36,16 +40,6 @@ container_push(
     format = "OCI",
 )
 
-test_suite(
-    name = "tests",
-    tests = [
-        "//gateway:tests",
-        "//novactl:tests",
-        "//rest:tests",
-        "//webhook:tests",
-    ],
-)
-
 pkg_tar(
     name = "packages_tar",
     srcs = [
diff --git a/bazel/patch/BUILD b/bazel/patch/BUILD
deleted file mode 100644 (file)
index a46a995..0000000
+++ /dev/null
@@ -1 +0,0 @@
-exports_files(["libsodium_sys_build_script_script_.rs"])
diff --git a/bazel/patch/BUILD_script_patch b/bazel/patch/BUILD_script_patch
deleted file mode 100644 (file)
index 5578907..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libsodium_sys_build_script",
-    srcs = ["@nova//bazel/patch:libsodium_sys_build_script_script_.rs"],
-    build_script_env = {
-        "NUM_JOBS": "2",
-        "PATH": "/usr/sbin:/usr/bin:/sbin:/bin",
-    },
-    data = glob(["**"]),
-    edition = "2015",
-    links = "sodium",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.7",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@raze__pkg_config__0_3_19//:pkg_config",
-        "@raze__walkdir__2_3_2//:walkdir",
-    ] + selects.with_or({
-        # cfg(not(target_env = "msvc"))
-        (
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:wasm32-unknown-unknown",
-            "@rules_rust//rust/platform:wasm32-wasi",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-        ): [
-            "@raze__cc__1_0_70//:cc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@raze__libc__0_2_101//:libc",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/bazel/patch/libsodium_sys_build_script_script_.rs b/bazel/patch/libsodium_sys_build_script_script_.rs
deleted file mode 100644 (file)
index 1b0b775..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-#[cfg(not(windows))]
-extern crate cc;
-
-#[cfg(target_env = "msvc")]
-extern crate libc;
-
-extern crate pkg_config;
-extern crate walkdir;
-
-use std::{
-    env,
-    path::{Path, PathBuf},
-};
-
-static VERSION: &str = "1.0.18";
-
-fn main() {
-    println!("cargo:rerun-if-env-changed=SODIUM_LIB_DIR");
-    println!("cargo:rerun-if-env-changed=SODIUM_SHARED");
-    println!("cargo:rerun-if-env-changed=SODIUM_USE_PKG_CONFIG");
-
-    if cfg!(not(windows)) {
-        println!("cargo:rerun-if-env-changed=SODIUM_DISABLE_PIE");
-    }
-
-    if env::var("SODIUM_STATIC").is_ok() {
-        panic!("SODIUM_STATIC is deprecated. Use SODIUM_SHARED instead.");
-    }
-
-    let lib_dir_isset = env::var("SODIUM_LIB_DIR").is_ok();
-    let use_pkg_isset = if cfg!(feature = "use-pkg-config") {
-        true
-    } else {
-        env::var("SODIUM_USE_PKG_CONFIG").is_ok()
-    };
-    let shared_isset = env::var("SODIUM_SHARED").is_ok();
-
-    if lib_dir_isset && use_pkg_isset {
-        panic!("SODIUM_LIB_DIR is incompatible with SODIUM_USE_PKG_CONFIG. Set the only one env variable");
-    }
-
-    if lib_dir_isset {
-        find_libsodium_env();
-    } else if use_pkg_isset {
-        if shared_isset {
-            println!("cargo:warning=SODIUM_SHARED has no effect with SODIUM_USE_PKG_CONFIG");
-        }
-
-        find_libsodium_pkg();
-    } else {
-        if shared_isset {
-            println!(
-                "cargo:warning=SODIUM_SHARED has no effect for building libsodium from source"
-            );
-        }
-
-        build_libsodium();
-    }
-}
-
-/* Must be called when SODIUM_LIB_DIR is set to any value
-This function will set `cargo` flags.
-*/
-fn find_libsodium_env() {
-    let lib_dir = env::var("SODIUM_LIB_DIR").unwrap(); // cannot fail
-
-    println!("cargo:rustc-link-search=native={}", lib_dir);
-    let mode = if env::var("SODIUM_SHARED").is_ok() {
-        "dylib"
-    } else {
-        "static"
-    };
-    let name = if cfg!(target_env = "msvc") {
-        "libsodium"
-    } else {
-        "sodium"
-    };
-    println!("cargo:rustc-link-lib={}={}", mode, name);
-    println!(
-        "cargo:warning=Using unknown libsodium version.  This crate is tested against \
-         {} and may not be fully compatible with other versions.",
-        VERSION
-    );
-}
-
-/* Must be called when no SODIUM_USE_PKG_CONFIG env var is set
-This function will set `cargo` flags.
-*/
-#[cfg(target_env = "msvc")]
-fn find_libsodium_pkg() {
-    panic!("SODIUM_USE_PKG_CONFIG is not supported on msvc");
-}
-
-/* Must be called when SODIUM_USE_PKG_CONFIG env var is set
-This function will set `cargo` flags.
-*/
-#[cfg(not(target_env = "msvc"))]
-fn find_libsodium_pkg() {
-    match pkg_config::Config::new().probe("libsodium") {
-        Ok(lib) => {
-            if lib.version != VERSION {
-                println!(
-                    "cargo:warning=Using libsodium version {}.  This crate is tested against {} \
-                     and may not be fully compatible with {}.",
-                    lib.version, VERSION, lib.version
-                );
-            }
-            for lib_dir in &lib.link_paths {
-                println!("cargo:lib={}", lib_dir.to_str().unwrap());
-            }
-            for include_dir in &lib.include_paths {
-                println!("cargo:include={}", include_dir.to_str().unwrap());
-            }
-        }
-        Err(e) => {
-            panic!(
-                "
-Failed to run pkg-config:
-{:?}
-
-You can try fixing this by installing pkg-config:
-
-    # On Ubuntu
-    sudo apt install pkg-config
-    # On Arch Linux
-    sudo pacman -S pkgconf
-    # On Fedora
-    sudo dnf install pkgconf-pkg-config
-
-",
-                e
-            );
-        }
-    }
-}
-
-#[cfg(windows)]
-fn make_libsodium(_: &str, _: &Path, _: &Path) -> PathBuf {
-    // We don't build anything on windows, we simply linked to precompiled
-    // libs.
-    get_lib_dir()
-}
-
-#[cfg(not(windows))]
-fn make_libsodium(target: &str, source_dir: &Path, install_dir: &Path) -> PathBuf {
-    use std::{fs, process::Command, str};
-
-    // Decide on CC, CFLAGS and the --host configure argument
-    let build_compiler = cc::Build::new().get_compiler();
-    let mut compiler = build_compiler.path().to_str().unwrap().to_string();
-    let mut cflags = build_compiler.cflags_env().into_string().unwrap();
-    let mut host_arg = format!("--host={}", target);
-    let mut cross_compiling = target != env::var("HOST").unwrap();
-    if target.contains("-ios") {
-        // Determine Xcode directory path
-        let xcode_select_output = Command::new("xcode-select").arg("-p").output().unwrap();
-        if !xcode_select_output.status.success() {
-            panic!("Failed to run xcode-select -p");
-        }
-        let xcode_dir = str::from_utf8(&xcode_select_output.stdout)
-            .unwrap()
-            .trim()
-            .to_string();
-
-        // Determine SDK directory paths
-        let sdk_dir_simulator = Path::new(&xcode_dir)
-            .join("Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk")
-            .to_str()
-            .unwrap()
-            .to_string();
-        let sdk_dir_ios = Path::new(&xcode_dir)
-            .join("Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk")
-            .to_str()
-            .unwrap()
-            .to_string();
-
-        // Min versions
-        let ios_simulator_version_min = "6.0.0";
-        let ios_version_min = "6.0.0";
-
-        // Roughly based on `dist-build/ios.sh` in the libsodium sources
-        match &*target {
-            "aarch64-apple-ios" => {
-                cflags += " -arch arm64";
-                cflags += &format!(" -isysroot {}", sdk_dir_ios);
-                cflags += &format!(" -mios-version-min={}", ios_version_min);
-                cflags += " -fembed-bitcode";
-                host_arg = "--host=arm-apple-darwin10".to_string();
-            }
-            "armv7-apple-ios" => {
-                cflags += " -arch armv7";
-                cflags += &format!(" -isysroot {}", sdk_dir_ios);
-                cflags += &format!(" -mios-version-min={}", ios_version_min);
-                cflags += " -mthumb";
-                host_arg = "--host=arm-apple-darwin10".to_string();
-            }
-            "armv7s-apple-ios" => {
-                cflags += " -arch armv7s";
-                cflags += &format!(" -isysroot {}", sdk_dir_ios);
-                cflags += &format!(" -mios-version-min={}", ios_version_min);
-                cflags += " -mthumb";
-                host_arg = "--host=arm-apple-darwin10".to_string();
-            }
-            "i386-apple-ios" => {
-                cflags += " -arch i386";
-                cflags += &format!(" -isysroot {}", sdk_dir_simulator);
-                cflags += &format!(" -mios-simulator-version-min={}", ios_simulator_version_min);
-                host_arg = "--host=i686-apple-darwin10".to_string();
-            }
-            "x86_64-apple-ios" => {
-                cflags += " -arch x86_64";
-                cflags += &format!(" -isysroot {}", sdk_dir_simulator);
-                cflags += &format!(" -mios-simulator-version-min={}", ios_simulator_version_min);
-                host_arg = "--host=x86_64-apple-darwin10".to_string();
-            }
-            _ => panic!("Unknown iOS build target: {}", target),
-        }
-        cross_compiling = true;
-    } else if target.contains("i686") {
-        compiler += " -m32 -maes";
-        cflags += " -march=i686";
-    }
-
-    let help = if cross_compiling {
-        "***********************************************************\n\
-         Possible missing dependencies.\n\
-         See https://github.com/sodiumoxide/sodiumoxide#cross-compiling\n\
-         ***********************************************************\n\n"
-    } else {
-        ""
-    };
-
-    // Run `./configure`
-    let prefix_arg = format!("--prefix={}", install_dir.to_str().unwrap());
-    let libdir_arg = format!("--libdir={}/lib", install_dir.to_str().unwrap());
-    let mut configure_cmd = Command::new(fs::canonicalize(source_dir.join("configure")).expect("Failed to find configure script! Did you clone the submodule at `libsodium-sys/libsodium`?"));
-    if !compiler.is_empty() {
-        configure_cmd.env("CC", &compiler);
-    }
-    if !cflags.is_empty() {
-        configure_cmd.env("CFLAGS", &cflags);
-    }
-    if env::var("SODIUM_DISABLE_PIE").is_ok() {
-        configure_cmd.arg("--disable-pie");
-    }
-    let configure_status = configure_cmd
-        .current_dir(&source_dir)
-        .arg(&prefix_arg)
-        .arg(&libdir_arg)
-        .arg(&host_arg)
-        .arg("--enable-shared=no")
-        .status()
-        .unwrap_or_else(|error| {
-            panic!("Failed to run './configure': {}\n{}", error, help);
-        });
-    if !configure_status.success() {
-        panic!(
-            "\nFailed to configure libsodium using {:?}\nCFLAGS={}\nCC={}\n{}\n",
-            configure_cmd, cflags, compiler, help
-        );
-    }
-
-    // Run `make check`, or `make all` if we're cross-compiling
-    let j_arg = format!("-j{}", env::var("NUM_JOBS").unwrap());
-    let make_arg = if cross_compiling { "all" } else { "check" };
-    let mut make_cmd = Command::new("make");
-    let make_status = make_cmd
-        .current_dir(&source_dir)
-        .env("V", "1")
-        .arg(make_arg)
-        .arg(&j_arg)
-        .status()
-        .unwrap_or_else(|error| {
-            panic!("Failed to run 'make {}': {}\n{}", make_arg, error, help);
-        });
-    if !make_status.success() {
-        panic!("\nFailed to build libsodium using {:?}\n{}", make_cmd, help);
-    }
-
-    // Run `make install`
-    let mut install_cmd = Command::new("make");
-    let install_status = install_cmd
-        .current_dir(&source_dir)
-        .arg("install")
-        .status()
-        .unwrap_or_else(|error| {
-            panic!("Failed to run 'make install': {}", error);
-        });
-    if !install_status.success() {
-        panic!("\nFailed to install libsodium using {:?}", install_cmd);
-    }
-
-    install_dir.join("lib")
-}
-
-#[cfg(any(windows, target_env = "msvc"))]
-fn get_crate_dir() -> PathBuf {
-    env::var("CARGO_MANIFEST_DIR").unwrap().into()
-}
-
-#[cfg(target_env = "msvc")]
-fn is_release_profile() -> bool {
-    env::var("PROFILE").unwrap() == "release"
-}
-
-#[cfg(all(target_env = "msvc", target_pointer_width = "32"))]
-fn get_lib_dir() -> PathBuf {
-    if is_release_profile() {
-        get_crate_dir().join("msvc/Win32/Release/v142/")
-    } else {
-        get_crate_dir().join("msvc/Win32/Debug/v142/")
-    }
-}
-
-#[cfg(all(target_env = "msvc", target_pointer_width = "64"))]
-fn get_lib_dir() -> PathBuf {
-    if is_release_profile() {
-        get_crate_dir().join("msvc/x64/Release/v142/")
-    } else {
-        get_crate_dir().join("msvc/x64/Debug/v142/")
-    }
-}
-
-#[cfg(all(windows, not(target_env = "msvc"), target_pointer_width = "32"))]
-fn get_lib_dir() -> PathBuf {
-    get_crate_dir().join("mingw/win32/")
-}
-
-#[cfg(all(windows, not(target_env = "msvc"), target_pointer_width = "64"))]
-fn get_lib_dir() -> PathBuf {
-    get_crate_dir().join("mingw/win64/")
-}
-
-fn build_libsodium() {
-    use std::{ffi::OsStr, fs};
-
-    // Determine build target triple
-    let mut out_dir = PathBuf::from(env::var("OUT_DIR").unwrap());
-    let target = env::var("TARGET").unwrap();
-    let profile = env::var("PROFILE").unwrap();
-
-    // Avoid issues with paths containing spaces by falling back to using a tempfile.
-    // See https://github.com/jedisct1/libsodium/issues/207
-    if out_dir.to_str().unwrap().contains(' ') {
-        out_dir = env::temp_dir()
-            .join("libsodium-sys")
-            .join(&target)
-            .join(&profile);
-        println!(
-            "cargo:warning=The path to the usual build directory contains spaces and hence \
-             can't be used to build libsodium.  Falling back to use {}.  If running `cargo \
-             clean`, ensure you also delete this fallback directory",
-            out_dir.display()
-        );
-    }
-
-    // Determine source and install dir
-    let install_dir = out_dir.join("installed");
-    let source_dir = out_dir.join("source").join("libsodium");
-
-    // Create directories
-    fs::create_dir_all(&install_dir).unwrap();
-    fs::create_dir_all(&source_dir).unwrap();
-
-    let paths = std::fs::read_dir("./libsodium").unwrap();
-
-    for path in paths {
-        println!("Name: {}", path.unwrap().path().display())
-    }
-
-    if !target.contains("msvc") {
-        // Copy sources into build directory
-        // Skip .git because it's marked read-only and that causes problems re-building
-        for entry in walkdir::WalkDir::new("libsodium")
-        .into_iter()
-        .filter_entry(|e| e.file_name() != OsStr::new(".git"))
-        .filter_map(Result::ok)
-    {
-        let outpath = out_dir.join("source").join(entry.path());
-        if let Err(e) = if entry.file_type().is_dir() {
-            fs::create_dir_all(outpath)
-        } else {
-            fs::copy(entry.path(), outpath).map(|_| ())
-        } {
-            panic!("Failed to copy sources into build directory: {}", e);
-        }
-    }
-    }
-
-    let lib_dir = make_libsodium(&target, &source_dir, &install_dir);
-
-    if target.contains("msvc") {
-        println!("cargo:rustc-link-lib=static=libsodium");
-    } else {
-        println!("cargo:rustc-link-lib=static=sodium");
-    }
-
-    println!(
-        "cargo:rustc-link-search=native={}",
-        lib_dir.to_str().unwrap()
-    );
-
-    let include_dir = source_dir.join("src/libsodium/include");
-
-    println!("cargo:include={}", include_dir.to_str().unwrap());
-    println!("cargo:lib={}", lib_dir.to_str().unwrap());
-}
index 0579a3777d7c2823807e37f3e13a2d54e1e8b9a6..f223a2f0f6cecab69c3dcdfe91c468b3bf3ec634 100644 (file)
@@ -1,5 +1,6 @@
 use serde::{Deserialize, Serialize};
 use serde_repr::{Deserialize_repr, Serialize_repr};
+use crate::discord_models::channel::Channel;
 
 use super::{guild::Integration, user::User, webhook::Webhook};
 
@@ -199,10 +200,15 @@ pub struct AuditLogEntry {
     pub reason: Option<String>,
 }
 
+pub enum NewAuditLogEntry {
+
+}
+
 #[derive(Debug, Clone, Deserialize, Serialize)]
 pub struct AuditLog {
     pub webhooks: Vec<Webhook>,
     pub users: Vec<User>,
+    pub threads: Vec<Channel>,
     pub audit_log_entries: Vec<AuditLogEntry>,
     pub integrations: Vec<Integration>,
 }
index dbdf60d96ea3d6fd60a4d96f5a6bbd9a7d793a75..a886d99f8f365efebefbe4b11afc02d928b954bd 100644 (file)
@@ -116,3 +116,9 @@ pub struct Activity {
     pub flags: Option<BitFlags<ActivityFlags>>,
     pub buttons: Option<Vec<ActivityButtons>>,
 }
+
+#[derive(Debug, Clone, Deserialize, Serialize)]
+#[serde(tag = "type")]
+pub enum NewActivity {
+
+}
\ No newline at end of file
index d0bab0142928fef54b84dcfc1fb2c7b675ed746c..30393b5d802666c3cb8217fdbc4b9804e9ff37c3 100644 (file)
@@ -1,4 +1,6 @@
-# Introduction
+# Nova
+
+[![Build](https://github.com/discordnova/Nova/actions/workflows/bazel-build.yml/badge.svg)](https://github.com/discordnova/Nova/actions/workflows/bazel-build.yml)
 
 ## What is nova ?
 
index f07d9956694860a80d22feb33e96a833094f33d6..29f4b779aec91b112e2a3ace4c259d12c1023383 100644 (file)
@@ -2,7 +2,7 @@ use crate::{config::Config, ratelimit::Ratelimiter};
 use common::{log::debug, prometheus::{Counter, HistogramVec, labels, opts, register_counter, register_histogram_vec}};
 use hyper::{
     client::HttpConnector, header::HeaderValue, http::uri::Parts, service::Service, Body, Client,
-    HeaderMap, Request, Response, Uri,
+    Request, Response, Uri,
 };
 use hyper_tls::HttpsConnector;
 use tokio::sync::Mutex;
@@ -72,15 +72,16 @@ impl Service<Request<Body>> for ServiceProxy {
 
         *req.uri_mut() = Uri::from_parts(new_parts).unwrap();
 
-        let mut headers = HeaderMap::default();
-
+        let headers = req.headers_mut();
+        headers.remove("user-agent");
         headers.insert("Host", HeaderValue::from_str("discord.com").unwrap());
         headers.insert(
             "Authorization",
             HeaderValue::from_str(&format!("Bot {}", self.config.discord.token)).unwrap(),
         );
 
-        *req.headers_mut() = headers;
+        println!("{:?}", headers);
+
         let client = self.client.clone();
         let ratelimiter = self.ratelimiter.clone();
         let fail = self.fail.clone();