From 3ada2624392b7b425054f8114afc4dd57cd83fec Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Wed, 3 May 2023 15:50:28 -0400 Subject: [PATCH 01/17] initial draft of new install script --- new-install.sh | 129 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 new-install.sh diff --git a/new-install.sh b/new-install.sh new file mode 100644 index 00000000..0470854b --- /dev/null +++ b/new-install.sh @@ -0,0 +1,129 @@ +#!/usr/bin/env sh +# shellcheck shell=dash +# +# Copyright (C) 2023 CloudTruth, Inc. +# + +main() { + require_download_cmd + require_cmd uname + require_cmd mktemp + require_cmd chmod + require_cmd mkdir + require_cmd rm + require_cmd rmdir + + get_target_info + + echo "$OS $ARCH $TARGET" + + + # if [ -z "${CT_CLI_VERSION}" ]; then + # CT_VER_FILE_URL="https://api.github.com/repos/cloudtruth/cloudtruth-cli/releases/latest" + # CT_CLI_VERSION=$(curl "${CURL_OPTS}" "${CT_VER_FILE_URL}" | \ + # grep "tag_name" | \ + # sed -E 's/.*"([^"]+)".*/\1/') + # echo "[cloudtruth] found latest version: ${CT_CLI_VERSION}" + # else + # echo "[cloudtruth] using requested version: ${CT_CLI_VERSION}" + # fi +} + +get_target_info() { + ARCH=$(uname -m) + if [ -z "${ARCH}" ]; then + fail "Cannot determine system architecture." + fi + case "$ARCH" in + aarch64 | arm64) + ARCH=aarch64 + ;; + x86_64 | x86-64 | x64 | amd64) + ARCH=x86_64 + ;; + *) + fail "unknown architecture: $ARCH" + ;; + esac + + OS=$(uname -s) + if [ -z "${OS}" ]; then + fail "Cannot determine operating system." + fi + case "$OS" in + Linux) + case "$ARCH" in + aarch64) + TARGET="aarch64-unknown-linux-gnu" + ;; + x86_64) + TARGET="x86_64-unknown-linux-musl" + ;; + esac + ;; + + Darwin) + TARGET="$ARCH-apple-darwin" + ;; + + *) + fail "unrecognized OS: $OS" + ;; + esac +} + +fail() { + echo "$1" >&2 + exit 1 +} + +require_cmd() { + if ! check_cmd "$1"; then + fail "This install script requires the '$1' command, but it was not found." + fi +} + +check_cmd() { + command -v "$1" > /dev/null 2>&1 + +} + + +require_download_cmd() { + if ! check_cmd curl && ! check_cmd wget ; then + fail "This install script requires either the curl or wget command, but beither were found." + fi +} + +download() { + local dl_cmd + local err + local status + + if check_cmd curl; then + dl_cmd=curl + elif check_cmd wget; then + dl_cmd=wget + fi + if [ "$dl_cmd" = curl ]; then + err=$(curl --retry 3 --proto '=https' --tlsv1.2 --silent --show-error --fail --location "$1" --output "$2" 2>&1) + status=$? + elif [ "$dl_cmd" = wget ]; then + if [ "$(wget -V 2>&1|head -2|tail -1|cut -f1 -d" ")" = "BusyBox" ]; then + echo "Warning: using the BusyBox version of wget. Not enforcing strong cipher suites for TLS or TLS v1.2, this is potentially less secure" + err=$(wget "$1" -O "$2" 2>&1) + status=$? + else + err=$(wget --https-only --secure-protocol=TLSv1_2 "$1" -O "$2" 2>&1) + status=$? + fi + else + fail "Could not find download command '$dl_cmd'" + fi + if [ -n "$err" ]; then + echo "$err" + fi + return $status +} + +main "$@" || exit 1 \ No newline at end of file From 9adb38406b1c47504c95fed3873a7105519b8ef5 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Wed, 3 May 2023 16:56:35 -0400 Subject: [PATCH 02/17] add basic download logic to new installer script --- new-install.sh | 142 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 100 insertions(+), 42 deletions(-) diff --git a/new-install.sh b/new-install.sh index 0470854b..445e5c9c 100644 --- a/new-install.sh +++ b/new-install.sh @@ -4,29 +4,64 @@ # Copyright (C) 2023 CloudTruth, Inc. # +usage() { + cat < use a specific version + +These options are only used for testing during the CloudTruth release workflow: + + -a | --auth-token authorization token to access draft release + -r | --release-id identity of draft release + +EOF +} + +parse_opts() { + while true; do + case $1 in + (-v|--verbose) + shift;; + (-h|--help) + usage + exit 1 + ;; + (--) + shift; + break + ;; + (*) + if [ -n "$1" ]; then + fail "invalid parameter: ${1}" + fi + break + ;; + esac + done +} + main() { require_download_cmd require_cmd uname require_cmd mktemp - require_cmd chmod - require_cmd mkdir + # require_cmd chmod + # require_cmd mkdir require_cmd rm - require_cmd rmdir - - get_target_info - - echo "$OS $ARCH $TARGET" + parse_opts "$@" - # if [ -z "${CT_CLI_VERSION}" ]; then - # CT_VER_FILE_URL="https://api.github.com/repos/cloudtruth/cloudtruth-cli/releases/latest" - # CT_CLI_VERSION=$(curl "${CURL_OPTS}" "${CT_VER_FILE_URL}" | \ - # grep "tag_name" | \ - # sed -E 's/.*"([^"]+)".*/\1/') - # echo "[cloudtruth] found latest version: ${CT_CLI_VERSION}" - # else - # echo "[cloudtruth] using requested version: ${CT_CLI_VERSION}" - # fi + ORIG_DIR=$(pwd) + TMP_DIR=$(mktemp -d) + trap cleanup EXIT + cd "${TMP_DIR}" || fail "Could not enter temp directory: ${TMP_DIR}" + + get_target_info + download_latest_installer } get_target_info() { @@ -54,16 +89,16 @@ get_target_info() { Linux) case "$ARCH" in aarch64) - TARGET="aarch64-unknown-linux-gnu" + TARGET="unknown-linux-gnu" ;; x86_64) - TARGET="x86_64-unknown-linux-musl" + TARGET="unknown-linux-musl" ;; esac ;; Darwin) - TARGET="$ARCH-apple-darwin" + TARGET="apple-darwin" ;; *) @@ -72,27 +107,23 @@ get_target_info() { esac } -fail() { - echo "$1" >&2 - exit 1 -} - -require_cmd() { - if ! check_cmd "$1"; then - fail "This install script requires the '$1' command, but it was not found." - fi -} - -check_cmd() { - command -v "$1" > /dev/null 2>&1 - -} - - -require_download_cmd() { - if ! check_cmd curl && ! check_cmd wget ; then - fail "This install script requires either the curl or wget command, but beither were found." - fi +download_latest_installer() { + local latest_installer_version + local base_url + local package_dir + local package + local download_url + latest_installer_version=$(\ + download https://api.github.com/repos/cloudtruth/cloudtruth-cli/releases/latest | \ + grep "tag_name" | \ + sed -E 's/.*"([^"]+)".*/\1/'\ + ) + echo "[cloudtruth] found latest installer version: ${latest_installer_version}" + base_url="https://github.com/cloudtruth/cloudtruth-cli/releases/download" + package_dir="cloudtruth-${latest_installer_version}-${ARCH}-${TARGET}" + package="${package_dir}.tar.gz" + download_url="${base_url}/${latest_installer_version}/${package}" + download "$download_url" "$package" } download() { @@ -106,7 +137,7 @@ download() { dl_cmd=wget fi if [ "$dl_cmd" = curl ]; then - err=$(curl --retry 3 --proto '=https' --tlsv1.2 --silent --show-error --fail --location "$1" --output "$2" 2>&1) + err=$(curl --retry 3 --proto '=https' --tlsv1.2 --silent --show-error --fail --location "$1" ${2:+ --output "$2"} 2>&1) status=$? elif [ "$dl_cmd" = wget ]; then if [ "$(wget -V 2>&1|head -2|tail -1|cut -f1 -d" ")" = "BusyBox" ]; then @@ -114,7 +145,7 @@ download() { err=$(wget "$1" -O "$2" 2>&1) status=$? else - err=$(wget --https-only --secure-protocol=TLSv1_2 "$1" -O "$2" 2>&1) + err=$(wget --https-only --secure-protocol=TLSv1_2 "$1" ${2:+ -O "$2" } 2>&1) status=$? fi else @@ -126,4 +157,31 @@ download() { return $status } +fail() { + echo "$1" >&2 + exit 1 +} + +require_cmd() { + if ! check_cmd "$1"; then + fail "This install script requires the '$1' command, but it was not found." + fi +} + +check_cmd() { + command -v "$1" > /dev/null 2>&1 +} + + +require_download_cmd() { + if ! check_cmd curl && ! check_cmd wget ; then + fail "This install script requires either the curl or wget command, but beither were found." + fi +} + +cleanup() { + cd "${ORIG_DIR}" || fail "Could not return to original directory: ${ORIG_DIR}" + rm -r "${TMP_DIR}" +} + main "$@" || exit 1 \ No newline at end of file From 53f750098b5fdb1d503f009b05281020ce967c43 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Wed, 3 May 2023 16:57:20 -0400 Subject: [PATCH 03/17] add basic download logic to new installer script --- new-install.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/new-install.sh b/new-install.sh index 445e5c9c..95c26712 100644 --- a/new-install.sh +++ b/new-install.sh @@ -158,7 +158,7 @@ download() { } fail() { - echo "$1" >&2 + echo "[error] $1" >&2 exit 1 } @@ -172,7 +172,6 @@ check_cmd() { command -v "$1" > /dev/null 2>&1 } - require_download_cmd() { if ! check_cmd curl && ! check_cmd wget ; then fail "This install script requires either the curl or wget command, but beither were found." From 167b8ab6971185a50ecf8549eb29ddae4ae1e5f2 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Wed, 3 May 2023 17:02:00 -0400 Subject: [PATCH 04/17] fix typo --- new-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-install.sh b/new-install.sh index 95c26712..48a3b4b3 100644 --- a/new-install.sh +++ b/new-install.sh @@ -174,7 +174,7 @@ check_cmd() { require_download_cmd() { if ! check_cmd curl && ! check_cmd wget ; then - fail "This install script requires either the curl or wget command, but beither were found." + fail "This install script requires either the curl or wget command, but neither were found." fi } From 8a87babf12beb06165ba75c57d26f6e114d9dfde Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Wed, 3 May 2023 17:02:55 -0400 Subject: [PATCH 05/17] use set -u --- new-install.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/new-install.sh b/new-install.sh index 48a3b4b3..5dc70356 100644 --- a/new-install.sh +++ b/new-install.sh @@ -4,6 +4,8 @@ # Copyright (C) 2023 CloudTruth, Inc. # +set -u + usage() { cat < Date: Wed, 3 May 2023 17:08:32 -0400 Subject: [PATCH 06/17] trailing newline --- new-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/new-install.sh b/new-install.sh index 5dc70356..4b512b15 100644 --- a/new-install.sh +++ b/new-install.sh @@ -185,4 +185,4 @@ cleanup() { rm -r "${TMP_DIR}" } -main "$@" || exit 1 \ No newline at end of file +main "$@" || exit 1 From 277a05817476bce2a656108443cbb9829e9e6e55 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Thu, 4 May 2023 15:37:45 -0400 Subject: [PATCH 07/17] add basic CLI and logic to find package managers --- Cargo.lock | 784 ++++++++++++++---- Cargo.toml | 2 +- crates/cloudtruth-config/Cargo.toml | 2 +- crates/cloudtruth-installer/Cargo.toml | 14 +- crates/cloudtruth-installer/src/cli.rs | 92 ++ crates/cloudtruth-installer/src/lib.rs | 9 + crates/cloudtruth-installer/src/main.rs | 15 + .../src/package_manager.rs | 180 ++++ 8 files changed, 945 insertions(+), 153 deletions(-) create mode 100644 crates/cloudtruth-installer/src/cli.rs create mode 100644 crates/cloudtruth-installer/src/main.rs create mode 100644 crates/cloudtruth-installer/src/package_manager.rs diff --git a/Cargo.lock b/Cargo.lock index 54f6397d..3d5442d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,7 +34,7 @@ checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if 1.0.0", "cipher", - "cpufeatures", + "cpufeatures 0.2.5", "opaque-debug", ] @@ -90,18 +90,73 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "anstream" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +dependencies = [ + "anstyle 1.0.0", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is-terminal", + "utf8parse", +] + [[package]] name = "anstyle" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" +[[package]] +name = "anstyle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" + +[[package]] +name = "anstyle-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "anstyle-wincon" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +dependencies = [ + "anstyle 1.0.0", + "windows-sys 0.48.0", +] + [[package]] name = "anyhow" version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + [[package]] name = "askama" version = "0.11.1" @@ -156,7 +211,7 @@ version = "2.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0b2340f55d9661d76793b2bfc2eb0e62689bd79d067a95707ea762afd5e9dd" dependencies = [ - "anstyle", + "anstyle 0.3.5", "bstr", "doc-comment", "predicates", @@ -171,6 +226,17 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-trait" +version = "0.1.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.12", +] + [[package]] name = "atty" version = "0.2.14" @@ -227,6 +293,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + [[package]] name = "bitflags" version = "1.3.2" @@ -309,21 +381,21 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chacha20" -version = "0.7.3" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f08493fa7707effc63254c66c6ea908675912493cd67952eda23c09fae2610b1" +checksum = "fee7ad89dc1128635074c268ee661f90c3f7e83d9fd12910608c36b47d6c3412" dependencies = [ "cfg-if 1.0.0", "cipher", - "cpufeatures", + "cpufeatures 0.1.5", "zeroize", ] [[package]] name = "chacha20poly1305" -version = "0.8.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6547abe025f4027edacd9edaa357aded014eecec42a5070d9b885c3c334aba2" +checksum = "1580317203210c517b6d44794abfbe600698276db18127e37ad3e69bf5e848e5" dependencies = [ "aead", "chacha20", @@ -342,7 +414,8 @@ dependencies = [ "js-sys", "num-integer", "num-traits", - "time", + "serde", + "time 0.1.45", "wasm-bindgen", "winapi 0.3.9", ] @@ -374,7 +447,7 @@ dependencies = [ "ansi_term", "atty", "bitflags", - "strsim", + "strsim 0.8.0", "textwrap 0.11.0", "unicode-width", "vec_map", @@ -382,21 +455,33 @@ dependencies = [ [[package]] name = "clap" -version = "4.1.13" +version = "4.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c911b090850d79fc64fe9ea01e28e465f65e821e08813ced95bced72f7a8a9b" +checksum = "34d21f9bf1b425d2968943631ec91202fe5e837264063503708b83013f8fc938" dependencies = [ - "bitflags", + "clap_builder", "clap_derive", - "clap_lex", "once_cell", ] +[[package]] +name = "clap_builder" +version = "4.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "914c8c79fb560f238ef6429439a30023c862f7a28e688c58f7203f12b29970bd" +dependencies = [ + "anstream", + "anstyle 1.0.0", + "bitflags", + "clap_lex", + "strsim 0.10.0", +] + [[package]] name = "clap_derive" -version = "4.1.12" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a932373bab67b984c790ddf2c9ca295d8e3af3b7ef92de5a5bacdccdee4b09b" +checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" dependencies = [ "heck", "proc-macro2", @@ -406,12 +491,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" -dependencies = [ - "os_str_bytes", -] +checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" [[package]] name = "cloudabi" @@ -434,7 +516,7 @@ dependencies = [ "cloudtruth-config", "cloudtruth-installer", "cloudtruth-restapi", - "color-eyre 0.5.11", + "color-eyre", "const_format", "csv", "directories 3.0.2", @@ -473,7 +555,7 @@ dependencies = [ "assert_matches", "chrono", "cloudtruth-restapi", - "color-eyre 0.6.2", + "color-eyre", "directories 5.0.0", "indoc 2.0.1", "once_cell", @@ -486,10 +568,17 @@ dependencies = [ name = "cloudtruth-installer" version = "1.2.3" dependencies = [ + "clap 4.2.7", + "color-eyre", + "derive_more", + "itertools", + "octocrab", + "once_cell", "powershell_script 1.0.4", "reqwest", "serde_json", "tempfile", + "which", ] [[package]] @@ -513,21 +602,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "color-eyre" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f1885697ee8a177096d42f158922251a41973117f6d8a234cee94b9509157b7" -dependencies = [ - "backtrace", - "color-spantrace 0.1.6", - "eyre", - "indenter", - "once_cell", - "owo-colors 1.3.0", - "tracing-error 0.1.2", -] - [[package]] name = "color-eyre" version = "0.6.2" @@ -535,37 +609,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204" dependencies = [ "backtrace", - "color-spantrace 0.2.0", + "color-spantrace", "eyre", "indenter", "once_cell", - "owo-colors 3.5.0", - "tracing-error 0.2.0", + "owo-colors", + "tracing-error", ] [[package]] name = "color-spantrace" -version = "0.1.6" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6eee477a4a8a72f4addd4de416eb56d54bc307b284d6601bafdee1f4ea462d1" +checksum = "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce" dependencies = [ "once_cell", - "owo-colors 1.3.0", + "owo-colors", "tracing-core", - "tracing-error 0.1.2", + "tracing-error", ] [[package]] -name = "color-spantrace" -version = "0.2.0" +name = "colorchoice" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce" -dependencies = [ - "once_cell", - "owo-colors 3.5.0", - "tracing-core", - "tracing-error 0.2.0", -] +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" [[package]] name = "combine" @@ -635,7 +703,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5" dependencies = [ - "time", + "time 0.1.45", "url 1.7.2", ] @@ -652,7 +720,7 @@ dependencies = [ "publicsuffix", "serde", "serde_json", - "time", + "time 0.1.45", "try_from", "url 1.7.2", ] @@ -673,6 +741,15 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +[[package]] +name = "cpufeatures" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66c99696f6c9dd7f35d486b9d04d7e6e202aa3e8c40d553f2fdf5e7e0c6a71ef" +dependencies = [ + "libc", +] + [[package]] name = "cpufeatures" version = "0.2.5" @@ -1067,17 +1144,6 @@ dependencies = [ "indexmap", ] -[[package]] -name = "errno" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi 0.3.9", -] - [[package]] name = "errno" version = "0.3.1" @@ -1396,7 +1462,7 @@ dependencies = [ "bytes 0.4.12", "fnv", "futures 0.1.31", - "http", + "http 0.1.21", "indexmap", "log", "slab", @@ -1480,6 +1546,17 @@ dependencies = [ "itoa 0.4.8", ] +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes 1.4.0", + "fnv", + "itoa 1.0.5", +] + [[package]] name = "http-body" version = "0.1.0" @@ -1488,16 +1565,39 @@ checksum = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d" dependencies = [ "bytes 0.4.12", "futures 0.1.31", - "http", + "http 0.1.21", "tokio-buf", ] +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes 1.4.0", + "http 0.2.9", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + [[package]] name = "httparse" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + [[package]] name = "humansize" version = "1.1.1" @@ -1530,15 +1630,15 @@ dependencies = [ "futures 0.1.31", "futures-cpupool", "h2", - "http", - "http-body", + "http 0.1.21", + "http-body 0.1.0", "httparse", "iovec", "itoa 0.4.8", "log", "net2", "rustc_version 0.2.3", - "time", + "time 0.1.45", "tokio 0.1.22", "tokio-buf", "tokio-executor", @@ -1547,7 +1647,57 @@ dependencies = [ "tokio-tcp", "tokio-threadpool", "tokio-timer", - "want", + "want 0.2.0", +] + +[[package]] +name = "hyper" +version = "0.14.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +dependencies = [ + "bytes 1.4.0", + "futures-channel", + "futures-core", + "futures-util", + "http 0.2.9", + "http-body 0.4.5", + "httparse", + "httpdate", + "itoa 1.0.5", + "pin-project-lite", + "socket2", + "tokio 1.26.0", + "tower-service", + "tracing", + "want 0.3.0", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0646026eb1b3eea4cd9ba47912ea5ce9cc07713d105b1a14698f4e6433d348b7" +dependencies = [ + "http 0.2.9", + "hyper 0.14.26", + "log", + "rustls", + "rustls-native-certs", + "tokio 1.26.0", + "tokio-rustls", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper 0.14.26", + "pin-project-lite", + "tokio 1.26.0", + "tokio-io-timeout", ] [[package]] @@ -1558,7 +1708,7 @@ checksum = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f" dependencies = [ "bytes 0.4.12", "futures 0.1.31", - "hyper", + "hyper 0.12.36", "native-tls", "tokio-io", ] @@ -1669,7 +1819,7 @@ dependencies = [ "integration-test-macros", "miette", "once_cell", - "owo-colors 3.5.0", + "owo-colors", "predicates", "serde_json", "shlex", @@ -1708,14 +1858,14 @@ dependencies = [ [[package]] name = "is-terminal" -version = "0.4.3" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e18b0a45d56fe973d6db23972bf5bc46f988a4a2385deac9cc29572f09daef" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ "hermit-abi 0.3.1", "io-lifetimes", - "rustix 0.36.8", - "windows-sys 0.45.0", + "rustix", + "windows-sys 0.48.0", ] [[package]] @@ -1774,6 +1924,20 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.0", + "pem", + "ring", + "serde", + "serde_json", + "simple_asn1", +] + [[package]] name = "kernel32-sys" version = "0.2.2" @@ -1811,12 +1975,6 @@ version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" -[[package]] -name = "linux-raw-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" - [[package]] name = "linux-raw-sys" version = "0.3.1" @@ -1906,7 +2064,7 @@ dependencies = [ "is-terminal", "miette-derive", "once_cell", - "owo-colors 3.5.0", + "owo-colors", "supports-color", "supports-hyperlinks", "supports-unicode", @@ -1977,6 +2135,18 @@ dependencies = [ "winapi 0.2.8", ] +[[package]] +name = "mio" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.45.0", +] + [[package]] name = "miow" version = "0.2.2" @@ -2046,6 +2216,17 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg 1.1.0", + "num-integer", + "num-traits", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -2093,6 +2274,43 @@ dependencies = [ "memchr", ] +[[package]] +name = "octocrab" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db170d97e0e88e41faf8ef5277c850d8370c1ef759403c7004a43f2161ce357" +dependencies = [ + "arc-swap", + "async-trait", + "base64 0.21.0", + "bytes 1.4.0", + "cfg-if 1.0.0", + "chrono", + "either", + "futures 0.3.27", + "futures-util", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.26", + "hyper-rustls", + "hyper-timeout", + "jsonwebtoken", + "once_cell", + "percent-encoding 2.2.0", + "pin-project", + "secrecy", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded 0.7.1", + "snafu", + "tokio 1.26.0", + "tower", + "tower-http", + "tracing", + "url 2.3.1", +] + [[package]] name = "once_cell" version = "1.17.1" @@ -2170,18 +2388,6 @@ dependencies = [ "windows-sys 0.45.0", ] -[[package]] -name = "os_str_bytes" -version = "6.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" - -[[package]] -name = "owo-colors" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2386b4ebe91c2f7f51082d4cefa145d030e33a1842a96b12e4885cc3c01f7a55" - [[package]] name = "owo-colors" version = "3.5.0" @@ -2262,6 +2468,15 @@ dependencies = [ "windows-sys 0.45.0", ] +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + [[package]] name = "percent-encoding" version = "1.0.1" @@ -2274,6 +2489,26 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +[[package]] +name = "pin-project" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.107", +] + [[package]] name = "pin-project-lite" version = "0.2.9" @@ -2298,7 +2533,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ - "cpufeatures", + "cpufeatures 0.2.5", "opaque-debug", "universal-hash", ] @@ -2310,7 +2545,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ "cfg-if 1.0.0", - "cpufeatures", + "cpufeatures 0.2.5", "opaque-debug", "universal-hash", ] @@ -2339,7 +2574,7 @@ version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c575290b64d24745b6c57a12a31465f0a66f3a4799686a6921526a33b0797965" dependencies = [ - "anstyle", + "anstyle 0.3.5", "difflib", "float-cmp", "itertools", @@ -2653,8 +2888,8 @@ dependencies = [ "encoding_rs", "flate2", "futures 0.1.31", - "http", - "hyper", + "http 0.1.21", + "hyper 0.12.36", "hyper-tls", "log", "mime", @@ -2662,8 +2897,8 @@ dependencies = [ "native-tls", "serde", "serde_json", - "serde_urlencoded", - "time", + "serde_urlencoded 0.5.5", + "time 0.1.45", "tokio 0.1.22", "tokio-executor", "tokio-io", @@ -2674,6 +2909,21 @@ dependencies = [ "winreg", ] +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi 0.3.9", +] + [[package]] name = "rpassword" version = "5.0.1" @@ -2710,30 +2960,59 @@ dependencies = [ [[package]] name = "rustix" -version = "0.36.8" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644" +checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" dependencies = [ "bitflags", - "errno 0.2.8", + "errno", "io-lifetimes", "libc", - "linux-raw-sys 0.1.4", + "linux-raw-sys", "windows-sys 0.45.0", ] [[package]] -name = "rustix" -version = "0.37.3" +name = "rustls" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" +checksum = "c911ba11bc8433e811ce56fde130ccf32f5127cab0e0194e9c68c5a5b671791e" dependencies = [ - "bitflags", - "errno 0.3.1", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.1", - "windows-sys 0.45.0", + "log", + "ring", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +dependencies = [ + "base64 0.21.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", ] [[package]] @@ -2790,6 +3069,25 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + [[package]] name = "security-framework" version = "2.8.2" @@ -2865,6 +3163,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_path_to_error" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0" +dependencies = [ + "serde", +] + [[package]] name = "serde_plain" version = "1.0.1" @@ -2895,6 +3202,18 @@ dependencies = [ "url 1.7.2", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.5", + "ryu", + "serde", +] + [[package]] name = "serde_yaml" version = "0.8.26" @@ -2975,7 +3294,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer", "cfg-if 1.0.0", - "cpufeatures", + "cpufeatures 0.2.5", "digest", "opaque-debug", ] @@ -3011,6 +3330,18 @@ version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint", + "num-traits", + "thiserror", + "time 0.3.20", +] + [[package]] name = "slab" version = "0.4.7" @@ -3041,6 +3372,29 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043" +[[package]] +name = "snafu" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0656e7e3ffb70f6c39b3c2a86332bb74aa3c679da781642590f3c1118c5045" +dependencies = [ + "backtrace", + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "475b3bbe5245c26f2d8a6f62d67c1f30eb9fffeccee721c45d162c3ebbdf81b2" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 1.0.107", +] + [[package]] name = "snapbox" version = "0.4.8" @@ -3069,6 +3423,22 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaaf09df9f0eeae82be96290918520214530e738a7fe5a351b0f24cf77c0ca31" +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + [[package]] name = "string" version = "0.2.1" @@ -3084,6 +3454,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "subprocess" version = "0.1.20" @@ -3172,7 +3548,7 @@ dependencies = [ "cfg-if 1.0.0", "fastrand", "redox_syscall 0.3.5", - "rustix 0.37.3", + "rustix", "windows-sys 0.45.0", ] @@ -3273,6 +3649,33 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "time" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +dependencies = [ + "itoa 1.0.5", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + +[[package]] +name = "time-macros" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +dependencies = [ + "time-core", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -3296,7 +3699,7 @@ checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" dependencies = [ "bytes 0.4.12", "futures 0.1.31", - "mio", + "mio 0.6.23", "num_cpus", "tokio-current-thread", "tokio-executor", @@ -3314,8 +3717,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" dependencies = [ "autocfg 1.1.0", + "libc", + "mio 0.8.6", "num_cpus", "pin-project-lite", + "socket2", "tokio-macros", "windows-sys 0.45.0", ] @@ -3362,6 +3768,16 @@ dependencies = [ "log", ] +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio 1.26.0", +] + [[package]] name = "tokio-macros" version = "1.8.2" @@ -3383,7 +3799,7 @@ dependencies = [ "futures 0.1.31", "lazy_static", "log", - "mio", + "mio 0.6.23", "num_cpus", "parking_lot 0.9.0", "slab", @@ -3392,6 +3808,16 @@ dependencies = [ "tokio-sync", ] +[[package]] +name = "tokio-rustls" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5" +dependencies = [ + "rustls", + "tokio 1.26.0", +] + [[package]] name = "tokio-stream" version = "0.1.12" @@ -3422,7 +3848,7 @@ dependencies = [ "bytes 0.4.12", "futures 0.1.31", "iovec", - "mio", + "mio 0.6.23", "tokio-io", "tokio-reactor", ] @@ -3456,6 +3882,19 @@ dependencies = [ "tokio-executor", ] +[[package]] +name = "tokio-util" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +dependencies = [ + "bytes 1.4.0", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio 1.26.0", +] + [[package]] name = "toml" version = "0.5.11" @@ -3487,6 +3926,54 @@ dependencies = [ "winnow", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio 1.26.0", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d1d42a9b3f3ec46ba828e8d376aec14592ea199f70a06a548587ecd1c4ab658" +dependencies = [ + "bitflags", + "bytes 1.4.0", + "futures-core", + "futures-util", + "http 0.2.9", + "http-body 0.4.5", + "http-range-header", + "pin-project-lite", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + [[package]] name = "tracing" version = "0.1.37" @@ -3494,6 +3981,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ "cfg-if 1.0.0", + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3520,16 +4008,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-error" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4d7c0b83d4a500748fa5879461652b361edf5c9d51ede2a2ac03875ca185e24" -dependencies = [ - "tracing", - "tracing-subscriber 0.2.25", -] - [[package]] name = "tracing-error" version = "0.2.0" @@ -3537,18 +4015,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" dependencies = [ "tracing", - "tracing-subscriber 0.3.16", -] - -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "sharded-slab", - "thread_local", - "tracing-core", + "tracing-subscriber", ] [[package]] @@ -3667,6 +4134,12 @@ version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad2024452afd3874bf539695e04af6732ba06517424dbf958fdb16a01f3bef6c" +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "url" version = "1.7.2" @@ -3687,6 +4160,7 @@ dependencies = [ "form_urlencoded", "idna 0.3.0", "percent-encoding 2.2.0", + "serde", ] [[package]] @@ -3695,6 +4169,12 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "uuid" version = "0.7.4" @@ -3775,6 +4255,16 @@ dependencies = [ "try-lock", ] +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + [[package]] name = "wasi" version = "0.10.0+wasi-snapshot-preview1" @@ -4103,7 +4593,7 @@ version = "0.1.0" dependencies = [ "anyhow", "askama", - "clap 4.1.13", + "clap 4.2.7", "duct", "futures 0.3.27", "itertools", @@ -4133,6 +4623,6 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "zeroize" -version = "1.3.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" diff --git a/Cargo.toml b/Cargo.toml index a80a80fa..901219c4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,7 +55,7 @@ clap = "2.33.3" cloudtruth-config = { path = "crates/cloudtruth-config", version = "1.2.3" } cloudtruth-installer = { path = "crates/cloudtruth-installer", version = "1.2.3" } cloudtruth-restapi = { path = "crates/cloudtruth-restapi" } -color-eyre = "0.5" +color-eyre = "0.6" csv = "1.1.6" directories = "3.0" edit = "0.1.2" diff --git a/crates/cloudtruth-config/Cargo.toml b/crates/cloudtruth-config/Cargo.toml index 3c927ab6..58e0e977 100644 --- a/crates/cloudtruth-config/Cargo.toml +++ b/crates/cloudtruth-config/Cargo.toml @@ -9,7 +9,7 @@ license = "Apache-2.0" [dependencies] chrono = "0.4.24" cloudtruth-restapi = { path = "../cloudtruth-restapi" } -color-eyre = "0.6.2" +color-eyre = "0.6" directories = "5.0.0" indoc = "2.0.1" once_cell = "1.17.1" diff --git a/crates/cloudtruth-installer/Cargo.toml b/crates/cloudtruth-installer/Cargo.toml index bdb8fdd6..18b82133 100644 --- a/crates/cloudtruth-installer/Cargo.toml +++ b/crates/cloudtruth-installer/Cargo.toml @@ -1,13 +1,19 @@ [package] name = "cloudtruth-installer" +description = "Local installation manager for CloudTruth" version = "1.2.3" edition = "2021" license = "Apache-2.0" -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - [dependencies] +clap = { version = "4.0.0", features = ["derive", "env"] } +color-eyre = "0.6" +derive_more = "0.99.17" +itertools = "0.10.5" +octocrab = "0.21" +once_cell = "1.17.1" powershell_script = "1.0.4" reqwest = { version = "~0.9", default-features = false, features = ["default-tls-vendored"] } -serde_json = "1.0.94" -tempfile = "3.4.0" +serde_json = "1.0" +tempfile = "3.4" +which = "4.4.0" diff --git a/crates/cloudtruth-installer/src/cli.rs b/crates/cloudtruth-installer/src/cli.rs new file mode 100644 index 00000000..22f19a20 --- /dev/null +++ b/crates/cloudtruth-installer/src/cli.rs @@ -0,0 +1,92 @@ +use once_cell::sync::OnceCell; + +static GLOBALS: OnceCell = OnceCell::new(); + +#[derive(Debug)] +struct Globals { + verbose: bool, + non_interactive: bool, +} + +/// Global verbose flag. +/// Initialized after CLI parsing, and set to false otherwise. +pub fn verbose() -> bool { + match GLOBALS.get() { + Some(globals) => globals.verbose, + _ => false, + } +} + +/// Global non-interactive flag. Indicates that we should not prompt the user for input. +/// Initialized after CLI parsing, and set to false otherwise. +#[allow(dead_code)] +pub fn non_interactive() -> bool { + match GLOBALS.get() { + Some(globals) => globals.non_interactive, + _ => false, + } +} + +/// initialize global statics (verbosity, non-interactive, etc) +/// this funciton will panic if called twice +pub fn init_globals(cli: &Cli) { + GLOBALS + .set(Globals { + verbose: cli.verbose, + non_interactive: cli.non_interactive, + }) + .expect("CLI globals were initialized twice") +} + +#[derive(Debug, clap::Parser)] +/// CloudTruth installer CLI +/// #[command(author, version, about, long_about)] +pub struct Cli { + /// Subcommands + #[command(subcommand)] + command: Subcommand, + /// Show verbose information + #[arg(global = true, short, long, default_value_t = false)] + verbose: bool, + /// Non-interactive mode, do not prompt or ask for confirmations + #[arg(global = true, short = 'y', long, default_value_t = false)] + non_interactive: bool, +} + +#[derive(Debug, clap::Subcommand)] +pub enum Subcommand { + #[command(about = "Install a Cloudtruth CLI ")] + Install(InstallCommand), +} + +#[derive(Debug, clap::Args)] +pub struct InstallCommand { + /// Name of the program to install + name: String, + /// Version of the program to install (defaults to latest) + version: Option, + #[command(flatten)] + github_opts: GitHubOptions, +} + +/// Options for GitHub API (for internal release workflows) +#[derive(Debug, clap::Args)] +#[group(multiple = true, required = false)] +pub struct GitHubOptions { + #[arg( + help_heading = "GitHub API Options (for internal CloudTruth release pipeline)", + long, + env = "CLOUDTRUTH_INSTALLER_GITHUB_AUTH_TOKEN", + requires = "release_id" + )] + /// GitHub API Auth Token + auth_token: Option, + #[arg( + help_heading = "GitHub API Options (for internal CloudTruth release pipeline)", + long, + env = "CLOUDTRUTH_INSTALLER_GITHUB_RELEASE_ID", + requires = "auth_token" + )] + /// GitHub API Release ID + release_id: Option, +} diff --git a/crates/cloudtruth-installer/src/lib.rs b/crates/cloudtruth-installer/src/lib.rs index 08d9087d..ef6c47dd 100644 --- a/crates/cloudtruth-installer/src/lib.rs +++ b/crates/cloudtruth-installer/src/lib.rs @@ -1,7 +1,16 @@ +mod cli; mod install; mod install_errors; +mod package_manager; mod version; +pub use cli::{init_globals, Cli}; pub use install::install_latest_version; pub use install_errors::InstallError; +pub use package_manager::find_package_managers; pub use version::{binary_version, get_latest_version}; + +macro_rules! verbose { + ($($expr:tt)*) => { if $crate::cli::verbose() { println!($($expr)*)}} +} +pub(crate) use verbose; diff --git a/crates/cloudtruth-installer/src/main.rs b/crates/cloudtruth-installer/src/main.rs new file mode 100644 index 00000000..b0064cd8 --- /dev/null +++ b/crates/cloudtruth-installer/src/main.rs @@ -0,0 +1,15 @@ +use clap::Parser; +use cloudtruth_installer::{find_package_managers, init_globals, Cli}; + +pub fn main() -> color_eyre::Result<()> { + color_eyre::install()?; + let cli = Cli::parse(); + init_globals(&cli); + println!("{cli:?}"); + let pkg_managers = find_package_managers(); + println!("Found package managers:"); + for pm in pkg_managers { + println!("{pm}"); + } + Ok(()) +} diff --git a/crates/cloudtruth-installer/src/package_manager.rs b/crates/cloudtruth-installer/src/package_manager.rs new file mode 100644 index 00000000..c5735726 --- /dev/null +++ b/crates/cloudtruth-installer/src/package_manager.rs @@ -0,0 +1,180 @@ +use color_eyre::Result; +use core::fmt; + +use std::{ + path::{Path, PathBuf}, + process::{Command, Stdio}, +}; +use which::which; + +use crate::verbose; + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd)] +pub enum PackageManager { + Apt, + Apk, + Yum, + Zypper, + Brew, +} + +impl PackageManager { + pub const ALL: &[PackageManager] = &[ + PackageManager::Apt, + PackageManager::Apk, + PackageManager::Yum, + PackageManager::Zypper, + PackageManager::Brew, + ]; + + pub fn iter() -> impl Iterator { + Self::ALL.iter().copied() + } + + pub fn cmd_name(&self) -> &'static str { + match self { + PackageManager::Apt => "apt", + PackageManager::Apk => "apk", + PackageManager::Yum => "yum", + PackageManager::Zypper => "zypper", + PackageManager::Brew => "brew", + } + } + + pub fn package_ext(&self) -> &'static str { + match self { + PackageManager::Apt => "deb", + PackageManager::Apk => "apk", + PackageManager::Yum => "rpm", + PackageManager::Zypper => "rpm", + PackageManager::Brew => "bottle.tar.gz", + } + } + + pub fn find_bin_path(&self) -> Option { + which(self.cmd_name()).ok() + } +} + +impl fmt::Display for PackageManager { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}", self.cmd_name()) + } +} + +#[derive(Debug, Clone, PartialEq, Eq, derive_more::Display)] +#[display(fmt = "{} ({:?})", package_manager, bin_path)] +pub struct PackageManagerBin { + package_manager: PackageManager, + bin_path: PathBuf, +} + +impl PackageManagerBin { + pub fn find(package_manager: PackageManager) -> Option { + package_manager + .find_bin_path() + .map(|bin_path| PackageManagerBin { + package_manager, + bin_path, + }) + } + + pub fn package_manager(&self) -> PackageManager { + self.package_manager + } + + pub fn cmd_name(&self) -> &'static str { + self.package_manager.cmd_name() + } + + pub fn package_ext(&self) -> &'static str { + self.package_manager.package_ext() + } + + pub fn bin_path(&self) -> &Path { + &self.bin_path + } + + pub fn install(&self, package: &Path) -> Result<()> { + match self.package_manager { + PackageManager::Apt => apt_install(self, package), + PackageManager::Apk => apk_install(self, package), + PackageManager::Yum => yum_install(self, package), + PackageManager::Zypper => zypper_install(self, package), + PackageManager::Brew => brew_install(self, package), + } + } + + pub fn check_status(&self) -> bool { + match self.package_manager { + PackageManager::Apt => apt_status(self), + PackageManager::Apk => apk_status(self), + PackageManager::Yum => yum_status(self), + PackageManager::Zypper => zypper_status(self), + PackageManager::Brew => brew_status(self), + } + } +} + +pub fn find_package_managers() -> Vec { + PackageManager::iter() + .inspect(|pm| verbose!("Searching for {pm}")) + .filter_map(PackageManagerBin::find) + .inspect(|pm| verbose!("Found {pm}")) + .filter(PackageManagerBin::check_status) + .collect() +} + +fn apt_install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { + todo!() +} + +fn apt_status(pm: &PackageManagerBin) -> bool { + check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) +} + +fn apk_install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { + todo!() +} + +fn apk_status(pm: &PackageManagerBin) -> bool { + check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) +} + +fn yum_install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { + todo!() +} + +fn yum_status(pm: &PackageManagerBin) -> bool { + check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) +} + +fn zypper_install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { + todo!() +} + +fn zypper_status(pm: &PackageManagerBin) -> bool { + check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) +} + +fn brew_install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { + todo!() +} + +fn brew_status(pm: &PackageManagerBin) -> bool { + check_status(pm.cmd_name(), Command::new(pm.bin_path()).arg("commands")) +} + +fn check_status(cmd_name: &str, cmd: &mut Command) -> bool { + verbose!("Checking status of {cmd_name}"); + match cmd.stderr(Stdio::null()).stdout(Stdio::null()).status() { + Ok(status) => { + verbose!("{cmd_name} {status}"); + status.success() + } + Err(err) => { + verbose!("{cmd_name} ERROR: {err}"); + false + } + } +} From 081b6317aabb045b12bfbebcd75b151372191f27 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Thu, 4 May 2023 17:04:17 -0400 Subject: [PATCH 08/17] split individual package manager logic into modules --- .../src/package_manager.rs | 105 ++++++++++++------ 1 file changed, 70 insertions(+), 35 deletions(-) diff --git a/crates/cloudtruth-installer/src/package_manager.rs b/crates/cloudtruth-installer/src/package_manager.rs index c5735726..a86e7633 100644 --- a/crates/cloudtruth-installer/src/package_manager.rs +++ b/crates/cloudtruth-installer/src/package_manager.rs @@ -97,21 +97,21 @@ impl PackageManagerBin { pub fn install(&self, package: &Path) -> Result<()> { match self.package_manager { - PackageManager::Apt => apt_install(self, package), - PackageManager::Apk => apk_install(self, package), - PackageManager::Yum => yum_install(self, package), - PackageManager::Zypper => zypper_install(self, package), - PackageManager::Brew => brew_install(self, package), + PackageManager::Apt => apt::install(self, package), + PackageManager::Apk => apk::install(self, package), + PackageManager::Yum => yum::install(self, package), + PackageManager::Zypper => zypper::install(self, package), + PackageManager::Brew => brew::install(self, package), } } pub fn check_status(&self) -> bool { match self.package_manager { - PackageManager::Apt => apt_status(self), - PackageManager::Apk => apk_status(self), - PackageManager::Yum => yum_status(self), - PackageManager::Zypper => zypper_status(self), - PackageManager::Brew => brew_status(self), + PackageManager::Apt => apt::status(self), + PackageManager::Apk => apk::status(self), + PackageManager::Yum => yum::status(self), + PackageManager::Zypper => zypper::status(self), + PackageManager::Brew => brew::status(self), } } } @@ -125,44 +125,79 @@ pub fn find_package_managers() -> Vec { .collect() } -fn apt_install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { - todo!() -} +mod apt { + use color_eyre::Result; + use std::{path::Path, process::Command}; -fn apt_status(pm: &PackageManagerBin) -> bool { - check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) -} + use super::PackageManagerBin; -fn apk_install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { - todo!() -} + pub fn install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { + todo!() + } -fn apk_status(pm: &PackageManagerBin) -> bool { - check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) + pub fn status(pm: &PackageManagerBin) -> bool { + super::check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) + } } -fn yum_install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { - todo!() -} +mod apk { + use color_eyre::Result; + use std::{path::Path, process::Command}; -fn yum_status(pm: &PackageManagerBin) -> bool { - check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) -} + use super::PackageManagerBin; -fn zypper_install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { - todo!() + pub fn install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { + todo!() + } + + pub fn status(pm: &PackageManagerBin) -> bool { + super::check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) + } } -fn zypper_status(pm: &PackageManagerBin) -> bool { - check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) +mod yum { + use color_eyre::Result; + use std::{path::Path, process::Command}; + + use super::{check_status, PackageManagerBin}; + + pub fn install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { + todo!() + } + + pub fn status(pm: &PackageManagerBin) -> bool { + check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) + } } -fn brew_install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { - todo!() +mod zypper { + use color_eyre::Result; + use std::{path::Path, process::Command}; + + use super::{check_status, PackageManagerBin}; + + pub fn install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { + todo!() + } + + pub fn status(pm: &PackageManagerBin) -> bool { + check_status(pm.cmd_name(), &mut Command::new(pm.bin_path())) + } } -fn brew_status(pm: &PackageManagerBin) -> bool { - check_status(pm.cmd_name(), Command::new(pm.bin_path()).arg("commands")) +mod brew { + use color_eyre::Result; + use std::{path::Path, process::Command}; + + use super::{check_status, PackageManagerBin}; + + pub fn install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { + todo!() + } + + pub fn status(pm: &PackageManagerBin) -> bool { + check_status(pm.cmd_name(), Command::new(pm.bin_path()).arg("commands")) + } } fn check_status(cmd_name: &str, cmd: &mut Command) -> bool { From 8904172180b230378a0ec1a299672a754eb27bd2 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Thu, 4 May 2023 17:31:30 -0400 Subject: [PATCH 09/17] basic non-interactive logic for finding platform-specific package manager --- crates/cloudtruth-installer/src/lib.rs | 10 ++++---- crates/cloudtruth-installer/src/main.rs | 23 +++++++++++++------ .../src/package_manager.rs | 19 +++++++++++---- 3 files changed, 36 insertions(+), 16 deletions(-) diff --git a/crates/cloudtruth-installer/src/lib.rs b/crates/cloudtruth-installer/src/lib.rs index ef6c47dd..475bd2a0 100644 --- a/crates/cloudtruth-installer/src/lib.rs +++ b/crates/cloudtruth-installer/src/lib.rs @@ -1,8 +1,8 @@ -mod cli; -mod install; -mod install_errors; -mod package_manager; -mod version; +pub mod cli; +pub mod install; +pub mod install_errors; +pub mod package_manager; +pub mod version; pub use cli::{init_globals, Cli}; pub use install::install_latest_version; diff --git a/crates/cloudtruth-installer/src/main.rs b/crates/cloudtruth-installer/src/main.rs index b0064cd8..06c4b350 100644 --- a/crates/cloudtruth-installer/src/main.rs +++ b/crates/cloudtruth-installer/src/main.rs @@ -1,15 +1,24 @@ use clap::Parser; -use cloudtruth_installer::{find_package_managers, init_globals, Cli}; +use cloudtruth_installer::{ + cli, find_package_managers, init_globals, package_manager::PackageManagerBin, Cli, +}; pub fn main() -> color_eyre::Result<()> { color_eyre::install()?; let cli = Cli::parse(); init_globals(&cli); - println!("{cli:?}"); - let pkg_managers = find_package_managers(); - println!("Found package managers:"); - for pm in pkg_managers { - println!("{pm}"); - } + let pkg_manager = if cli::non_interactive() { + // When running non-interactive, take first available package manager + find_package_managers().next().unwrap() + } else { + let mut pkg_managers: Vec = find_package_managers().collect(); + if pkg_managers.len() == 1 { + pkg_managers.swap_remove(0) + } else { + // Prompt user for package manager choice + todo!() + } + }; + println!("{}", pkg_manager); Ok(()) } diff --git a/crates/cloudtruth-installer/src/package_manager.rs b/crates/cloudtruth-installer/src/package_manager.rs index a86e7633..72c0eb32 100644 --- a/crates/cloudtruth-installer/src/package_manager.rs +++ b/crates/cloudtruth-installer/src/package_manager.rs @@ -19,16 +19,28 @@ pub enum PackageManager { } impl PackageManager { - pub const ALL: &[PackageManager] = &[ + #[cfg(not(target_os = "macos"))] + pub const LIST: &[PackageManager] = &[ PackageManager::Apt, PackageManager::Apk, PackageManager::Yum, PackageManager::Zypper, PackageManager::Brew, ]; + #[cfg(target_os = "macos")] + pub const LIST: &[PackageManager] = &[ + PackageManager::Brew, + PackageManager::Apt, + PackageManager::Apk, + PackageManager::Yum, + PackageManager::Zypper, + ]; + /// Iterator over list of possible package managers. + /// Ordering is platform-specific based on which package managers + /// are commonly used on those systems. pub fn iter() -> impl Iterator { - Self::ALL.iter().copied() + Self::LIST.iter().copied() } pub fn cmd_name(&self) -> &'static str { @@ -116,13 +128,12 @@ impl PackageManagerBin { } } -pub fn find_package_managers() -> Vec { +pub fn find_package_managers() -> impl Iterator { PackageManager::iter() .inspect(|pm| verbose!("Searching for {pm}")) .filter_map(PackageManagerBin::find) .inspect(|pm| verbose!("Found {pm}")) .filter(PackageManagerBin::check_status) - .collect() } mod apt { From 00290c8664c04436f699abd3b5ce7e46c2b45503 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Thu, 4 May 2023 17:46:21 -0400 Subject: [PATCH 10/17] remove dead_code annotation --- crates/cloudtruth-installer/src/cli.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/cloudtruth-installer/src/cli.rs b/crates/cloudtruth-installer/src/cli.rs index 22f19a20..01857135 100644 --- a/crates/cloudtruth-installer/src/cli.rs +++ b/crates/cloudtruth-installer/src/cli.rs @@ -19,7 +19,6 @@ pub fn verbose() -> bool { /// Global non-interactive flag. Indicates that we should not prompt the user for input. /// Initialized after CLI parsing, and set to false otherwise. -#[allow(dead_code)] pub fn non_interactive() -> bool { match GLOBALS.get() { Some(globals) => globals.non_interactive, From 11f2831ec4139e433b29261d1de07fddf49ef051 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Thu, 4 May 2023 17:57:41 -0400 Subject: [PATCH 11/17] make init_global private and instead use parse() wrapper function --- crates/cloudtruth-installer/src/cli.rs | 9 ++++++++- crates/cloudtruth-installer/src/lib.rs | 2 +- crates/cloudtruth-installer/src/main.rs | 7 ++----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/crates/cloudtruth-installer/src/cli.rs b/crates/cloudtruth-installer/src/cli.rs index 01857135..4bb7eec3 100644 --- a/crates/cloudtruth-installer/src/cli.rs +++ b/crates/cloudtruth-installer/src/cli.rs @@ -1,3 +1,4 @@ +use clap::Parser; use once_cell::sync::OnceCell; static GLOBALS: OnceCell = OnceCell::new(); @@ -26,9 +27,15 @@ pub fn non_interactive() -> bool { } } +pub fn parse() -> Cli { + let cli = Cli::parse(); + init_globals(&cli); + cli +} + /// initialize global statics (verbosity, non-interactive, etc) /// this funciton will panic if called twice -pub fn init_globals(cli: &Cli) { +fn init_globals(cli: &Cli) { GLOBALS .set(Globals { verbose: cli.verbose, diff --git a/crates/cloudtruth-installer/src/lib.rs b/crates/cloudtruth-installer/src/lib.rs index 475bd2a0..78745aa0 100644 --- a/crates/cloudtruth-installer/src/lib.rs +++ b/crates/cloudtruth-installer/src/lib.rs @@ -4,7 +4,7 @@ pub mod install_errors; pub mod package_manager; pub mod version; -pub use cli::{init_globals, Cli}; +pub use cli::Cli; pub use install::install_latest_version; pub use install_errors::InstallError; pub use package_manager::find_package_managers; diff --git a/crates/cloudtruth-installer/src/main.rs b/crates/cloudtruth-installer/src/main.rs index 06c4b350..5bf2ab05 100644 --- a/crates/cloudtruth-installer/src/main.rs +++ b/crates/cloudtruth-installer/src/main.rs @@ -1,12 +1,9 @@ use clap::Parser; -use cloudtruth_installer::{ - cli, find_package_managers, init_globals, package_manager::PackageManagerBin, Cli, -}; +use cloudtruth_installer::{cli, find_package_managers, package_manager::PackageManagerBin, Cli}; pub fn main() -> color_eyre::Result<()> { color_eyre::install()?; - let cli = Cli::parse(); - init_globals(&cli); + cli::parse(); let pkg_manager = if cli::non_interactive() { // When running non-interactive, take first available package manager find_package_managers().next().unwrap() From 08980b3594919a69d8bb19b488d3f785270f13ce Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Thu, 4 May 2023 18:22:10 -0400 Subject: [PATCH 12/17] add interactive flag, add terminal detection logic --- Cargo.lock | 1 + crates/cloudtruth-installer/Cargo.toml | 1 + crates/cloudtruth-installer/src/cli.rs | 18 ++++++++++++------ crates/cloudtruth-installer/src/main.rs | 5 ++--- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3d5442d0..ac0e4ef2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -571,6 +571,7 @@ dependencies = [ "clap 4.2.7", "color-eyre", "derive_more", + "is-terminal", "itertools", "octocrab", "once_cell", diff --git a/crates/cloudtruth-installer/Cargo.toml b/crates/cloudtruth-installer/Cargo.toml index 18b82133..99ca8154 100644 --- a/crates/cloudtruth-installer/Cargo.toml +++ b/crates/cloudtruth-installer/Cargo.toml @@ -9,6 +9,7 @@ license = "Apache-2.0" clap = { version = "4.0.0", features = ["derive", "env"] } color-eyre = "0.6" derive_more = "0.99.17" +is-terminal = "0.4.7" itertools = "0.10.5" octocrab = "0.21" once_cell = "1.17.1" diff --git a/crates/cloudtruth-installer/src/cli.rs b/crates/cloudtruth-installer/src/cli.rs index 4bb7eec3..16e46ab5 100644 --- a/crates/cloudtruth-installer/src/cli.rs +++ b/crates/cloudtruth-installer/src/cli.rs @@ -1,4 +1,5 @@ use clap::Parser; +use is_terminal::IsTerminal; use once_cell::sync::OnceCell; static GLOBALS: OnceCell = OnceCell::new(); @@ -6,7 +7,7 @@ static GLOBALS: OnceCell = OnceCell::new(); #[derive(Debug)] struct Globals { verbose: bool, - non_interactive: bool, + interactive: bool, } /// Global verbose flag. @@ -20,9 +21,9 @@ pub fn verbose() -> bool { /// Global non-interactive flag. Indicates that we should not prompt the user for input. /// Initialized after CLI parsing, and set to false otherwise. -pub fn non_interactive() -> bool { +pub fn interactive() -> bool { match GLOBALS.get() { - Some(globals) => globals.non_interactive, + Some(globals) => globals.interactive, _ => false, } } @@ -39,7 +40,9 @@ fn init_globals(cli: &Cli) { GLOBALS .set(Globals { verbose: cli.verbose, - non_interactive: cli.non_interactive, + interactive: !cli.non_interactive + && (cli.interactive + || (std::io::stdin().is_terminal() && std::io::stdout().is_terminal())), }) .expect("CLI globals were initialized twice") } @@ -54,8 +57,11 @@ pub struct Cli { /// Show verbose information #[arg(global = true, short, long, default_value_t = false)] verbose: bool, - /// Non-interactive mode, do not prompt or ask for confirmations - #[arg(global = true, short = 'y', long, default_value_t = false)] + /// Force interactive mode, always prompt and ask for confirmations + #[arg(global = true, short = 'i', long, overrides_with = "non_interactive")] + interactive: bool, + /// Force non-interactive mode, do not prompt or ask for confirmations + #[arg(global = true, short = 'n', long, overrides_with = "interactive")] non_interactive: bool, } diff --git a/crates/cloudtruth-installer/src/main.rs b/crates/cloudtruth-installer/src/main.rs index 5bf2ab05..1d4acc7a 100644 --- a/crates/cloudtruth-installer/src/main.rs +++ b/crates/cloudtruth-installer/src/main.rs @@ -1,10 +1,9 @@ -use clap::Parser; -use cloudtruth_installer::{cli, find_package_managers, package_manager::PackageManagerBin, Cli}; +use cloudtruth_installer::{cli, find_package_managers, package_manager::PackageManagerBin}; pub fn main() -> color_eyre::Result<()> { color_eyre::install()?; cli::parse(); - let pkg_manager = if cli::non_interactive() { + let pkg_manager = if !cli::interactive() { // When running non-interactive, take first available package manager find_package_managers().next().unwrap() } else { From 536da69f73ba802845bf10491ad063824754a710 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Thu, 4 May 2023 18:54:07 -0400 Subject: [PATCH 13/17] add CI detection --- crates/cloudtruth-installer/src/cli.rs | 49 ++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/crates/cloudtruth-installer/src/cli.rs b/crates/cloudtruth-installer/src/cli.rs index 16e46ab5..35ab9cdf 100644 --- a/crates/cloudtruth-installer/src/cli.rs +++ b/crates/cloudtruth-installer/src/cli.rs @@ -40,9 +40,7 @@ fn init_globals(cli: &Cli) { GLOBALS .set(Globals { verbose: cli.verbose, - interactive: !cli.non_interactive - && (cli.interactive - || (std::io::stdin().is_terminal() && std::io::stdout().is_terminal())), + interactive: cli.is_interactive(), }) .expect("CLI globals were initialized twice") } @@ -65,6 +63,14 @@ pub struct Cli { non_interactive: bool, } +impl Cli { + pub fn is_interactive(&self) -> bool { + !self.non_interactive + && (self.interactive + || !is_ci() && std::io::stdin().is_terminal() && std::io::stdout().is_terminal()) + } +} + #[derive(Debug, clap::Subcommand)] pub enum Subcommand { #[command(about = "Install a Cloudtruth CLI ")] @@ -102,3 +108,40 @@ pub struct GitHubOptions { /// GitHub API Release ID release_id: Option, } + +/// Helper to detect common CI environment variables +fn is_ci() -> bool { + macro_rules! check_ci_vars { + ($name:literal $(,$names:literal)*$(,)?) => { std::env::var_os($name).is_some() $(|| std::env::var_os($names).is_some())* } + } + /// List is from watson/ci-info + static IS_CI: OnceCell = OnceCell::new(); + *IS_CI.get_or_init(|| { + check_ci_vars!( + "CI", + "BUILD_ID", + "BUILD_NUMBER", + "CI_APP_ID", + "CI_BUILD_ID", + "CI_BUILD_NUMBER", + "CI_NAME", + "CONTINUOUS_INTEGRATION", + "RUN_ID", + "CIRCLECI", + "GITLAB_CI", + "APPVEYOR", + "DRONE", + "MAGNUM", + "SEMAPHORE", + "JENKINS_URL", + "bamboo_planKey", + "TF_BUILD", + "TEAMCITY_VERSION", + "BUILDKITE", + "HUDSON_URL", + "GO_PIPELINE_LABEL", + "BITBUCKET_COMMIT", + "GITHUB_ACTIONS", + ) + }) +} From 3d222665d3473e093d6c8c8286329b1f74cb47a8 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Thu, 4 May 2023 19:38:55 -0400 Subject: [PATCH 14/17] use ci_info crate --- Cargo.lock | 35 +++++++++++++++++++++++--- crates/cloudtruth-installer/Cargo.toml | 1 + crates/cloudtruth-installer/src/cli.rs | 32 +---------------------- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ac0e4ef2..0ec02443 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -426,7 +426,16 @@ version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24f638c70e8c5753795cc9a8c07c44da91554a09e4cf11a7326e8161b0a3c45e" dependencies = [ - "envmnt", + "envmnt 0.8.4", +] + +[[package]] +name = "ci_info" +version = "0.14.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2870ea3dda7e0f991e98712fc8e45d402b9a96ce32f8908d851a6d683729722d" +dependencies = [ + "envmnt 0.10.4", ] [[package]] @@ -568,6 +577,7 @@ dependencies = [ name = "cloudtruth-installer" version = "1.2.3" dependencies = [ + "ci_info 0.14.10", "clap 4.2.7", "color-eyre", "derive_more", @@ -1141,7 +1151,17 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2d328fc287c61314c4a61af7cfdcbd7e678e39778488c7cb13ec133ce0f4059" dependencies = [ - "fsio", + "fsio 0.1.3", + "indexmap", +] + +[[package]] +name = "envmnt" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d73999a2b8871e74c8b8bc23759ee9f3d85011b24fafc91a4b3b5c8cc8185501" +dependencies = [ + "fsio 0.4.0", "indexmap", ] @@ -1274,6 +1294,15 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c1fd087255f739f4f1aeea69f11b72f8080e9c2e7645cd06955dad4a178a49e3" +[[package]] +name = "fsio" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad0ce30be0cc441b325c5d705c8b613a0ca0d92b6a8953d41bd236dc09a36d0" +dependencies = [ + "dunce", +] + [[package]] name = "fuchsia-cprng" version = "0.1.1" @@ -3028,7 +3057,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96cee9be61be7e1cbadd851e58ed7449c29c620f00b23df937cb9cbc04ac21a3" dependencies = [ - "ci_info", + "ci_info 0.10.2", "getopts", "nias", "toml", diff --git a/crates/cloudtruth-installer/Cargo.toml b/crates/cloudtruth-installer/Cargo.toml index 99ca8154..baab5a8c 100644 --- a/crates/cloudtruth-installer/Cargo.toml +++ b/crates/cloudtruth-installer/Cargo.toml @@ -6,6 +6,7 @@ edition = "2021" license = "Apache-2.0" [dependencies] +ci_info = "0.14.10" clap = { version = "4.0.0", features = ["derive", "env"] } color-eyre = "0.6" derive_more = "0.99.17" diff --git a/crates/cloudtruth-installer/src/cli.rs b/crates/cloudtruth-installer/src/cli.rs index 35ab9cdf..fa0514be 100644 --- a/crates/cloudtruth-installer/src/cli.rs +++ b/crates/cloudtruth-installer/src/cli.rs @@ -111,37 +111,7 @@ pub struct GitHubOptions { /// Helper to detect common CI environment variables fn is_ci() -> bool { - macro_rules! check_ci_vars { - ($name:literal $(,$names:literal)*$(,)?) => { std::env::var_os($name).is_some() $(|| std::env::var_os($names).is_some())* } - } /// List is from watson/ci-info static IS_CI: OnceCell = OnceCell::new(); - *IS_CI.get_or_init(|| { - check_ci_vars!( - "CI", - "BUILD_ID", - "BUILD_NUMBER", - "CI_APP_ID", - "CI_BUILD_ID", - "CI_BUILD_NUMBER", - "CI_NAME", - "CONTINUOUS_INTEGRATION", - "RUN_ID", - "CIRCLECI", - "GITLAB_CI", - "APPVEYOR", - "DRONE", - "MAGNUM", - "SEMAPHORE", - "JENKINS_URL", - "bamboo_planKey", - "TF_BUILD", - "TEAMCITY_VERSION", - "BUILDKITE", - "HUDSON_URL", - "GO_PIPELINE_LABEL", - "BITBUCKET_COMMIT", - "GITHUB_ACTIONS", - ) - }) + *IS_CI.get_or_init(ci_info::is_ci) } From 216dbc02932e91af967721079900fcb1fb9effb6 Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Fri, 5 May 2023 13:29:44 -0400 Subject: [PATCH 15/17] add installation from archive --- Cargo.lock | 788 +++++++++++------- crates/cloudtruth-installer/Cargo.toml | 22 +- crates/cloudtruth-installer/build.rs | 7 + crates/cloudtruth-installer/src/cli.rs | 6 +- crates/cloudtruth-installer/src/github.rs | 54 ++ crates/cloudtruth-installer/src/install.rs | 100 +-- .../src/install_errors.rs | 41 - crates/cloudtruth-installer/src/lib.rs | 26 +- crates/cloudtruth-installer/src/main.rs | 20 +- .../src/package_manager.rs | 54 +- crates/cloudtruth-installer/src/version.rs | 35 - src/lib.rs | 64 +- src/versions.rs | 93 ++- 13 files changed, 733 insertions(+), 577 deletions(-) create mode 100644 crates/cloudtruth-installer/build.rs create mode 100644 crates/cloudtruth-installer/src/github.rs delete mode 100644 crates/cloudtruth-installer/src/install_errors.rs delete mode 100644 crates/cloudtruth-installer/src/version.rs diff --git a/Cargo.lock b/Cargo.lock index 0ec02443..1de33c9c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,7 +34,7 @@ checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if 1.0.0", "cipher", - "cpufeatures 0.2.5", + "cpufeatures 0.2.7", "opaque-debug", ] @@ -65,9 +65,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.20" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" dependencies = [ "memchr", ] @@ -96,7 +96,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" dependencies = [ - "anstyle 1.0.0", + "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", @@ -105,12 +105,6 @@ dependencies = [ "utf8parse", ] -[[package]] -name = "anstyle" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" - [[package]] name = "anstyle" version = "1.0.0" @@ -141,15 +135,15 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" dependencies = [ - "anstyle 1.0.0", + "anstyle", "windows-sys 0.48.0", ] [[package]] name = "anyhow" -version = "1.0.70" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" [[package]] name = "arc-swap" @@ -176,7 +170,7 @@ checksum = "87bf87e6e8b47264efa9bde63d6225c6276a52e05e91bf37eaa8afd0032d6b71" dependencies = [ "askama_shared", "proc-macro2", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] @@ -201,17 +195,17 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 1.0.107", + "syn 1.0.109", "toml", ] [[package]] name = "assert_cmd" -version = "2.0.10" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0b2340f55d9661d76793b2bfc2eb0e62689bd79d067a95707ea762afd5e9dd" +checksum = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151" dependencies = [ - "anstyle 0.3.5", + "anstyle", "bstr", "doc-comment", "predicates", @@ -234,7 +228,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 2.0.15", ] [[package]] @@ -273,11 +267,20 @@ dependencies = [ "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide", + "miniz_oxide 0.6.2", "object", "rustc-demangle", ] +[[package]] +name = "backtrace-ext" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50" +dependencies = [ + "backtrace", +] + [[package]] name = "base64" version = "0.10.1" @@ -328,9 +331,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" [[package]] name = "byteorder" @@ -480,7 +483,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "914c8c79fb560f238ef6429439a30023c862f7a28e688c58f7203f12b29970bd" dependencies = [ "anstream", - "anstyle 1.0.0", + "anstyle", "bitflags", "clap_lex", "strsim 0.10.0", @@ -495,7 +498,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.12", + "syn 2.0.15", ] [[package]] @@ -536,10 +539,10 @@ dependencies = [ "indoc 1.0.9", "integration-test-harness", "once_cell", - "powershell_script 0.2.1", + "powershell_script", "prettytable-rs", "rand_core 0.6.4", - "reqwest", + "reqwest 0.9.24", "rpassword", "rusty-hook", "serde", @@ -565,7 +568,7 @@ dependencies = [ "chrono", "cloudtruth-restapi", "color-eyre", - "directories 5.0.0", + "directories 5.0.1", "indoc 2.0.1", "once_cell", "serde", @@ -577,18 +580,22 @@ dependencies = [ name = "cloudtruth-installer" version = "1.2.3" dependencies = [ + "bytes 1.4.0", "ci_info 0.14.10", "clap 4.2.7", "color-eyre", "derive_more", + "flate2", + "futures-core", + "futures-util", "is-terminal", - "itertools", "octocrab", "once_cell", - "powershell_script 1.0.4", - "reqwest", + "reqwest 0.11.17", "serde_json", + "tar", "tempfile", + "tokio 1.28.0", "which", ] @@ -596,7 +603,7 @@ dependencies = [ name = "cloudtruth-restapi" version = "1.0.0" dependencies = [ - "reqwest", + "reqwest 0.9.24", "serde", "serde_derive", "serde_json", @@ -656,23 +663,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "concolor" -version = "0.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b3e3c41e9488eeda196b6806dbf487742107d61b2e16485bcca6c25ed5755b" -dependencies = [ - "bitflags", - "concolor-query", - "is-terminal", -] - -[[package]] -name = "concolor-query" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a90734b3d5dcf656e7624cca6bce9c3a90ee11f900e80141a7427ccfb3d317" - [[package]] name = "const_format" version = "0.2.30" @@ -748,9 +738,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "cpufeatures" @@ -763,9 +753,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" dependencies = [ "libc", ] @@ -882,12 +872,12 @@ dependencies = [ [[package]] name = "csv" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af91f40b7355f82b0a891f50e70399475945bb0b0da4f1700ce60761c9d3e359" +checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad" dependencies = [ "csv-core", - "itoa 1.0.5", + "itoa 1.0.6", "ryu", "serde", ] @@ -910,17 +900,11 @@ dependencies = [ "cipher", ] -[[package]] -name = "cty" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" - [[package]] name = "cxx" -version = "1.0.91" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d3488e7665a7a483b57e25bdd90d0aeb2bc7608c8d0346acf2ad3f1caf1d62" +checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" dependencies = [ "cc", "cxxbridge-flags", @@ -930,9 +914,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.91" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fcaf066a053a41a81dfb14d57d99738b767febb8b735c3016e469fac5da690" +checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" dependencies = [ "cc", "codespan-reporting", @@ -940,24 +924,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 1.0.107", + "syn 2.0.15", ] [[package]] name = "cxxbridge-flags" -version = "1.0.91" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef98b8b717a829ca5603af80e1f9e2e48013ab227b68ef37872ef84ee479bf" +checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" [[package]] name = "cxxbridge-macro" -version = "1.0.91" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "086c685979a698443656e5cf7856c95c642295a38599f12fb1ff76fb28d19892" +checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.15", ] [[package]] @@ -983,7 +967,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] @@ -1012,11 +996,11 @@ dependencies = [ [[package]] name = "directories" -version = "5.0.0" +version = "5.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74be3be809c18e089de43bdc504652bb2bc473fca8756131f8689db8cf079ba9" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" dependencies = [ - "dirs-sys 0.4.0", + "dirs-sys 0.4.1", ] [[package]] @@ -1051,13 +1035,14 @@ dependencies = [ [[package]] name = "dirs-sys" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04414300db88f70d74c5ff54e50f9e1d1737d9a5b90f53fcf2e95ca2a9ab554b" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" dependencies = [ "libc", + "option-ext", "redox_users", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -1214,7 +1199,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", "synstructure", ] @@ -1241,12 +1226,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.7.1", ] [[package]] @@ -1333,9 +1318,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -1348,9 +1333,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", @@ -1358,9 +1343,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-cpupool" @@ -1374,9 +1359,9 @@ dependencies = [ [[package]] name = "futures-executor" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -1385,38 +1370,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-macro" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.15", ] [[package]] name = "futures-sink" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-util" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures-channel", "futures-core", @@ -1432,9 +1417,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -1451,9 +1436,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" dependencies = [ "cfg-if 1.0.0", "libc", @@ -1500,6 +1485,25 @@ dependencies = [ "tokio-io", ] +[[package]] +name = "h2" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +dependencies = [ + "bytes 1.4.0", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.9", + "indexmap", + "slab", + "tokio 1.28.0", + "tokio-util", + "tracing", +] + [[package]] name = "hashbrown" version = "0.12.3" @@ -1584,7 +1588,7 @@ checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes 1.4.0", "fnv", - "itoa 1.0.5", + "itoa 1.0.6", ] [[package]] @@ -1659,7 +1663,7 @@ dependencies = [ "bytes 0.4.12", "futures 0.1.31", "futures-cpupool", - "h2", + "h2 0.1.26", "http 0.1.21", "http-body 0.1.0", "httparse", @@ -1690,19 +1694,33 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", + "h2 0.3.18", "http 0.2.9", "http-body 0.4.5", "httparse", "httpdate", - "itoa 1.0.5", + "itoa 1.0.6", "pin-project-lite", "socket2", - "tokio 1.26.0", + "tokio 1.28.0", "tower-service", "tracing", "want 0.3.0", ] +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http 0.2.9", + "hyper 0.14.26", + "rustls 0.20.8", + "tokio 1.28.0", + "tokio-rustls 0.23.4", +] + [[package]] name = "hyper-rustls" version = "0.24.0" @@ -1712,10 +1730,10 @@ dependencies = [ "http 0.2.9", "hyper 0.14.26", "log", - "rustls", + "rustls 0.21.1", "rustls-native-certs", - "tokio 1.26.0", - "tokio-rustls", + "tokio 1.28.0", + "tokio-rustls 0.24.0", ] [[package]] @@ -1726,7 +1744,7 @@ checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ "hyper 0.14.26", "pin-project-lite", - "tokio 1.26.0", + "tokio 1.28.0", "tokio-io-timeout", ] @@ -1745,16 +1763,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.53" +version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "winapi 0.3.9", + "windows", ] [[package]] @@ -1807,9 +1825,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg 1.1.0", "hashbrown", @@ -1855,7 +1873,7 @@ dependencies = [ "shlex", "tempfile", "thiserror", - "uuid 1.3.0", + "uuid 1.3.2", ] [[package]] @@ -1864,17 +1882,18 @@ version = "1.2.3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 2.0.15", ] [[package]] name = "io-lifetimes" -version = "1.0.5" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3" +checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" dependencies = [ + "hermit-abi 0.3.1", "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -1886,6 +1905,12 @@ dependencies = [ "libc", ] +[[package]] +name = "ipnet" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" + [[package]] name = "is-terminal" version = "0.4.7" @@ -1921,22 +1946,24 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "jni" -version = "0.20.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if 1.0.0", "combine", "jni-sys", "log", "thiserror", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -1986,9 +2013,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.139" +version = "0.2.142" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" [[package]] name = "link-cplusplus" @@ -2007,9 +2034,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.3.1" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" +checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" [[package]] name = "lock_api" @@ -2086,11 +2113,12 @@ dependencies = [ [[package]] name = "miette" -version = "5.6.0" +version = "5.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07749fb52853e739208049fb513287c6f448de9103dfa78b05ae01f2fc5809bb" +checksum = "92a992891d5579caa9efd8e601f82e30a1caa79a27a5db075dde30ecb9eab357" dependencies = [ "backtrace", + "backtrace-ext", "is-terminal", "miette-derive", "once_cell", @@ -2106,20 +2134,20 @@ dependencies = [ [[package]] name = "miette-derive" -version = "5.6.0" +version = "5.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a07ad93a80d1b92bb44cb42d7c49b49c9aab1778befefad49cceb5e4c5bf460" +checksum = "4c65c625186a9bcce6699394bee511e1b1aec689aa7e3be1bf4e996e75834153" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.15", ] [[package]] name = "mime" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "mime_guess" @@ -2146,6 +2174,15 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + [[package]] name = "mio" version = "0.6.23" @@ -2307,8 +2344,7 @@ dependencies = [ [[package]] name = "octocrab" version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db170d97e0e88e41faf8ef5277c850d8370c1ef759403c7004a43f2161ce357" +source = "git+https://github.com/kallisti-dev/octocrab.git?branch=asset-uploader-struct#cf867f9ef6c6a6b32e7ffec791cb9eb8c1382233" dependencies = [ "arc-swap", "async-trait", @@ -2317,12 +2353,12 @@ dependencies = [ "cfg-if 1.0.0", "chrono", "either", - "futures 0.3.27", + "futures 0.3.28", "futures-util", "http 0.2.9", "http-body 0.4.5", "hyper 0.14.26", - "hyper-rustls", + "hyper-rustls 0.24.0", "hyper-timeout", "jsonwebtoken", "once_cell", @@ -2334,7 +2370,7 @@ dependencies = [ "serde_path_to_error", "serde_urlencoded 0.7.1", "snafu", - "tokio 1.26.0", + "tokio 1.28.0", "tower", "tower-http", "tracing", @@ -2355,9 +2391,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.48" +version = "0.10.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518915b97df115dd36109bfa429a48b8f737bd05508cf9588977b599648926d2" +checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -2370,13 +2406,13 @@ dependencies = [ [[package]] name = "openssl-macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.15", ] [[package]] @@ -2387,20 +2423,19 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "111.25.0+1.1.1t" +version = "111.25.3+1.1.1t" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3173cd3626c43e3854b1b727422a276e568d9ec5fe8cec197822cf52cfb743d6" +checksum = "924757a6a226bf60da5f7dd0311a34d2b52283dd82ddeb103208ddc66362f80c" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.83" +version = "0.9.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666416d899cf077260dac8698d60a60b435a46d57e82acb1be3d0dad87284e5b" +checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" dependencies = [ - "autocfg 1.1.0", "cc", "libc", "openssl-src", @@ -2408,14 +2443,20 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + [[package]] name = "os_pipe" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53dbb20faf34b16087a931834cba2d7a73cc74af2b7ef345a4c8324e2409a12" +checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" dependencies = [ "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -2536,7 +2577,7 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] @@ -2553,9 +2594,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "poly1305" @@ -2563,7 +2604,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ - "cpufeatures 0.2.5", + "cpufeatures 0.2.7", "opaque-debug", "universal-hash", ] @@ -2575,7 +2616,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ "cfg-if 1.0.0", - "cpufeatures 0.2.5", + "cpufeatures 0.2.7", "opaque-debug", "universal-hash", ] @@ -2586,12 +2627,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "36d62894f5590e88d99d0d82918742ba8e5bff1985af15d4906b6a65f635adb2" -[[package]] -name = "powershell_script" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54bde2e1a395c0aee9423072d781610da37b7b120edf17d4da99f83d04f2cd54" - [[package]] name = "ppv-lite86" version = "0.2.17" @@ -2600,11 +2635,11 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c575290b64d24745b6c57a12a31465f0a66f3a4799686a6921526a33b0797965" +checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" dependencies = [ - "anstyle 0.3.5", + "anstyle", "difflib", "float-cmp", "itertools", @@ -2621,9 +2656,9 @@ checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] name = "predicates-tree" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" dependencies = [ "predicates-core", "termtree", @@ -2645,9 +2680,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.54" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e472a104799c74b514a57226160104aa483546de37e839ec50e3c2e41dd87534" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" dependencies = [ "unicode-ident", ] @@ -2809,12 +2844,9 @@ dependencies = [ [[package]] name = "raw-window-handle" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" -dependencies = [ - "cty", -] +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" [[package]] name = "rayon" @@ -2884,9 +2916,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" dependencies = [ "aho-corasick", "memchr", @@ -2901,9 +2933,9 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" [[package]] name = "reqwest" @@ -2936,7 +2968,48 @@ dependencies = [ "tokio-timer", "url 1.7.2", "uuid 0.7.4", - "winreg", + "winreg 0.6.2", +] + +[[package]] +name = "reqwest" +version = "0.11.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91" +dependencies = [ + "base64 0.21.0", + "bytes 1.4.0", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.18", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.26", + "hyper-rustls 0.23.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding 2.2.0", + "pin-project-lite", + "rustls 0.20.8", + "rustls-native-certs", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded 0.7.1", + "tokio 1.28.0", + "tokio-rustls 0.23.4", + "tokio-util", + "tower-service", + "url 2.3.1", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "winreg 0.10.1", ] [[package]] @@ -2966,9 +3039,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc_version" @@ -2990,16 +3063,28 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.3" +version = "0.37.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" +checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" dependencies = [ "bitflags", "errno", "io-lifetimes", "libc", "linux-raw-sys", - "windows-sys 0.45.0", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustls" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +dependencies = [ + "log", + "ring", + "sct", + "webpki", ] [[package]] @@ -3047,9 +3132,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" +checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" [[package]] name = "rusty-hook" @@ -3065,9 +3150,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "same-file" @@ -3095,9 +3180,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.3" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" +checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" [[package]] name = "sct" @@ -3164,22 +3249,22 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.152" +version = "1.0.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +checksum = "71b2f6e1ab5c2b98c05f0f35b236b22e8df7ead6ffbf51d7808da7f8817e7ab6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.152" +version = "1.0.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.15", ] [[package]] @@ -3188,7 +3273,7 @@ version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" dependencies = [ - "itoa 1.0.5", + "itoa 1.0.6", "ryu", "serde", ] @@ -3239,7 +3324,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.5", + "itoa 1.0.6", "ryu", "serde", ] @@ -3258,12 +3343,12 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.19" +version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82e6c8c047aa50a7328632d067bcae6ef38772a79e28daf32f735e0e4f3dd10" +checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ "indexmap", - "itoa 1.0.5", + "itoa 1.0.6", "ryu", "serde", "unsafe-libyaml", @@ -3287,7 +3372,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "538c30747ae860d6fb88330addbbd3e0ddbe46d662d032855596d8a8ca260611" dependencies = [ "dashmap", - "futures 0.3.27", + "futures 0.3.28", "lazy_static", "log", "parking_lot 0.12.1", @@ -3302,7 +3387,7 @@ checksum = "b2acd6defeddb41eb60bb468f8825d0cfd0c2a76bc03bfd235b6a1dc4f6a1ad5" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] @@ -3313,7 +3398,7 @@ checksum = "079a83df15f85d89a68d64ae1238f142f172b1fa915d0d76b26a7cba1b659a69" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] @@ -3324,7 +3409,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer", "cfg-if 1.0.0", - "cpufeatures 0.2.5", + "cpufeatures 0.2.7", "digest", "opaque-debug", ] @@ -3354,6 +3439,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + [[package]] name = "similar" version = "2.2.1" @@ -3374,9 +3468,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg 1.1.0", ] @@ -3422,16 +3516,17 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] name = "snapbox" -version = "0.4.8" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4389a6395e9925166f19d67b64874e526ec28a4b8455f3321b686c912299c3ea" +checksum = "f6bccd62078347f89a914e3004d94582e13824d4e3d8a816317862884c423835" dependencies = [ - "concolor", + "anstream", + "anstyle", "content_inspector", "dunce", "filetime", @@ -3444,7 +3539,6 @@ dependencies = [ "wait-timeout", "walkdir", "windows-sys 0.45.0", - "yansi", ] [[package]] @@ -3452,6 +3546,9 @@ name = "snapbox-macros" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaaf09df9f0eeae82be96290918520214530e738a7fe5a351b0f24cf77c0ca31" +dependencies = [ + "anstream", +] [[package]] name = "socket2" @@ -3519,9 +3616,9 @@ dependencies = [ [[package]] name = "supports-hyperlinks" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4806e0b03b9906e76b018a5d821ebf198c8e9dc0829ed3328eeeb5094aed60" +checksum = "f84231692eb0d4d41e4cdd0cabfdd2e6cd9e255e65f80c9aa7c98dd502b4233d" dependencies = [ "is-terminal", ] @@ -3537,9 +3634,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -3548,9 +3645,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.12" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79d9531f94112cfc3e4c8f5f02cb2b58f72c97b7efd85f70203cc6d8efda5927" +checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" dependencies = [ "proc-macro2", "quote", @@ -3565,10 +3662,21 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", "unicode-xid", ] +[[package]] +name = "tar" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +dependencies = [ + "filetime", + "libc", + "xattr", +] + [[package]] name = "tempfile" version = "3.5.0" @@ -3614,9 +3722,9 @@ dependencies = [ [[package]] name = "termtree" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "textwrap" @@ -3655,7 +3763,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.12", + "syn 2.0.15", ] [[package]] @@ -3685,7 +3793,7 @@ version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" dependencies = [ - "itoa 1.0.5", + "itoa 1.0.6", "serde", "time-core", "time-macros", @@ -3742,18 +3850,21 @@ dependencies = [ [[package]] name = "tokio" -version = "1.26.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" +checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" dependencies = [ "autocfg 1.1.0", + "bytes 1.4.0", "libc", "mio 0.8.6", "num_cpus", + "parking_lot 0.12.1", "pin-project-lite", + "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -3805,18 +3916,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ "pin-project-lite", - "tokio 1.26.0", + "tokio 1.28.0", ] [[package]] name = "tokio-macros" -version = "1.8.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.15", ] [[package]] @@ -3838,25 +3949,36 @@ dependencies = [ "tokio-sync", ] +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.8", + "tokio 1.28.0", + "webpki", +] + [[package]] name = "tokio-rustls" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5" dependencies = [ - "rustls", - "tokio 1.26.0", + "rustls 0.21.1", + "tokio 1.28.0", ] [[package]] name = "tokio-stream" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", "pin-project-lite", - "tokio 1.26.0", + "tokio 1.28.0", ] [[package]] @@ -3922,7 +4044,8 @@ dependencies = [ "futures-core", "futures-sink", "pin-project-lite", - "tokio 1.26.0", + "tokio 1.28.0", + "tracing", ] [[package]] @@ -3966,7 +4089,7 @@ dependencies = [ "futures-util", "pin-project", "pin-project-lite", - "tokio 1.26.0", + "tokio 1.28.0", "tokio-util", "tower-layer", "tower-service", @@ -4019,13 +4142,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.15", ] [[package]] @@ -4050,9 +4173,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" dependencies = [ "sharded-slab", "thread_local", @@ -4076,9 +4199,9 @@ dependencies = [ [[package]] name = "trycmd" -version = "0.14.13" +version = "0.14.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2311fe1144338119b5b9b31499286c7f60eaf00ce0dcacf5a445a12eb47aed29" +checksum = "2925e71868a12b173c1eb166018c2d2f9dfaedfcaec747bdb6ea2246785d258e" dependencies = [ "glob", "humantime", @@ -4107,15 +4230,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.10" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-linebreak" @@ -4160,9 +4283,9 @@ dependencies = [ [[package]] name = "unsafe-libyaml" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2024452afd3874bf539695e04af6732ba06517424dbf958fdb16a01f3bef6c" +checksum = "1865806a559042e51ab5414598446a5871b561d21b6764f2eabb0dd481d880a6" [[package]] name = "untrusted" @@ -4216,9 +4339,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" dependencies = [ "getrandom", "rand 0.8.5", @@ -4265,12 +4388,11 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi 0.3.9", "winapi-util", ] @@ -4328,10 +4450,22 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" +dependencies = [ + "cfg-if 1.0.0", + "js-sys", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.84" @@ -4350,7 +4484,7 @@ checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4361,6 +4495,19 @@ version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +[[package]] +name = "wasm-streams" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "web-sys" version = "0.3.61" @@ -4373,9 +4520,9 @@ dependencies = [ [[package]] name = "webbrowser" -version = "0.8.7" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d1fa1e5c829b2bf9eb1e28fb950248b797cd6a04866fbdfa8bc31e5eef4c78" +checksum = "b692165700260bbd40fbc5ff23766c03e339fbaca907aeea5cb77bf0a553ca83" dependencies = [ "core-foundation", "dirs", @@ -4388,6 +4535,16 @@ dependencies = [ "web-sys", ] +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "which" version = "4.4.0" @@ -4442,19 +4599,28 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.0", +] + [[package]] name = "windows-sys" version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm 0.42.1", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm 0.42.1", - "windows_x86_64_msvc 0.42.1", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -4463,7 +4629,7 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets 0.42.1", + "windows-targets 0.42.2", ] [[package]] @@ -4477,17 +4643,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ - "windows_aarch64_gnullvm 0.42.1", - "windows_aarch64_msvc 0.42.1", - "windows_i686_gnu 0.42.1", - "windows_i686_msvc 0.42.1", - "windows_x86_64_gnu 0.42.1", - "windows_x86_64_gnullvm 0.42.1", - "windows_x86_64_msvc 0.42.1", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -4507,9 +4673,9 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" [[package]] name = "windows_aarch64_gnullvm" @@ -4519,9 +4685,9 @@ checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" @@ -4531,9 +4697,9 @@ checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" @@ -4543,9 +4709,9 @@ checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" @@ -4555,9 +4721,9 @@ checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" @@ -4567,9 +4733,9 @@ checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" @@ -4579,9 +4745,9 @@ checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" @@ -4591,9 +4757,9 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winnow" -version = "0.4.1" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28" +checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" dependencies = [ "memchr", ] @@ -4607,6 +4773,15 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi 0.3.9", +] + [[package]] name = "ws2_32-sys" version = "0.2.1" @@ -4617,6 +4792,15 @@ dependencies = [ "winapi-build", ] +[[package]] +name = "xattr" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +dependencies = [ + "libc", +] + [[package]] name = "xtask" version = "0.1.0" @@ -4625,14 +4809,14 @@ dependencies = [ "askama", "clap 4.2.7", "duct", - "futures 0.3.27", + "futures 0.3.28", "itertools", "once_cell", "serde", "serde_json", "serde_plain", - "serde_yaml 0.9.19", - "tokio 1.26.0", + "serde_yaml 0.9.21", + "tokio 1.28.0", "tokio-stream", ] @@ -4645,12 +4829,6 @@ dependencies = [ "linked-hash-map", ] -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - [[package]] name = "zeroize" version = "1.6.0" diff --git a/crates/cloudtruth-installer/Cargo.toml b/crates/cloudtruth-installer/Cargo.toml index baab5a8c..f12bd3c4 100644 --- a/crates/cloudtruth-installer/Cargo.toml +++ b/crates/cloudtruth-installer/Cargo.toml @@ -6,16 +6,20 @@ edition = "2021" license = "Apache-2.0" [dependencies] -ci_info = "0.14.10" +bytes = "1.4" +ci_info = "0.14" clap = { version = "4.0.0", features = ["derive", "env"] } color-eyre = "0.6" -derive_more = "0.99.17" -is-terminal = "0.4.7" -itertools = "0.10.5" -octocrab = "0.21" -once_cell = "1.17.1" -powershell_script = "1.0.4" -reqwest = { version = "~0.9", default-features = false, features = ["default-tls-vendored"] } +derive_more = "0.99" +flate2 = "1.0" +futures-core = "0.3" +futures-util = "0.3" +is-terminal = "0.4" +octocrab = { git = "https://github.com/kallisti-dev/octocrab.git", branch = "asset-uploader-struct" } +once_cell = "1.17" +reqwest = { version = "~0.11", default-features = false, features = ["stream", "rustls-tls-native-roots"] } serde_json = "1.0" +tar = "0.4" tempfile = "3.4" -which = "4.4.0" +tokio = { version = "1.28", features = ["full"] } +which = "4.4" diff --git a/crates/cloudtruth-installer/build.rs b/crates/cloudtruth-installer/build.rs new file mode 100644 index 00000000..35763916 --- /dev/null +++ b/crates/cloudtruth-installer/build.rs @@ -0,0 +1,7 @@ +fn main() { + // Make TARGET environment variable available to code at build-time + println!( + "cargo:rustc-env=TARGET={}", + std::env::var("TARGET").unwrap() + ); +} diff --git a/crates/cloudtruth-installer/src/cli.rs b/crates/cloudtruth-installer/src/cli.rs index fa0514be..723cf493 100644 --- a/crates/cloudtruth-installer/src/cli.rs +++ b/crates/cloudtruth-installer/src/cli.rs @@ -51,7 +51,7 @@ fn init_globals(cli: &Cli) { pub struct Cli { /// Subcommands #[command(subcommand)] - command: Subcommand, + pub command: Subcommand, /// Show verbose information #[arg(global = true, short, long, default_value_t = false)] verbose: bool, @@ -79,10 +79,8 @@ pub enum Subcommand { #[derive(Debug, clap::Args)] pub struct InstallCommand { - /// Name of the program to install - name: String, /// Version of the program to install (defaults to latest) - version: Option, + pub version: Option, #[command(flatten)] github_opts: GitHubOptions, } diff --git a/crates/cloudtruth-installer/src/github.rs b/crates/cloudtruth-installer/src/github.rs new file mode 100644 index 00000000..088c513a --- /dev/null +++ b/crates/cloudtruth-installer/src/github.rs @@ -0,0 +1,54 @@ +use bytes::Bytes; +use color_eyre::{eyre::eyre, Result}; +use futures_core::Stream; +use futures_util::StreamExt; +use std::path::Path; +use tokio::{fs::File, io::AsyncWriteExt}; + +/// Get tag name of latest GitHub release +pub async fn get_latest_version() -> Result { + Ok(octocrab::instance() + .repos("cloudtruth", "cloudtruth-cli") + .releases() + .get_latest() + .await? + .tag_name) +} + +/// Download asset from GitHub +async fn get_release_asset( + version: &str, + asset_name: &str, +) -> Result>> { + let github = octocrab::instance(); + let download_url = github + .repos("cloudtruth", "cloudtruth-cli") + .releases() + .get_by_tag(version) + .await? + .assets + .into_iter() + .find(|asset| asset.name == asset_name) + .map(|asset| asset.browser_download_url) + .ok_or_else(|| eyre!("Could not find release asset {asset_name} in release {version}"))?; + Ok(reqwest::get(download_url).await?.bytes_stream()) +} + +pub async fn download_release_asset( + version: &str, + asset_name: &str, + download_path: &Path, +) -> Result<()> { + let mut f = File::create(download_path).await?; + let mut stream = get_release_asset(version, asset_name).await?; + while let Some(chunk) = stream.next().await { + f.write_all(&chunk?).await?; + } + Ok(()) +} + +// Get package name for the current build target, version, and file extension +pub fn asset_name(version: &str, ext: &str) -> String { + const TARGET: &str = env!("TARGET"); + format!("cloudtruth-{version}-{TARGET}.{ext}") +} diff --git a/crates/cloudtruth-installer/src/install.rs b/crates/cloudtruth-installer/src/install.rs index 77dc67a1..e60bd9ba 100644 --- a/crates/cloudtruth-installer/src/install.rs +++ b/crates/cloudtruth-installer/src/install.rs @@ -1,65 +1,43 @@ -use crate::InstallError; -use std::io; -use std::io::Write; -#[cfg(not(target_os = "windows"))] -#[rustfmt::skip] -use { - crate::version::binary_version, - std::fs, - std::process::Command, - std::str, - tempfile::tempdir, -}; +use crate::{cli::InstallCommand, github, package_manager::choose_package_manager}; -#[cfg(target_os = "windows")] -pub fn install_latest_version(quiet: bool) -> Result<(), InstallError> { - let text = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/../../install.ps1")); - let result = powershell_script::run(text); - match result { - Ok(output) => { - if !quiet { - if let Some(stdout_str) = output.stdout() { - io::stdout().write_all(stdout_str.as_bytes())?; - } - } - Ok(()) - } - Err(err) => Err(InstallError::InstallFailed(err.to_string())), - } -} - -#[cfg(not(target_os = "windows"))] -pub fn install_latest_version(quiet: bool) -> Result<(), InstallError> { - let filename = format!("cloudtruth-cli-install-{}.sh", binary_version()); - let tempdir = tempdir()?; - let fullpath = tempdir.path().join(filename); - let fullname = fullpath.to_str().unwrap(); - let text = include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/../../install.sh")); +use color_eyre::Result; +use flate2::read::GzDecoder; +use std::{fs::File, path::Path}; +use tar::Archive; +use tempfile::tempdir; - // write the install script to a file to a temporary directory - fs::write(fullname, text)?; - - // attempt the chmod, and hope for success -- ignore failure - let _ = Command::new("chmod").arg("a+x").arg(fullname).output(); +pub fn unpack_tar_gz(src_file_path: &Path, dest_file_path: &Path) -> Result<()> { + let tar_gz = File::open(src_file_path)?; + let tar = GzDecoder::new(tar_gz); + let mut archive = Archive::new(tar); + archive.unpack(dest_file_path)?; + Ok(()) +} - // now, actually run the installation script - let result = Command::new(fullname).output(); - match result { - Ok(output) => match output.status.success() { - true => { - if !quiet { - io::stdout().write_all(&output.stdout)?; - } - Ok(()) - } - false => { - if !quiet { - io::stdout().write_all(&output.stdout)?; - } - let stderr = str::from_utf8(&output.stderr)?; - Err(InstallError::InstallFailed(stderr.to_string())) - } - }, - Err(err) => Err(InstallError::FailedToRunInstall(err.to_string())), - } +pub async fn install(cmd: InstallCommand) -> Result<()> { + let pkg_manager = choose_package_manager(); + let version = match cmd.version { + Some(version) => version, + None => github::get_latest_version().await?, + }; + let tmp_dir = tempdir()?; + let ext = if let Some(pkg_manager) = &pkg_manager { + pkg_manager.package_ext() + } else if cfg!(target_os = "windows") { + "zip" + } else { + "tar.gz" + }; + let asset_name = github::asset_name(&version, ext); + let download_path = tmp_dir.path().join(&asset_name); + github::download_release_asset(&version, &asset_name, &download_path).await?; + if let Some(pkg_manager) = pkg_manager { + pkg_manager.install(&download_path)? + } else if cfg!(target_os = "windows") { + todo!() + } else { + unpack_tar_gz(&download_path, tmp_dir.path())?; + println!("{:?}", tmp_dir.path()); + }; + Ok(()) } diff --git a/crates/cloudtruth-installer/src/install_errors.rs b/crates/cloudtruth-installer/src/install_errors.rs deleted file mode 100644 index 78903620..00000000 --- a/crates/cloudtruth-installer/src/install_errors.rs +++ /dev/null @@ -1,41 +0,0 @@ -use std::error; -use std::fmt; -use std::fmt::Formatter; -use std::io::Error; -use std::str::Utf8Error; - -#[derive(Clone, Debug)] -pub enum InstallError { - #[cfg_attr(target_os = "windows", allow(dead_code))] - FailedToRunInstall(String), - InstallFailed(String), - Filesystem(String), - Conversion(String), -} - -impl error::Error for InstallError {} - -impl fmt::Display for InstallError { - fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> { - match self { - InstallError::FailedToRunInstall(msg) => { - write!(f, "Failed to run install script: {msg}") - } - InstallError::InstallFailed(msg) => write!(f, "Installation failed: {msg}",), - InstallError::Filesystem(msg) => write!(f, "File error: {msg}"), - InstallError::Conversion(msg) => write!(f, "File error: {msg}"), - } - } -} - -impl From for InstallError { - fn from(err: Error) -> Self { - Self::Filesystem(err.to_string()) - } -} - -impl From for InstallError { - fn from(err: Utf8Error) -> Self { - Self::Conversion(err.to_string()) - } -} diff --git a/crates/cloudtruth-installer/src/lib.rs b/crates/cloudtruth-installer/src/lib.rs index 78745aa0..f81d5603 100644 --- a/crates/cloudtruth-installer/src/lib.rs +++ b/crates/cloudtruth-installer/src/lib.rs @@ -1,16 +1,22 @@ -pub mod cli; -pub mod install; -pub mod install_errors; -pub mod package_manager; -pub mod version; +mod cli; +mod github; +mod install; +mod package_manager; -pub use cli::Cli; -pub use install::install_latest_version; -pub use install_errors::InstallError; -pub use package_manager::find_package_managers; -pub use version::{binary_version, get_latest_version}; +use cli::Subcommand; +use color_eyre::Result; +use install::install; macro_rules! verbose { ($($expr:tt)*) => { if $crate::cli::verbose() { println!($($expr)*)}} } pub(crate) use verbose; + +pub async fn cloudtruth_installer_cli() -> Result<()> { + let cli = cli::parse(); + #[allow(irrefutable_let_patterns)] + if let Subcommand::Install(install_cmd) = cli.command { + install(install_cmd).await?; + } + Ok(()) +} diff --git a/crates/cloudtruth-installer/src/main.rs b/crates/cloudtruth-installer/src/main.rs index 1d4acc7a..68454d44 100644 --- a/crates/cloudtruth-installer/src/main.rs +++ b/crates/cloudtruth-installer/src/main.rs @@ -1,20 +1,8 @@ -use cloudtruth_installer::{cli, find_package_managers, package_manager::PackageManagerBin}; +use cloudtruth_installer::cloudtruth_installer_cli; -pub fn main() -> color_eyre::Result<()> { +#[tokio::main] +pub async fn main() -> color_eyre::Result<()> { color_eyre::install()?; - cli::parse(); - let pkg_manager = if !cli::interactive() { - // When running non-interactive, take first available package manager - find_package_managers().next().unwrap() - } else { - let mut pkg_managers: Vec = find_package_managers().collect(); - if pkg_managers.len() == 1 { - pkg_managers.swap_remove(0) - } else { - // Prompt user for package manager choice - todo!() - } - }; - println!("{}", pkg_manager); + cloudtruth_installer_cli().await?; Ok(()) } diff --git a/crates/cloudtruth-installer/src/package_manager.rs b/crates/cloudtruth-installer/src/package_manager.rs index 72c0eb32..c063be02 100644 --- a/crates/cloudtruth-installer/src/package_manager.rs +++ b/crates/cloudtruth-installer/src/package_manager.rs @@ -7,7 +7,7 @@ use std::{ }; use which::which; -use crate::verbose; +use crate::{cli, verbose}; #[derive(Debug, Clone, Copy, PartialEq, Eq, Ord, PartialOrd)] pub enum PackageManager { @@ -15,7 +15,7 @@ pub enum PackageManager { Apk, Yum, Zypper, - Brew, + // Brew, } impl PackageManager { @@ -25,11 +25,11 @@ impl PackageManager { PackageManager::Apk, PackageManager::Yum, PackageManager::Zypper, - PackageManager::Brew, + // PackageManager::Brew, ]; #[cfg(target_os = "macos")] pub const LIST: &[PackageManager] = &[ - PackageManager::Brew, + // PackageManager::Brew, PackageManager::Apt, PackageManager::Apk, PackageManager::Yum, @@ -49,7 +49,7 @@ impl PackageManager { PackageManager::Apk => "apk", PackageManager::Yum => "yum", PackageManager::Zypper => "zypper", - PackageManager::Brew => "brew", + // PackageManager::Brew => "brew", } } @@ -59,7 +59,7 @@ impl PackageManager { PackageManager::Apk => "apk", PackageManager::Yum => "rpm", PackageManager::Zypper => "rpm", - PackageManager::Brew => "bottle.tar.gz", + // PackageManager::Brew => "bottle.tar.gz", } } @@ -91,6 +91,7 @@ impl PackageManagerBin { }) } + #[allow(dead_code)] pub fn package_manager(&self) -> PackageManager { self.package_manager } @@ -113,7 +114,7 @@ impl PackageManagerBin { PackageManager::Apk => apk::install(self, package), PackageManager::Yum => yum::install(self, package), PackageManager::Zypper => zypper::install(self, package), - PackageManager::Brew => brew::install(self, package), + // PackageManager::Brew => brew::install(self, package), } } @@ -123,7 +124,7 @@ impl PackageManagerBin { PackageManager::Apk => apk::status(self), PackageManager::Yum => yum::status(self), PackageManager::Zypper => zypper::status(self), - PackageManager::Brew => brew::status(self), + // PackageManager::Brew => brew::status(self), } } } @@ -136,6 +137,21 @@ pub fn find_package_managers() -> impl Iterator { .filter(PackageManagerBin::check_status) } +pub fn choose_package_manager() -> Option { + if !cli::interactive() { + // When running non-interactive, take first available package manager + find_package_managers().next() + } else { + let mut pkg_managers: Vec = find_package_managers().collect(); + if pkg_managers.len() == 1 { + Some(pkg_managers.swap_remove(0)) + } else { + // TODO: Prompt user for package manager choice + pkg_managers.first().map(PackageManagerBin::clone) + } + } +} + mod apt { use color_eyre::Result; use std::{path::Path, process::Command}; @@ -196,20 +212,20 @@ mod zypper { } } -mod brew { - use color_eyre::Result; - use std::{path::Path, process::Command}; +// mod brew { +// use color_eyre::Result; +// use std::{path::Path, process::Command}; - use super::{check_status, PackageManagerBin}; +// use super::{check_status, PackageManagerBin}; - pub fn install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { - todo!() - } +// pub fn install(_pm: &PackageManagerBin, _package: &Path) -> Result<()> { +// todo!() +// } - pub fn status(pm: &PackageManagerBin) -> bool { - check_status(pm.cmd_name(), Command::new(pm.bin_path()).arg("commands")) - } -} +// pub fn status(pm: &PackageManagerBin) -> bool { +// check_status(pm.cmd_name(), Command::new(pm.bin_path()).arg("commands")) +// } +// } fn check_status(cmd_name: &str, cmd: &mut Command) -> bool { verbose!("Checking status of {cmd_name}"); diff --git a/crates/cloudtruth-installer/src/version.rs b/crates/cloudtruth-installer/src/version.rs deleted file mode 100644 index eccde16c..00000000 --- a/crates/cloudtruth-installer/src/version.rs +++ /dev/null @@ -1,35 +0,0 @@ -const LATEST_CHECK_URL: &str = - "https://api.github.com/repos/cloudtruth/cloudtruth-cli/releases/latest"; -const BINARY_VERSION: &str = env!("CARGO_PKG_VERSION"); - -fn get_latest_version_from_server() -> String { - let client = reqwest::Client::builder().build().unwrap(); - let request = client - .request(reqwest::Method::GET, LATEST_CHECK_URL) - .build() - .unwrap(); - let mut response = client.execute(request).unwrap(); - let status = response.status(); - let content = response.text().unwrap(); - - if !status.is_client_error() && !status.is_server_error() { - let value: serde_json::Value = serde_json::from_str(&content).unwrap(); - if let Some(dict) = value.as_object() { - if let Some(tag_value) = dict.get("tag_name") { - if let Some(tag_str) = tag_value.as_str() { - return tag_str.to_string(); - } - } - } - } - - "0.0.0".to_string() -} - -pub fn get_latest_version() -> String { - get_latest_version_from_server() -} - -pub fn binary_version() -> String { - BINARY_VERSION.to_string() -} diff --git a/src/lib.rs b/src/lib.rs index f3f65dd1..f0b4db5a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -50,13 +50,11 @@ use chrono::Utc; use clap::ArgMatches; use cli::binary_name; use cloudtruth_config::env::ConfigEnv; -use cloudtruth_config::{Action, Config, Updates, CT_PROFILE, DEFAULT_ENV_NAME}; -use cloudtruth_installer::{binary_version, get_latest_version, install_latest_version}; +use cloudtruth_config::{Config, Updates, CT_PROFILE, DEFAULT_ENV_NAME}; use color_eyre::eyre::Result; use std::io; use std::process; use utils::default; -use version_compare::Version; /// Process the 'completion' sub-command fn process_completion_command(subcmd_args: &ArgMatches) { @@ -102,35 +100,37 @@ fn check_updates(updates: &Updates) -> Result<()> { if let Some(next_update) = updates.next_update() { let today = Utc::now().date_naive(); if today >= next_update { - let latest_str = get_latest_version(); - let latest_ver = Version::from(&latest_str).unwrap(); - let bin_str = binary_version(); - let bin_ver = Version::from(&bin_str).unwrap(); - - if bin_ver < latest_ver { - // NOTE: do not update last_checked date after we detect we're behind... - match updates.action.unwrap_or_default() { - Action::Warn => { - warning_message(format!( - "Version {latest_ver} is available, running {bin_ver}" - )); - } - Action::Update => { - println!("Installing version {latest_ver}"); - install_latest_version(false)?; - } - Action::Error => { - error_message(format!( - "Version {latest_ver} is available, running {bin_ver}" - )); - process::exit(50); - } - } - } else { - let mut updated = *updates; - updated.last_checked = Some(today); - Config::set_updates(&updated)?; - } + todo!(); + // let latest_str = get_latest_version(); + // let latest_ver = Version::from(&latest_str).unwrap(); + // let bin_str = binary_version(); + // let bin_ver = Version::from(&bin_str).unwrap(); + + // if bin_ver < latest_ver { + // // NOTE: do not update last_checked date after we detect we're behind... + // match updates.action.unwrap_or_default() { + // Action::Warn => { + // warning_message(format!( + // "Version {latest_ver} is available, running {bin_ver}" + // )); + // } + // Action::Update => { + // println!("Installing version {latest_ver}"); + // todo!(); + // // install_latest_version(false)?; + // } + // Action::Error => { + // error_message(format!( + // "Version {latest_ver} is available, running {bin_ver}" + // )); + // process::exit(50); + // } + // } + // } else { + // let mut updated = *updates; + // updated.last_checked = Some(today); + // Config::set_updates(&updated)?; + // } } } Ok(()) diff --git a/src/versions.rs b/src/versions.rs index 761e8927..b95f2ad4 100644 --- a/src/versions.rs +++ b/src/versions.rs @@ -1,71 +1,74 @@ use crate::cli::GET_SUBCMD; -use crate::utils::{error_message, warn_missing_subcommand, warning_message}; +use crate::utils::warn_missing_subcommand; use clap::ArgMatches; -use cloudtruth_installer::{binary_version, get_latest_version, install_latest_version}; use color_eyre::eyre::Result; -use std::process; -use version_compare::Version; +// use std::process; +// use version_compare::Version; fn proc_version_check(subcmd_args: &ArgMatches) -> Result<()> { - let quiet = subcmd_args.is_present("quiet"); - let latest_str = get_latest_version(); - let latest_ver = Version::from(&latest_str).unwrap(); - let bin_str = binary_version(); - let bin_ver = Version::from(&bin_str).unwrap(); - - if bin_ver < latest_ver { - if !quiet { - error_message(format!( - "Version {latest_ver} is available, running {bin_ver}" - )); - } - process::exit(45) - } else if !quiet { - let ver = if bin_ver > latest_ver { - format!("{bin_ver} (future)") - } else { - latest_ver.to_string() - }; - println!("Running latest {ver}"); - } - - Ok(()) + let _quiet = subcmd_args.is_present("quiet"); + todo!(); + // let latest_str = get_latest_version(); + // let latest_ver = Version::from(&latest_str).unwrap(); + // let bin_str = binary_version(); + // let bin_ver = Version::from(&bin_str).unwrap(); + // if bin_ver < latest_ver { + // if !quiet { + // error_message(format!( + // "Version {latest_ver} is available, running {bin_ver}" + // )); + // } + // process::exit(45) + // } else if !quiet { + // let ver = if bin_ver > latest_ver { + // format!("{bin_ver} (future)") + // } else { + // latest_ver.to_string() + // }; + // println!("Running latest {ver}"); + // } + // Ok(()) } fn proc_version_install(subcmd_args: &ArgMatches) -> Result<()> { let force = subcmd_args.is_present("force"); - let quiet = subcmd_args.is_present("quiet"); - let bin_str = binary_version(); - let bin_ver = Version::from(&bin_str).unwrap(); - let mut install = force; + let _quiet = subcmd_args.is_present("quiet"); + // let bin_str = binary_version(); + // let bin_ver = Version::from(&bin_str).unwrap(); + let install = force; if !install { - let latest_str = get_latest_version(); - let latest_ver = Version::from(&latest_str).unwrap(); - install = latest_ver > bin_ver; + todo!() + // let latest_str = get_latest_version(); + // let latest_ver = Version::from(&latest_str).unwrap(); + // install = latest_ver > bin_ver; } if install { - install_latest_version(quiet)?; - println!("Installed the latest CLI.") + todo!() + // install_latest_version(quiet)?; + // println!("Installed the latest CLI.") } else { - warning_message(format!( - "Already running latest version ({bin_str}). You can use --force to re-install.", - )) + todo!() + // warning_message(format!( + // "Already running latest version ({bin_str}). You can use --force to re-install.", + // )) } - Ok(()) + // Ok(()) } fn proc_version_get(subcmd_args: &ArgMatches) -> Result<()> { let latest = subcmd_args.is_present("latest"); if latest { - let ver = get_latest_version(); - println!("Latest CLI version {ver}"); + todo!(); + // let ver = get_latest_version(); + // println!("Latest CLI version {ver}"); } else { - let ver = binary_version(); - println!("Current CLI version {ver}") + todo!() + // let ver = binary_version(); + // println!("Current CLI version {ver}") } - Ok(()) + // Ok(()) } pub fn process_version_command(subcmd_args: &ArgMatches) -> Result<()> { From 03721255ecd217cc035d4e644535dbc794077a5c Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Thu, 15 Jun 2023 14:24:22 -0400 Subject: [PATCH 16/17] update Cargo.lock after rebase --- Cargo.lock | 645 +++++++++++++++++++++++++---------------------------- 1 file changed, 299 insertions(+), 346 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1de33c9c..3ed07233 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,7 +34,7 @@ checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if 1.0.0", "cipher", - "cpufeatures 0.2.7", + "cpufeatures 0.2.5", "opaque-debug", ] @@ -65,9 +65,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.1" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] @@ -96,7 +96,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" dependencies = [ - "anstyle", + "anstyle 1.0.0", "anstyle-parse", "anstyle-query", "anstyle-wincon", @@ -105,6 +105,12 @@ dependencies = [ "utf8parse", ] +[[package]] +name = "anstyle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" + [[package]] name = "anstyle" version = "1.0.0" @@ -135,15 +141,15 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" dependencies = [ - "anstyle", + "anstyle 1.0.0", "windows-sys 0.48.0", ] [[package]] name = "anyhow" -version = "1.0.71" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" +checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" [[package]] name = "arc-swap" @@ -170,7 +176,7 @@ checksum = "87bf87e6e8b47264efa9bde63d6225c6276a52e05e91bf37eaa8afd0032d6b71" dependencies = [ "askama_shared", "proc-macro2", - "syn 1.0.109", + "syn 1.0.107", ] [[package]] @@ -195,17 +201,17 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 1.0.109", + "syn 1.0.107", "toml", ] [[package]] name = "assert_cmd" -version = "2.0.11" +version = "2.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151" +checksum = "ec0b2340f55d9661d76793b2bfc2eb0e62689bd79d067a95707ea762afd5e9dd" dependencies = [ - "anstyle", + "anstyle 0.3.5", "bstr", "doc-comment", "predicates", @@ -228,7 +234,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.12", ] [[package]] @@ -267,20 +273,11 @@ dependencies = [ "cc", "cfg-if 1.0.0", "libc", - "miniz_oxide 0.6.2", + "miniz_oxide", "object", "rustc-demangle", ] -[[package]] -name = "backtrace-ext" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50" -dependencies = [ - "backtrace", -] - [[package]] name = "base64" version = "0.10.1" @@ -331,9 +328,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.1" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" [[package]] name = "byteorder" @@ -483,7 +480,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "914c8c79fb560f238ef6429439a30023c862f7a28e688c58f7203f12b29970bd" dependencies = [ "anstream", - "anstyle", + "anstyle 1.0.0", "bitflags", "clap_lex", "strsim 0.10.0", @@ -498,7 +495,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.12", ] [[package]] @@ -568,7 +565,7 @@ dependencies = [ "chrono", "cloudtruth-restapi", "color-eyre", - "directories 5.0.1", + "directories 5.0.0", "indoc 2.0.1", "once_cell", "serde", @@ -591,11 +588,11 @@ dependencies = [ "is-terminal", "octocrab", "once_cell", - "reqwest 0.11.17", + "reqwest 0.11.18", "serde_json", "tar", "tempfile", - "tokio 1.28.0", + "tokio 1.28.2", "which", ] @@ -663,6 +660,23 @@ dependencies = [ "memchr", ] +[[package]] +name = "concolor" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7b3e3c41e9488eeda196b6806dbf487742107d61b2e16485bcca6c25ed5755b" +dependencies = [ + "bitflags", + "concolor-query", + "is-terminal", +] + +[[package]] +name = "concolor-query" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82a90734b3d5dcf656e7624cca6bce9c3a90ee11f900e80141a7427ccfb3d317" + [[package]] name = "const_format" version = "0.2.30" @@ -738,9 +752,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpufeatures" @@ -753,9 +767,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.7" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -872,12 +886,12 @@ dependencies = [ [[package]] name = "csv" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad" +checksum = "af91f40b7355f82b0a891f50e70399475945bb0b0da4f1700ce60761c9d3e359" dependencies = [ "csv-core", - "itoa 1.0.6", + "itoa 1.0.5", "ryu", "serde", ] @@ -900,11 +914,17 @@ dependencies = [ "cipher", ] +[[package]] +name = "cty" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" + [[package]] name = "cxx" -version = "1.0.94" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" +checksum = "86d3488e7665a7a483b57e25bdd90d0aeb2bc7608c8d0346acf2ad3f1caf1d62" dependencies = [ "cc", "cxxbridge-flags", @@ -914,9 +934,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.94" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" +checksum = "48fcaf066a053a41a81dfb14d57d99738b767febb8b735c3016e469fac5da690" dependencies = [ "cc", "codespan-reporting", @@ -924,24 +944,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.15", + "syn 1.0.107", ] [[package]] name = "cxxbridge-flags" -version = "1.0.94" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" +checksum = "a2ef98b8b717a829ca5603af80e1f9e2e48013ab227b68ef37872ef84ee479bf" [[package]] name = "cxxbridge-macro" -version = "1.0.94" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +checksum = "086c685979a698443656e5cf7856c95c642295a38599f12fb1ff76fb28d19892" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 1.0.107", ] [[package]] @@ -967,7 +987,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn 1.0.109", + "syn 1.0.107", ] [[package]] @@ -996,11 +1016,11 @@ dependencies = [ [[package]] name = "directories" -version = "5.0.1" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +checksum = "74be3be809c18e089de43bdc504652bb2bc473fca8756131f8689db8cf079ba9" dependencies = [ - "dirs-sys 0.4.1", + "dirs-sys 0.4.0", ] [[package]] @@ -1035,14 +1055,13 @@ dependencies = [ [[package]] name = "dirs-sys" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +checksum = "04414300db88f70d74c5ff54e50f9e1d1737d9a5b90f53fcf2e95ca2a9ab554b" dependencies = [ "libc", - "option-ext", "redox_users", - "windows-sys 0.48.0", + "windows-sys 0.45.0", ] [[package]] @@ -1199,7 +1218,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.107", "synstructure", ] @@ -1226,12 +1245,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" dependencies = [ "crc32fast", - "miniz_oxide 0.7.1", + "miniz_oxide", ] [[package]] @@ -1318,9 +1337,9 @@ checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678" [[package]] name = "futures" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +checksum = "531ac96c6ff5fd7c62263c5e3c67a603af4fcaee2e1a0ae5565ba3a11e69e549" dependencies = [ "futures-channel", "futures-core", @@ -1333,9 +1352,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" dependencies = [ "futures-core", "futures-sink", @@ -1343,9 +1362,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" [[package]] name = "futures-cpupool" @@ -1359,9 +1378,9 @@ dependencies = [ [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "1997dd9df74cdac935c76252744c1ed5794fac083242ea4fe77ef3ed60ba0f83" dependencies = [ "futures-core", "futures-task", @@ -1370,38 +1389,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "89d422fa3cbe3b40dca574ab087abb5bc98258ea57eea3fd6f1fa7162c778b91" [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "3eb14ed937631bd8b8b8977f2c198443447a8355b6e3ca599f38c975e5a963b6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 1.0.107", ] [[package]] name = "futures-sink" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" +checksum = "ec93083a4aecafb2a80a885c9de1f0ccae9dbd32c2bb54b0c3a65690e0b8d2f2" [[package]] name = "futures-task" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" dependencies = [ "futures-channel", "futures-core", @@ -1417,9 +1436,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "typenum", "version_check", @@ -1436,9 +1455,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.9" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ "cfg-if 1.0.0", "libc", @@ -1487,9 +1506,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" dependencies = [ "bytes 1.4.0", "fnv", @@ -1499,7 +1518,7 @@ dependencies = [ "http 0.2.9", "indexmap", "slab", - "tokio 1.28.0", + "tokio 1.28.2", "tokio-util", "tracing", ] @@ -1588,7 +1607,7 @@ checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes 1.4.0", "fnv", - "itoa 1.0.6", + "itoa 1.0.5", ] [[package]] @@ -1694,33 +1713,20 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.3.18", + "h2 0.3.19", "http 0.2.9", "http-body 0.4.5", "httparse", "httpdate", - "itoa 1.0.6", + "itoa 1.0.5", "pin-project-lite", "socket2", - "tokio 1.28.0", + "tokio 1.28.2", "tower-service", "tracing", "want 0.3.0", ] -[[package]] -name = "hyper-rustls" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" -dependencies = [ - "http 0.2.9", - "hyper 0.14.26", - "rustls 0.20.8", - "tokio 1.28.0", - "tokio-rustls 0.23.4", -] - [[package]] name = "hyper-rustls" version = "0.24.0" @@ -1730,10 +1736,10 @@ dependencies = [ "http 0.2.9", "hyper 0.14.26", "log", - "rustls 0.21.1", + "rustls", "rustls-native-certs", - "tokio 1.28.0", - "tokio-rustls 0.24.0", + "tokio 1.28.2", + "tokio-rustls", ] [[package]] @@ -1744,7 +1750,7 @@ checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" dependencies = [ "hyper 0.14.26", "pin-project-lite", - "tokio 1.28.0", + "tokio 1.28.2", "tokio-io-timeout", ] @@ -1763,16 +1769,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.56" +version = "0.1.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows", + "winapi 0.3.9", ] [[package]] @@ -1825,9 +1831,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "1.9.3" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg 1.1.0", "hashbrown", @@ -1873,7 +1879,7 @@ dependencies = [ "shlex", "tempfile", "thiserror", - "uuid 1.3.2", + "uuid 1.3.0", ] [[package]] @@ -1882,18 +1888,17 @@ version = "1.2.3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.12", ] [[package]] name = "io-lifetimes" -version = "1.0.10" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" +checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3" dependencies = [ - "hermit-abi 0.3.1", "libc", - "windows-sys 0.48.0", + "windows-sys 0.45.0", ] [[package]] @@ -1946,24 +1951,22 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" [[package]] name = "jni" -version = "0.21.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" dependencies = [ "cesu8", - "cfg-if 1.0.0", "combine", "jni-sys", "log", "thiserror", "walkdir", - "windows-sys 0.45.0", ] [[package]] @@ -2013,9 +2016,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.142" +version = "0.2.139" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" [[package]] name = "link-cplusplus" @@ -2034,9 +2037,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.3.7" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" +checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" [[package]] name = "lock_api" @@ -2113,12 +2116,11 @@ dependencies = [ [[package]] name = "miette" -version = "5.8.0" +version = "5.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92a992891d5579caa9efd8e601f82e30a1caa79a27a5db075dde30ecb9eab357" +checksum = "07749fb52853e739208049fb513287c6f448de9103dfa78b05ae01f2fc5809bb" dependencies = [ "backtrace", - "backtrace-ext", "is-terminal", "miette-derive", "once_cell", @@ -2134,20 +2136,20 @@ dependencies = [ [[package]] name = "miette-derive" -version = "5.8.0" +version = "5.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c65c625186a9bcce6699394bee511e1b1aec689aa7e3be1bf4e996e75834153" +checksum = "2a07ad93a80d1b92bb44cb42d7c49b49c9aab1778befefad49cceb5e4c5bf460" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 1.0.107", ] [[package]] name = "mime" -version = "0.3.17" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" [[package]] name = "mime_guess" @@ -2174,15 +2176,6 @@ dependencies = [ "adler", ] -[[package]] -name = "miniz_oxide" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", -] - [[package]] name = "mio" version = "0.6.23" @@ -2353,12 +2346,12 @@ dependencies = [ "cfg-if 1.0.0", "chrono", "either", - "futures 0.3.28", + "futures 0.3.27", "futures-util", "http 0.2.9", "http-body 0.4.5", "hyper 0.14.26", - "hyper-rustls 0.24.0", + "hyper-rustls", "hyper-timeout", "jsonwebtoken", "once_cell", @@ -2370,7 +2363,7 @@ dependencies = [ "serde_path_to_error", "serde_urlencoded 0.7.1", "snafu", - "tokio 1.28.0", + "tokio 1.28.2", "tower", "tower-http", "tracing", @@ -2391,9 +2384,9 @@ checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] name = "openssl" -version = "0.10.52" +version = "0.10.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" +checksum = "518915b97df115dd36109bfa429a48b8f737bd05508cf9588977b599648926d2" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -2406,13 +2399,13 @@ dependencies = [ [[package]] name = "openssl-macros" -version = "0.1.1" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 1.0.107", ] [[package]] @@ -2423,19 +2416,20 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "111.25.3+1.1.1t" +version = "111.25.0+1.1.1t" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "924757a6a226bf60da5f7dd0311a34d2b52283dd82ddeb103208ddc66362f80c" +checksum = "3173cd3626c43e3854b1b727422a276e568d9ec5fe8cec197822cf52cfb743d6" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.87" +version = "0.9.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" +checksum = "666416d899cf077260dac8698d60a60b435a46d57e82acb1be3d0dad87284e5b" dependencies = [ + "autocfg 1.1.0", "cc", "libc", "openssl-src", @@ -2443,20 +2437,14 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - [[package]] name = "os_pipe" -version = "1.1.4" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177" +checksum = "a53dbb20faf34b16087a931834cba2d7a73cc74af2b7ef345a4c8324e2409a12" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.45.0", ] [[package]] @@ -2577,7 +2565,7 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.107", ] [[package]] @@ -2594,9 +2582,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "poly1305" @@ -2604,7 +2592,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ - "cpufeatures 0.2.7", + "cpufeatures 0.2.5", "opaque-debug", "universal-hash", ] @@ -2616,7 +2604,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" dependencies = [ "cfg-if 1.0.0", - "cpufeatures 0.2.7", + "cpufeatures 0.2.5", "opaque-debug", "universal-hash", ] @@ -2635,11 +2623,11 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.0.3" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" +checksum = "c575290b64d24745b6c57a12a31465f0a66f3a4799686a6921526a33b0797965" dependencies = [ - "anstyle", + "anstyle 0.3.5", "difflib", "float-cmp", "itertools", @@ -2656,9 +2644,9 @@ checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] name = "predicates-tree" -version = "1.0.9" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d" dependencies = [ "predicates-core", "termtree", @@ -2680,9 +2668,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "e472a104799c74b514a57226160104aa483546de37e839ec50e3c2e41dd87534" dependencies = [ "unicode-ident", ] @@ -2844,9 +2832,12 @@ dependencies = [ [[package]] name = "raw-window-handle" -version = "0.5.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" +checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" +dependencies = [ + "cty", +] [[package]] name = "rayon" @@ -2916,9 +2907,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" dependencies = [ "aho-corasick", "memchr", @@ -2933,9 +2924,9 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" [[package]] name = "regex-syntax" -version = "0.7.1" +version = "0.6.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" [[package]] name = "reqwest" @@ -2973,20 +2964,20 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.17" +version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" dependencies = [ "base64 0.21.0", "bytes 1.4.0", "encoding_rs", "futures-core", "futures-util", - "h2 0.3.18", + "h2 0.3.19", "http 0.2.9", "http-body 0.4.5", "hyper 0.14.26", - "hyper-rustls 0.23.2", + "hyper-rustls", "ipnet", "js-sys", "log", @@ -2994,14 +2985,14 @@ dependencies = [ "once_cell", "percent-encoding 2.2.0", "pin-project-lite", - "rustls 0.20.8", + "rustls", "rustls-native-certs", "rustls-pemfile", "serde", "serde_json", "serde_urlencoded 0.7.1", - "tokio 1.28.0", - "tokio-rustls 0.23.4", + "tokio 1.28.2", + "tokio-rustls", "tokio-util", "tower-service", "url 2.3.1", @@ -3039,9 +3030,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" [[package]] name = "rustc_version" @@ -3063,28 +3054,16 @@ dependencies = [ [[package]] name = "rustix" -version = "0.37.19" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +checksum = "62b24138615de35e32031d041a09032ef3487a616d901ca4db224e7d557efae2" dependencies = [ "bitflags", "errno", "io-lifetimes", "libc", "linux-raw-sys", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustls" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" -dependencies = [ - "log", - "ring", - "sct", - "webpki", + "windows-sys 0.45.0", ] [[package]] @@ -3132,9 +3111,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.12" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" [[package]] name = "rusty-hook" @@ -3150,9 +3129,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" [[package]] name = "same-file" @@ -3180,9 +3159,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.5" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" +checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" [[package]] name = "sct" @@ -3249,22 +3228,22 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.162" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71b2f6e1ab5c2b98c05f0f35b236b22e8df7ead6ffbf51d7808da7f8817e7ab6" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.162" +version = "1.0.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 1.0.107", ] [[package]] @@ -3273,7 +3252,7 @@ version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" dependencies = [ - "itoa 1.0.6", + "itoa 1.0.5", "ryu", "serde", ] @@ -3324,7 +3303,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ "form_urlencoded", - "itoa 1.0.6", + "itoa 1.0.5", "ryu", "serde", ] @@ -3343,12 +3322,12 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.21" +version = "0.9.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" +checksum = "f82e6c8c047aa50a7328632d067bcae6ef38772a79e28daf32f735e0e4f3dd10" dependencies = [ "indexmap", - "itoa 1.0.6", + "itoa 1.0.5", "ryu", "serde", "unsafe-libyaml", @@ -3372,7 +3351,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "538c30747ae860d6fb88330addbbd3e0ddbe46d662d032855596d8a8ca260611" dependencies = [ "dashmap", - "futures 0.3.28", + "futures 0.3.27", "lazy_static", "log", "parking_lot 0.12.1", @@ -3387,7 +3366,7 @@ checksum = "b2acd6defeddb41eb60bb468f8825d0cfd0c2a76bc03bfd235b6a1dc4f6a1ad5" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.107", ] [[package]] @@ -3398,7 +3377,7 @@ checksum = "079a83df15f85d89a68d64ae1238f142f172b1fa915d0d76b26a7cba1b659a69" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.107", ] [[package]] @@ -3409,7 +3388,7 @@ checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer", "cfg-if 1.0.0", - "cpufeatures 0.2.7", + "cpufeatures 0.2.5", "digest", "opaque-debug", ] @@ -3468,9 +3447,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.8" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" dependencies = [ "autocfg 1.1.0", ] @@ -3516,17 +3495,16 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.107", ] [[package]] name = "snapbox" -version = "0.4.11" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6bccd62078347f89a914e3004d94582e13824d4e3d8a816317862884c423835" +checksum = "4389a6395e9925166f19d67b64874e526ec28a4b8455f3321b686c912299c3ea" dependencies = [ - "anstream", - "anstyle", + "concolor", "content_inspector", "dunce", "filetime", @@ -3539,6 +3517,7 @@ dependencies = [ "wait-timeout", "walkdir", "windows-sys 0.45.0", + "yansi", ] [[package]] @@ -3546,9 +3525,6 @@ name = "snapbox-macros" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaaf09df9f0eeae82be96290918520214530e738a7fe5a351b0f24cf77c0ca31" -dependencies = [ - "anstream", -] [[package]] name = "socket2" @@ -3616,9 +3592,9 @@ dependencies = [ [[package]] name = "supports-hyperlinks" -version = "2.1.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84231692eb0d4d41e4cdd0cabfdd2e6cd9e255e65f80c9aa7c98dd502b4233d" +checksum = "4b4806e0b03b9906e76b018a5d821ebf198c8e9dc0829ed3328eeeb5094aed60" dependencies = [ "is-terminal", ] @@ -3634,9 +3610,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.109" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" dependencies = [ "proc-macro2", "quote", @@ -3645,9 +3621,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.15" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +checksum = "79d9531f94112cfc3e4c8f5f02cb2b58f72c97b7efd85f70203cc6d8efda5927" dependencies = [ "proc-macro2", "quote", @@ -3662,7 +3638,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.107", "unicode-xid", ] @@ -3722,9 +3698,9 @@ dependencies = [ [[package]] name = "termtree" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" +checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" [[package]] name = "textwrap" @@ -3763,7 +3739,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.12", ] [[package]] @@ -3793,7 +3769,7 @@ version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" dependencies = [ - "itoa 1.0.6", + "itoa 1.0.5", "serde", "time-core", "time-macros", @@ -3850,9 +3826,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.28.0" +version = "1.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" +checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" dependencies = [ "autocfg 1.1.0", "bytes 1.4.0", @@ -3916,7 +3892,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ "pin-project-lite", - "tokio 1.28.0", + "tokio 1.28.2", ] [[package]] @@ -3927,7 +3903,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.12", ] [[package]] @@ -3949,36 +3925,25 @@ dependencies = [ "tokio-sync", ] -[[package]] -name = "tokio-rustls" -version = "0.23.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" -dependencies = [ - "rustls 0.20.8", - "tokio 1.28.0", - "webpki", -] - [[package]] name = "tokio-rustls" version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0d409377ff5b1e3ca6437aa86c1eb7d40c134bfec254e44c830defa92669db5" dependencies = [ - "rustls 0.21.1", - "tokio 1.28.0", + "rustls", + "tokio 1.28.2", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "8fb52b74f05dbf495a8fba459fdc331812b96aa086d9eb78101fa0d4569c3313" dependencies = [ "futures-core", "pin-project-lite", - "tokio 1.28.0", + "tokio 1.28.2", ] [[package]] @@ -4044,7 +4009,7 @@ dependencies = [ "futures-core", "futures-sink", "pin-project-lite", - "tokio 1.28.0", + "tokio 1.28.2", "tracing", ] @@ -4089,7 +4054,7 @@ dependencies = [ "futures-util", "pin-project", "pin-project-lite", - "tokio 1.28.0", + "tokio 1.28.2", "tokio-util", "tower-layer", "tower-service", @@ -4142,13 +4107,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.24" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 1.0.107", ] [[package]] @@ -4173,9 +4138,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" dependencies = [ "sharded-slab", "thread_local", @@ -4199,9 +4164,9 @@ dependencies = [ [[package]] name = "trycmd" -version = "0.14.16" +version = "0.14.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2925e71868a12b173c1eb166018c2d2f9dfaedfcaec747bdb6ea2246785d258e" +checksum = "2311fe1144338119b5b9b31499286c7f60eaf00ce0dcacf5a445a12eb47aed29" dependencies = [ "glob", "humantime", @@ -4230,15 +4195,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" [[package]] name = "unicode-linebreak" @@ -4283,9 +4248,9 @@ dependencies = [ [[package]] name = "unsafe-libyaml" -version = "0.2.8" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1865806a559042e51ab5414598446a5871b561d21b6764f2eabb0dd481d880a6" +checksum = "ad2024452afd3874bf539695e04af6732ba06517424dbf958fdb16a01f3bef6c" [[package]] name = "untrusted" @@ -4339,9 +4304,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.3.2" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" +checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" dependencies = [ "getrandom", "rand 0.8.5", @@ -4388,11 +4353,12 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.3.3" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" dependencies = [ "same-file", + "winapi 0.3.9", "winapi-util", ] @@ -4450,7 +4416,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.107", "wasm-bindgen-shared", ] @@ -4484,7 +4450,7 @@ checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 1.0.107", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4520,9 +4486,9 @@ dependencies = [ [[package]] name = "webbrowser" -version = "0.8.9" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b692165700260bbd40fbc5ff23766c03e339fbaca907aeea5cb77bf0a553ca83" +checksum = "97d1fa1e5c829b2bf9eb1e28fb950248b797cd6a04866fbdfa8bc31e5eef4c78" dependencies = [ "core-foundation", "dirs", @@ -4535,16 +4501,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "which" version = "4.4.0" @@ -4599,28 +4555,19 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-targets 0.48.0", -] - [[package]] name = "windows-sys" version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows_aarch64_gnullvm 0.42.1", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm 0.42.1", + "windows_x86_64_msvc 0.42.1", ] [[package]] @@ -4629,7 +4576,7 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets 0.42.2", + "windows-targets 0.42.1", ] [[package]] @@ -4643,17 +4590,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows_aarch64_gnullvm 0.42.1", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm 0.42.1", + "windows_x86_64_msvc 0.42.1", ] [[package]] @@ -4673,9 +4620,9 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" [[package]] name = "windows_aarch64_gnullvm" @@ -4685,9 +4632,9 @@ checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" [[package]] name = "windows_aarch64_msvc" @@ -4697,9 +4644,9 @@ checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" [[package]] name = "windows_i686_gnu" @@ -4709,9 +4656,9 @@ checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" [[package]] name = "windows_i686_msvc" @@ -4721,9 +4668,9 @@ checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" [[package]] name = "windows_x86_64_gnu" @@ -4733,9 +4680,9 @@ checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" [[package]] name = "windows_x86_64_gnullvm" @@ -4745,9 +4692,9 @@ checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" [[package]] name = "windows_x86_64_msvc" @@ -4757,9 +4704,9 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winnow" -version = "0.4.6" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" +checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28" dependencies = [ "memchr", ] @@ -4809,14 +4756,14 @@ dependencies = [ "askama", "clap 4.2.7", "duct", - "futures 0.3.28", + "futures 0.3.27", "itertools", "once_cell", "serde", "serde_json", "serde_plain", - "serde_yaml 0.9.21", - "tokio 1.28.0", + "serde_yaml 0.9.19", + "tokio 1.28.2", "tokio-stream", ] @@ -4829,6 +4776,12 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + [[package]] name = "zeroize" version = "1.6.0" From 40431320d9683e352b468c510b67d6edadfd5d9d Mon Sep 17 00:00:00 2001 From: Adam Curtis Date: Thu, 15 Jun 2023 19:02:28 -0400 Subject: [PATCH 17/17] use octocrab 0.22 which has patch for bugfix in release API --- Cargo.lock | 5 +++-- crates/cloudtruth-installer/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3ed07233..96c3c45f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2336,8 +2336,9 @@ dependencies = [ [[package]] name = "octocrab" -version = "0.21.0" -source = "git+https://github.com/kallisti-dev/octocrab.git?branch=asset-uploader-struct#cf867f9ef6c6a6b32e7ffec791cb9eb8c1382233" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69d786e42ca4d4d8b297d17fc22ec85e50aa55799a433a9a9e30308381c78830" dependencies = [ "arc-swap", "async-trait", diff --git a/crates/cloudtruth-installer/Cargo.toml b/crates/cloudtruth-installer/Cargo.toml index f12bd3c4..728d0ba1 100644 --- a/crates/cloudtruth-installer/Cargo.toml +++ b/crates/cloudtruth-installer/Cargo.toml @@ -15,7 +15,7 @@ flate2 = "1.0" futures-core = "0.3" futures-util = "0.3" is-terminal = "0.4" -octocrab = { git = "https://github.com/kallisti-dev/octocrab.git", branch = "asset-uploader-struct" } +octocrab = { version = ">=0.22.0" } once_cell = "1.17" reqwest = { version = "~0.11", default-features = false, features = ["stream", "rustls-tls-native-roots"] } serde_json = "1.0"