forked from extern/nushell
update some dependencies (#6009)
* update some dependencies * there may be some bugs here but it seems to compile and run * clippy
This commit is contained in:
parent
9e3c64aa84
commit
9b6b817276
237
Cargo.lock
generated
237
Cargo.lock
generated
@ -269,6 +269,25 @@ version = "0.13.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
|
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bindgen"
|
||||||
|
version = "0.59.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2bd2a9a458e8f4304c52c43ebb0cfbd520289f8379a52e329a38afda99bf8eb8"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"cexpr",
|
||||||
|
"clang-sys",
|
||||||
|
"lazy_static",
|
||||||
|
"lazycell",
|
||||||
|
"peeking_take_while",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"regex",
|
||||||
|
"rustc-hash",
|
||||||
|
"shlex",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bit_field"
|
name = "bit_field"
|
||||||
version = "0.10.1"
|
version = "0.10.1"
|
||||||
@ -337,9 +356,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "brownstone"
|
name = "brownstone"
|
||||||
version = "1.1.0"
|
version = "3.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "030ea61398f34f1395ccbeb046fb68c87b631d1f34567fed0f0f11fa35d18d8d"
|
checksum = "c5839ee4f953e811bfdcf223f509cb2c6a3e1447959b0bff459405575bc17f22"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arrayvec 0.7.2",
|
"arrayvec 0.7.2",
|
||||||
]
|
]
|
||||||
@ -445,6 +464,15 @@ dependencies = [
|
|||||||
"jobserver",
|
"jobserver",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cexpr"
|
||||||
|
version = "0.6.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
|
||||||
|
dependencies = [
|
||||||
|
"nom 7.1.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cfg-if"
|
name = "cfg-if"
|
||||||
version = "0.1.10"
|
version = "0.1.10"
|
||||||
@ -512,6 +540,17 @@ dependencies = [
|
|||||||
"phf_codegen 0.10.0",
|
"phf_codegen 0.10.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "clang-sys"
|
||||||
|
version = "1.3.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b"
|
||||||
|
dependencies = [
|
||||||
|
"glob",
|
||||||
|
"libc",
|
||||||
|
"libloading",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "codepage"
|
name = "codepage"
|
||||||
version = "0.1.1"
|
version = "0.1.1"
|
||||||
@ -543,7 +582,7 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"regex",
|
"regex",
|
||||||
"terminal_size",
|
"terminal_size 0.1.17",
|
||||||
"unicode-width",
|
"unicode-width",
|
||||||
"winapi 0.3.9",
|
"winapi 0.3.9",
|
||||||
]
|
]
|
||||||
@ -1090,7 +1129,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "46e245f4c8ec30c6415c56cb132c07e69e74f1942f6b4a4061da748b49f486ca"
|
checksum = "46e245f4c8ec30c6415c56cb132c07e69e74f1942f6b4a4061da748b49f486ca"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"rustix",
|
"rustix 0.34.8",
|
||||||
"windows-sys 0.30.0",
|
"windows-sys 0.30.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -1284,6 +1323,12 @@ version = "0.3.21"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
|
checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "futures-timer"
|
||||||
|
version = "3.0.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "futures-util"
|
name = "futures-util"
|
||||||
version = "0.3.21"
|
version = "0.3.21"
|
||||||
@ -1720,9 +1765,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "inventory"
|
name = "inventory"
|
||||||
version = "0.2.3"
|
version = "0.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "84344c6e0b90a9e2b6f3f9abe5cc74402684e348df7b32adca28747e0cef091a"
|
checksum = "e0257e268c91daba296499206db5dd5a058875936bec3d8429b5f3e20ec9dc9a"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ctor",
|
"ctor",
|
||||||
"ghost",
|
"ghost",
|
||||||
@ -1734,6 +1779,12 @@ version = "0.6.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9448015e586b611e5d322f6703812bbca2f1e709d5773ecd38ddb4e3bb649504"
|
checksum = "9448015e586b611e5d322f6703812bbca2f1e709d5773ecd38ddb4e3bb649504"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "io-lifetimes"
|
||||||
|
version = "0.7.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "24c3f4eff5495aee4c0399d7b6a0dc2b6e81be84242ffbfcf253ebacccc1d0cb"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "iovec"
|
name = "iovec"
|
||||||
version = "0.1.4"
|
version = "0.1.4"
|
||||||
@ -1946,6 +1997,16 @@ dependencies = [
|
|||||||
"pkg-config",
|
"pkg-config",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libloading"
|
||||||
|
version = "0.7.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if 1.0.0",
|
||||||
|
"winapi 0.3.9",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libm"
|
name = "libm"
|
||||||
version = "0.2.2"
|
version = "0.2.2"
|
||||||
@ -1954,10 +2015,11 @@ checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libproc"
|
name = "libproc"
|
||||||
version = "0.10.0"
|
version = "0.12.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "6466fc1f834276563fbbd4be1c24236ef92bb9efdbd4691e07f1cf85a0b407f0"
|
checksum = "0b799ad155d75ce914c467ee5627b62247c20d4aedbd446f821484cebf3cded7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"bindgen",
|
||||||
"errno",
|
"errno",
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
@ -2036,9 +2098,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lscolors"
|
name = "lscolors"
|
||||||
version = "0.9.0"
|
version = "0.10.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4e9323b3525d4efad2dead1837a105e313253bfdbad1d470994038eededa4d62"
|
checksum = "88e4434edeec6cd16a7e8e13569af4568a66fcd6d79abd8696db22dd95f920e6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ansi_term",
|
"ansi_term",
|
||||||
"crossterm",
|
"crossterm",
|
||||||
@ -2144,13 +2206,14 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "miette"
|
name = "miette"
|
||||||
version = "3.3.0"
|
version = "4.7.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cd2adcfcced5d625bf90a958a82ae5b93231f57f3df1383fee28c9b5096d35ed"
|
checksum = "1c90329e44f9208b55f45711f9558cec15d7ef8295cc65ecd6d4188ae8edc58c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"miette-derive 3.3.0",
|
"miette-derive 4.7.1",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
|
"unicode-width",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2167,7 +2230,7 @@ dependencies = [
|
|||||||
"supports-color",
|
"supports-color",
|
||||||
"supports-hyperlinks",
|
"supports-hyperlinks",
|
||||||
"supports-unicode",
|
"supports-unicode",
|
||||||
"terminal_size",
|
"terminal_size 0.1.17",
|
||||||
"textwrap",
|
"textwrap",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"unicode-width",
|
"unicode-width",
|
||||||
@ -2175,9 +2238,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "miette-derive"
|
name = "miette-derive"
|
||||||
version = "3.3.0"
|
version = "4.7.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5c01a8b61312d367ce87956bb686731f87e4c6dd5dbc550e8f06e3c24fb1f67f"
|
checksum = "6b5bc45b761bcf1b5e6e6c4128cd93b84c218721a8d9b894aa0aff4ed180174c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -2376,9 +2439,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nom-supreme"
|
name = "nom-supreme"
|
||||||
version = "0.6.0"
|
version = "0.8.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "aadc66631948f6b65da03be4c4cd8bd104d481697ecbb9bbd65719b1ec60bc9f"
|
checksum = "2bd3ae6c901f1959588759ff51c95d24b491ecb9ff91aa9c2ef4acc5b1dcab27"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"brownstone",
|
"brownstone",
|
||||||
"indent_write",
|
"indent_write",
|
||||||
@ -2448,7 +2511,7 @@ dependencies = [
|
|||||||
"pretty_env_logger",
|
"pretty_env_logger",
|
||||||
"rayon",
|
"rayon",
|
||||||
"reedline",
|
"reedline",
|
||||||
"rstest",
|
"rstest 0.12.0",
|
||||||
"serial_test",
|
"serial_test",
|
||||||
"signal-hook",
|
"signal-hook",
|
||||||
"tempfile",
|
"tempfile",
|
||||||
@ -2485,7 +2548,7 @@ dependencies = [
|
|||||||
"nu-test-support",
|
"nu-test-support",
|
||||||
"nu-utils",
|
"nu-utils",
|
||||||
"reedline",
|
"reedline",
|
||||||
"sysinfo 0.24.1",
|
"sysinfo",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -2555,7 +2618,7 @@ dependencies = [
|
|||||||
"pathdiff",
|
"pathdiff",
|
||||||
"polars",
|
"polars",
|
||||||
"powierza-coefficient",
|
"powierza-coefficient",
|
||||||
"quick-xml 0.22.0",
|
"quick-xml 0.23.0",
|
||||||
"quickcheck",
|
"quickcheck",
|
||||||
"quickcheck_macros",
|
"quickcheck_macros",
|
||||||
"rand 0.8.5",
|
"rand 0.8.5",
|
||||||
@ -2564,7 +2627,7 @@ dependencies = [
|
|||||||
"regex",
|
"regex",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
"roxmltree",
|
"roxmltree",
|
||||||
"rstest",
|
"rstest 0.15.0",
|
||||||
"rusqlite",
|
"rusqlite",
|
||||||
"rust-embed",
|
"rust-embed",
|
||||||
"serde",
|
"serde",
|
||||||
@ -2575,8 +2638,8 @@ dependencies = [
|
|||||||
"shadow-rs",
|
"shadow-rs",
|
||||||
"sqlparser",
|
"sqlparser",
|
||||||
"strip-ansi-escapes",
|
"strip-ansi-escapes",
|
||||||
"sysinfo 0.23.13",
|
"sysinfo",
|
||||||
"terminal_size",
|
"terminal_size 0.2.1",
|
||||||
"thiserror",
|
"thiserror",
|
||||||
"titlecase",
|
"titlecase",
|
||||||
"toml",
|
"toml",
|
||||||
@ -2600,7 +2663,7 @@ dependencies = [
|
|||||||
"nu-path",
|
"nu-path",
|
||||||
"nu-protocol",
|
"nu-protocol",
|
||||||
"nu-utils",
|
"nu-utils",
|
||||||
"sysinfo 0.23.13",
|
"sysinfo",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3137,6 +3200,12 @@ version = "0.2.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
|
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "peeking_take_while"
|
||||||
|
version = "0.1.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "percent-encoding"
|
name = "percent-encoding"
|
||||||
version = "2.1.0"
|
version = "2.1.0"
|
||||||
@ -3528,9 +3597,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "procfs"
|
name = "procfs"
|
||||||
version = "0.12.0"
|
version = "0.13.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0941606b9934e2d98a3677759a971756eb821f75764d0e0d26946d08e74d9104"
|
checksum = "57928c5e4262566636d405e7c6a5a4f59bcb61a04a65dea57cf26b0dc3de6423"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"byteorder",
|
"byteorder",
|
||||||
@ -3538,7 +3607,7 @@ dependencies = [
|
|||||||
"flate2",
|
"flate2",
|
||||||
"hex",
|
"hex",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"libc",
|
"rustix 0.35.7",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3569,9 +3638,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quick-xml"
|
name = "quick-xml"
|
||||||
version = "0.22.0"
|
version = "0.23.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8533f14c8382aaad0d592c812ac3b826162128b65662331e1127b45c3d18536b"
|
checksum = "9279fbdacaad3baf559d8cabe0acc3d06e30ea14931af31af79578ac0946decc"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
@ -3919,6 +3988,31 @@ dependencies = [
|
|||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rstest"
|
||||||
|
version = "0.15.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e9c9dc66cc29792b663ffb5269be669f1613664e69ad56441fdb895c2347b930"
|
||||||
|
dependencies = [
|
||||||
|
"futures",
|
||||||
|
"futures-timer",
|
||||||
|
"rstest_macros",
|
||||||
|
"rustc_version 0.4.0",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rstest_macros"
|
||||||
|
version = "0.14.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5015e68a0685a95ade3eee617ff7101ab6a3fc689203101ca16ebc16f2b89c66"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if 1.0.0",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"rustc_version 0.4.0",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rusqlite"
|
name = "rusqlite"
|
||||||
version = "0.27.0"
|
version = "0.27.0"
|
||||||
@ -3986,6 +4080,12 @@ version = "0.1.21"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
|
checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustc-hash"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustc_version"
|
name = "rustc_version"
|
||||||
version = "0.2.3"
|
version = "0.2.3"
|
||||||
@ -4012,12 +4112,26 @@ checksum = "2079c267b8394eb529872c3cf92e181c378b41fea36e68130357b52493701d2e"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
"errno",
|
"errno",
|
||||||
"io-lifetimes",
|
"io-lifetimes 0.6.1",
|
||||||
"libc",
|
"libc",
|
||||||
"linux-raw-sys",
|
"linux-raw-sys",
|
||||||
"winapi 0.3.9",
|
"winapi 0.3.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustix"
|
||||||
|
version = "0.35.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d51cc38aa10f6bbb377ed28197aa052aa4e2b762c22be9d3153d01822587e787"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"errno",
|
||||||
|
"io-lifetimes 0.7.2",
|
||||||
|
"libc",
|
||||||
|
"linux-raw-sys",
|
||||||
|
"windows-sys 0.36.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustversion"
|
name = "rustversion"
|
||||||
version = "1.0.6"
|
version = "1.0.6"
|
||||||
@ -4286,15 +4400,21 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "shadow-rs"
|
name = "shadow-rs"
|
||||||
version = "0.11.0"
|
version = "0.12.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f47e98e36909e951f4da3908f4475f969bec92a41734dd92e883aaa11c10294b"
|
checksum = "ed1b83da0a4e48d8dcc13ad177b64f2fc40097974f9bf176c2bcb702cabadff3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"const_format",
|
"const_format",
|
||||||
"is_debug",
|
"is_debug",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "shlex"
|
||||||
|
version = "1.1.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "signal-hook"
|
name = "signal-hook"
|
||||||
version = "0.3.14"
|
version = "0.3.14"
|
||||||
@ -4583,24 +4703,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sysinfo"
|
name = "sysinfo"
|
||||||
version = "0.23.13"
|
version = "0.24.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3977ec2e0520829be45c8a2df70db2bf364714d8a748316a10c3c35d4d2b01c9"
|
checksum = "0b6e19da72a8d75be4d40e4dd4686afca31507f26c3ffdf6bd3073278d9de0a0"
|
||||||
dependencies = [
|
|
||||||
"cfg-if 1.0.0",
|
|
||||||
"core-foundation-sys",
|
|
||||||
"libc",
|
|
||||||
"ntapi",
|
|
||||||
"once_cell",
|
|
||||||
"rayon",
|
|
||||||
"winapi 0.3.9",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "sysinfo"
|
|
||||||
version = "0.24.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a6a8e71535da31837213ac114531d31def75d7aebd133264e420a3451fa7f703"
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
"core-foundation-sys",
|
"core-foundation-sys",
|
||||||
@ -4688,6 +4793,16 @@ dependencies = [
|
|||||||
"winapi 0.3.9",
|
"winapi 0.3.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "terminal_size"
|
||||||
|
version = "0.2.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "8440c860cf79def6164e4a0a983bcc2305d82419177a0e0c71930d049e3ac5a1"
|
||||||
|
dependencies = [
|
||||||
|
"rustix 0.35.7",
|
||||||
|
"windows-sys 0.36.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "termtree"
|
name = "termtree"
|
||||||
version = "0.2.4"
|
version = "0.2.4"
|
||||||
@ -4768,9 +4883,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "titlecase"
|
name = "titlecase"
|
||||||
version = "1.1.0"
|
version = "2.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f565e410cfc24c2f2a89960b023ca192689d7f77d3f8d4f4af50c2d8affe1117"
|
checksum = "ea7a2f1a76e892e6c07c275e6e851400257304a6e34c0e4e32ebbd3871808802"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"regex",
|
"regex",
|
||||||
@ -4888,9 +5003,9 @@ checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typetag"
|
name = "typetag"
|
||||||
version = "0.1.8"
|
version = "0.2.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4080564c5b2241b5bff53ab610082234e0c57b0417f4bd10596f183001505b8a"
|
checksum = "62a3f3e32f68a8a611e8b98a14e058954f1b81d6eb6af50e2349bf322ae4062b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"erased-serde",
|
"erased-serde",
|
||||||
"inventory",
|
"inventory",
|
||||||
@ -4901,9 +5016,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typetag-impl"
|
name = "typetag-impl"
|
||||||
version = "0.1.8"
|
version = "0.2.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e60147782cc30833c05fba3bab1d9b5771b2685a2557672ac96fa5d154099c0e"
|
checksum = "762400b16d1815702b6a22e71764f5936ef5d2c4dcff95497f874c53594d59fd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@ -5031,9 +5146,9 @@ checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "uuid"
|
name = "uuid"
|
||||||
version = "0.8.2"
|
version = "1.1.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
|
checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"getrandom 0.2.6",
|
"getrandom 0.2.6",
|
||||||
]
|
]
|
||||||
@ -5214,14 +5329,14 @@ checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wax"
|
name = "wax"
|
||||||
version = "0.4.0"
|
version = "0.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "97a4ecdf7da7e42385f844503bac3e9a2a066838e3cb66c5f28ce03bafb2f90d"
|
checksum = "06c7a3bac6110ac062b7b422a442b7ee23e07209e2784a036654cab1e71bbafc"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bstr",
|
"bstr",
|
||||||
"const_format",
|
"const_format",
|
||||||
"itertools",
|
"itertools",
|
||||||
"miette 3.3.0",
|
"miette 4.7.1",
|
||||||
"nom 7.1.1",
|
"nom 7.1.1",
|
||||||
"nom-supreme",
|
"nom-supreme",
|
||||||
"pori",
|
"pori",
|
||||||
|
@ -52,7 +52,7 @@ is-root = "0.1.2"
|
|||||||
itertools = "0.10.0"
|
itertools = "0.10.0"
|
||||||
lazy_static = "1.4.0"
|
lazy_static = "1.4.0"
|
||||||
log = "0.4.14"
|
log = "0.4.14"
|
||||||
lscolors = { version = "0.9.0", features = ["crossterm"]}
|
lscolors = { version = "0.10.0", features = ["crossterm"]}
|
||||||
md5 = { package = "md-5", version = "0.10.0" }
|
md5 = { package = "md-5", version = "0.10.0" }
|
||||||
meval = "0.2.0"
|
meval = "0.2.0"
|
||||||
mime = "0.3.16"
|
mime = "0.3.16"
|
||||||
@ -60,7 +60,7 @@ notify = "4.0.17"
|
|||||||
num = { version = "0.4.0", optional = true }
|
num = { version = "0.4.0", optional = true }
|
||||||
pathdiff = "0.2.1"
|
pathdiff = "0.2.1"
|
||||||
powierza-coefficient = "1.0"
|
powierza-coefficient = "1.0"
|
||||||
quick-xml = "0.22"
|
quick-xml = "0.23.0"
|
||||||
rand = "0.8"
|
rand = "0.8"
|
||||||
rayon = "1.5.1"
|
rayon = "1.5.1"
|
||||||
regex = "1.5.4"
|
regex = "1.5.4"
|
||||||
@ -73,19 +73,19 @@ serde_urlencoded = "0.7.0"
|
|||||||
serde_yaml = "0.8.16"
|
serde_yaml = "0.8.16"
|
||||||
sha2 = "0.10.0"
|
sha2 = "0.10.0"
|
||||||
# Disable default features b/c the default features build Git (very slow to compile)
|
# Disable default features b/c the default features build Git (very slow to compile)
|
||||||
shadow-rs = { version = "0.11.0", default-features = false }
|
shadow-rs = { version = "0.12.0", default-features = false }
|
||||||
strip-ansi-escapes = "0.1.1"
|
strip-ansi-escapes = "0.1.1"
|
||||||
sysinfo = "0.23.5"
|
sysinfo = "0.24.6"
|
||||||
terminal_size = "0.1.17"
|
terminal_size = "0.2.1"
|
||||||
thiserror = "1.0.31"
|
thiserror = "1.0.31"
|
||||||
titlecase = "1.1.0"
|
titlecase = "2.0.0"
|
||||||
toml = "0.5.8"
|
toml = "0.5.8"
|
||||||
unicode-segmentation = "1.8.0"
|
unicode-segmentation = "1.8.0"
|
||||||
url = "2.2.1"
|
url = "2.2.1"
|
||||||
uuid = { version = "0.8.2", features = ["v4"] }
|
uuid = { version = "1.1.2", features = ["v4"] }
|
||||||
which = { version = "4.2.2", optional = true }
|
which = { version = "4.2.2", optional = true }
|
||||||
reedline = { version = "0.8.0", features = ["bashisms", "sqlite"]}
|
reedline = { version = "0.8.0", features = ["bashisms", "sqlite"]}
|
||||||
wax = { version = "0.4.0", features = ["diagnostics"] }
|
wax = { version = "0.5.0", features = ["diagnostics"] }
|
||||||
rusqlite = { version = "0.27.0", features = ["bundled"], optional = true }
|
rusqlite = { version = "0.27.0", features = ["bundled"], optional = true }
|
||||||
sqlparser = { version = "0.16.0", features = ["serde"], optional = true }
|
sqlparser = { version = "0.16.0", features = ["serde"], optional = true }
|
||||||
|
|
||||||
@ -126,11 +126,11 @@ dataframe = ["polars", "num"]
|
|||||||
database = ["sqlparser", "rusqlite"]
|
database = ["sqlparser", "rusqlite"]
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
shadow-rs = { version = "0.11.0", default-features = false }
|
shadow-rs = { version = "0.12.0", default-features = false }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
hamcrest2 = "0.3.0"
|
hamcrest2 = "0.3.0"
|
||||||
dirs-next = "2.0.0"
|
dirs-next = "2.0.0"
|
||||||
quickcheck = "1.0.3"
|
quickcheck = "1.0.3"
|
||||||
quickcheck_macros = "1.0.0"
|
quickcheck_macros = "1.0.0"
|
||||||
rstest = "0.12.0"
|
rstest = "0.15.0"
|
||||||
|
@ -6,7 +6,7 @@ use nu_protocol::{
|
|||||||
Category, Example, IntoInterruptiblePipelineData, PipelineData, ShellError, Signature, Spanned,
|
Category, Example, IntoInterruptiblePipelineData, PipelineData, ShellError, Signature, Spanned,
|
||||||
SyntaxShape, Value,
|
SyntaxShape, Value,
|
||||||
};
|
};
|
||||||
use wax::Glob as WaxGlob;
|
use wax::{Glob as WaxGlob, WalkBehavior};
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct Glob;
|
pub struct Glob;
|
||||||
@ -120,7 +120,13 @@ impl Command for Glob {
|
|||||||
|
|
||||||
#[allow(clippy::needless_collect)]
|
#[allow(clippy::needless_collect)]
|
||||||
let glob_results: Vec<Value> = glob
|
let glob_results: Vec<Value> = glob
|
||||||
.walk(path, folder_depth)
|
.walk_with_behavior(
|
||||||
|
path,
|
||||||
|
WalkBehavior {
|
||||||
|
depth: folder_depth,
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
)
|
||||||
.flatten()
|
.flatten()
|
||||||
.map(|entry| Value::String {
|
.map(|entry| Value::String {
|
||||||
val: entry.into_path().to_string_lossy().to_string(),
|
val: entry.into_path().to_string_lossy().to_string(),
|
||||||
|
@ -40,7 +40,7 @@ impl Command for SubCommand {
|
|||||||
|
|
||||||
fn uuid(call: &Call) -> Result<PipelineData, ShellError> {
|
fn uuid(call: &Call) -> Result<PipelineData, ShellError> {
|
||||||
let span = call.head;
|
let span = call.head;
|
||||||
let uuid_4 = Uuid::new_v4().to_hyphenated().to_string();
|
let uuid_4 = Uuid::new_v4().hyphenated().to_string();
|
||||||
|
|
||||||
Ok(PipelineData::Value(
|
Ok(PipelineData::Value(
|
||||||
Value::String { val: uuid_4, span },
|
Value::String { val: uuid_4, span },
|
||||||
|
@ -6,7 +6,7 @@ use nu_protocol::{
|
|||||||
Category, Example, IntoPipelineData, PipelineData, ShellError, Signature, Span, Value,
|
Category, Example, IntoPipelineData, PipelineData, ShellError, Signature, Span, Value,
|
||||||
};
|
};
|
||||||
use std::time::{Duration, UNIX_EPOCH};
|
use std::time::{Duration, UNIX_EPOCH};
|
||||||
use sysinfo::{ComponentExt, DiskExt, NetworkExt, ProcessorExt, System, SystemExt, UserExt};
|
use sysinfo::{ComponentExt, CpuExt, DiskExt, NetworkExt, System, SystemExt, UserExt};
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct Sys;
|
pub struct Sys;
|
||||||
@ -199,7 +199,7 @@ pub fn cpu(sys: &mut System, span: Span) -> Option<Value> {
|
|||||||
sys.refresh_cpu();
|
sys.refresh_cpu();
|
||||||
|
|
||||||
let mut output = vec![];
|
let mut output = vec![];
|
||||||
for cpu in sys.processors() {
|
for cpu in sys.cpus() {
|
||||||
let mut cols = vec![];
|
let mut cols = vec![];
|
||||||
let mut vals = vec![];
|
let mut vals = vec![];
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ nu-glob = { path = "../nu-glob", version = "0.65.1" }
|
|||||||
nu-utils = { path = "../nu-utils", version = "0.65.1" }
|
nu-utils = { path = "../nu-utils", version = "0.65.1" }
|
||||||
|
|
||||||
chrono = { version="0.4.19", features=["serde"] }
|
chrono = { version="0.4.19", features=["serde"] }
|
||||||
sysinfo = "0.23.10"
|
sysinfo = "0.24.6"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
plugin = []
|
plugin = []
|
||||||
|
@ -19,7 +19,7 @@ chrono-humanize = "0.2.1"
|
|||||||
byte-unit = "4.0.9"
|
byte-unit = "4.0.9"
|
||||||
serde_json = { version = "1.0", optional = true }
|
serde_json = { version = "1.0", optional = true }
|
||||||
nu-json = { path = "../nu-json", version = "0.65.1" }
|
nu-json = { path = "../nu-json", version = "0.65.1" }
|
||||||
typetag = "0.1.8"
|
typetag = "0.2.1"
|
||||||
num-format = "0.4.0"
|
num-format = "0.4.0"
|
||||||
sys-locale = "0.2.0"
|
sys-locale = "0.2.0"
|
||||||
regex = "1.5.4"
|
regex = "1.5.4"
|
||||||
|
@ -16,10 +16,10 @@ path = "src/main.rs"
|
|||||||
|
|
||||||
|
|
||||||
[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies]
|
[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies]
|
||||||
procfs = "0.12.0"
|
procfs = "0.13.0"
|
||||||
|
|
||||||
[target.'cfg(target_os = "macos")'.dependencies]
|
[target.'cfg(target_os = "macos")'.dependencies]
|
||||||
libproc = "0.10"
|
libproc = "0.12.0"
|
||||||
errno = "0.2"
|
errno = "0.2"
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
|
|
||||||
|
@ -6,14 +6,17 @@ use std::time::{Duration, Instant};
|
|||||||
|
|
||||||
pub enum ProcessTask {
|
pub enum ProcessTask {
|
||||||
Process(Process),
|
Process(Process),
|
||||||
Task { stat: Stat, owner: u32 },
|
Task { stat: Box<Stat>, owner: u32 },
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ProcessTask {
|
impl ProcessTask {
|
||||||
pub fn stat(&self) -> &Stat {
|
pub fn stat(&self) -> Result<Stat, ProcError> {
|
||||||
match self {
|
match self {
|
||||||
ProcessTask::Process(x) => &x.stat,
|
ProcessTask::Process(x) => match x.stat() {
|
||||||
ProcessTask::Task { stat: x, owner: _ } => x,
|
Ok(it) => Ok(it),
|
||||||
|
Err(err) => Err(err),
|
||||||
|
},
|
||||||
|
ProcessTask::Task { stat: x, owner: _ } => Ok(*x.clone()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,7 +36,13 @@ impl ProcessTask {
|
|||||||
|
|
||||||
pub fn fd(&self) -> Result<Vec<FDInfo>, ProcError> {
|
pub fn fd(&self) -> Result<Vec<FDInfo>, ProcError> {
|
||||||
match self {
|
match self {
|
||||||
ProcessTask::Process(x) => x.fd(),
|
ProcessTask::Process(x) => {
|
||||||
|
let fds = match x.fd() {
|
||||||
|
Ok(f) => f,
|
||||||
|
Err(e) => return Err(e),
|
||||||
|
};
|
||||||
|
fds.collect()
|
||||||
|
}
|
||||||
_ => Err(ProcError::Other("not supported".to_string())),
|
_ => Err(ProcError::Other("not supported".to_string())),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -47,7 +56,7 @@ impl ProcessTask {
|
|||||||
|
|
||||||
pub fn owner(&self) -> u32 {
|
pub fn owner(&self) -> u32 {
|
||||||
match self {
|
match self {
|
||||||
ProcessTask::Process(x) => x.owner,
|
ProcessTask::Process(x) => x.uid().unwrap_or(0),
|
||||||
ProcessTask::Task { stat: _, owner: x } => *x,
|
ProcessTask::Task { stat: _, owner: x } => *x,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,32 +86,54 @@ pub fn collect_proc(interval: Duration, with_thread: bool) -> Vec<ProcessInfo> {
|
|||||||
let mut ret = Vec::new();
|
let mut ret = Vec::new();
|
||||||
|
|
||||||
if let Ok(all_proc) = procfs::process::all_processes() {
|
if let Ok(all_proc) = procfs::process::all_processes() {
|
||||||
for proc in all_proc {
|
for proc in all_proc.flatten() {
|
||||||
let io = proc.io().ok();
|
let io = proc.io().ok();
|
||||||
let time = Instant::now();
|
let time = Instant::now();
|
||||||
if with_thread {
|
if with_thread {
|
||||||
if let Ok(iter) = proc.tasks() {
|
if let Ok(iter) = proc.tasks() {
|
||||||
collect_task(iter, &mut base_tasks);
|
collect_task(iter, &mut base_tasks);
|
||||||
}
|
}
|
||||||
|
base_procs.push((proc.pid(), proc, io, time));
|
||||||
}
|
}
|
||||||
base_procs.push((proc.pid(), proc, io, time));
|
// match proc {
|
||||||
|
// Ok(p) => {
|
||||||
|
// let io = p.io().ok();
|
||||||
|
// let time = Instant::now();
|
||||||
|
// if with_thread {
|
||||||
|
// if let Ok(iter) = p.tasks() {
|
||||||
|
// collect_task(iter, &mut base_tasks);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// base_procs.push((p.pid(), p, io, time));
|
||||||
|
// }
|
||||||
|
// Err(_) => {}
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
thread::sleep(interval);
|
thread::sleep(interval);
|
||||||
|
|
||||||
for (pid, prev_proc, prev_io, prev_time) in base_procs {
|
for (pid, prev_proc, prev_io, prev_time) in base_procs {
|
||||||
let curr_proc = if let Ok(proc) = Process::new(pid) {
|
let curr_proc_pid = pid;
|
||||||
proc
|
let prev_proc_pid = prev_proc.pid();
|
||||||
} else {
|
let curr_proc = match Process::new(curr_proc_pid) {
|
||||||
prev_proc.clone()
|
Ok(p) => p,
|
||||||
|
Err(_) => return Vec::<ProcessInfo>::new(),
|
||||||
};
|
};
|
||||||
|
let prev_proc = match Process::new(prev_proc_pid) {
|
||||||
|
Ok(p) => p,
|
||||||
|
Err(_) => return Vec::<ProcessInfo>::new(),
|
||||||
|
};
|
||||||
|
|
||||||
let curr_io = curr_proc.io().ok();
|
let curr_io = curr_proc.io().ok();
|
||||||
let curr_status = curr_proc.status().ok();
|
let curr_status = curr_proc.status().ok();
|
||||||
let curr_time = Instant::now();
|
let curr_time = Instant::now();
|
||||||
let interval = curr_time - prev_time;
|
let interval = curr_time - prev_time;
|
||||||
let ppid = curr_proc.stat.ppid;
|
let ppid = match curr_proc.stat() {
|
||||||
let owner = curr_proc.owner;
|
Ok(p) => p.ppid,
|
||||||
|
Err(_) => 0,
|
||||||
|
};
|
||||||
|
let owner = curr_proc.uid().unwrap_or(0);
|
||||||
|
|
||||||
let mut curr_tasks = HashMap::new();
|
let mut curr_tasks = HashMap::new();
|
||||||
if with_thread {
|
if with_thread {
|
||||||
@ -133,11 +164,11 @@ pub fn collect_proc(interval: Duration, with_thread: bool) -> Vec<ProcessInfo> {
|
|||||||
pid: tid,
|
pid: tid,
|
||||||
ppid: pid,
|
ppid: pid,
|
||||||
curr_proc: ProcessTask::Task {
|
curr_proc: ProcessTask::Task {
|
||||||
stat: curr_stat,
|
stat: Box::new(curr_stat),
|
||||||
owner,
|
owner,
|
||||||
},
|
},
|
||||||
prev_proc: ProcessTask::Task {
|
prev_proc: ProcessTask::Task {
|
||||||
stat: prev_stat,
|
stat: Box::new(prev_stat),
|
||||||
owner,
|
owner,
|
||||||
},
|
},
|
||||||
curr_io,
|
curr_io,
|
||||||
@ -196,35 +227,50 @@ impl ProcessInfo {
|
|||||||
if !cmd.is_empty() {
|
if !cmd.is_empty() {
|
||||||
cmd.join(" ").replace('\n', " ").replace('\t', " ")
|
cmd.join(" ").replace('\n', " ").replace('\t', " ")
|
||||||
} else {
|
} else {
|
||||||
self.curr_proc.stat().comm.clone()
|
match self.curr_proc.stat() {
|
||||||
|
Ok(p) => p.comm,
|
||||||
|
Err(_) => "".to_string(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self.curr_proc.stat().comm.clone()
|
match self.curr_proc.stat() {
|
||||||
|
Ok(p) => p.comm,
|
||||||
|
Err(_) => "".to_string(),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get the status of the process
|
/// Get the status of the process
|
||||||
pub fn status(&self) -> String {
|
pub fn status(&self) -> String {
|
||||||
match self.curr_proc.stat().state {
|
match self.curr_proc.stat() {
|
||||||
'S' => "Sleeping".into(),
|
Ok(p) => match p.state {
|
||||||
'R' => "Running".into(),
|
'S' => "Sleeping".into(),
|
||||||
'D' => "Disk sleep".into(),
|
'R' => "Running".into(),
|
||||||
'Z' => "Zombie".into(),
|
'D' => "Disk sleep".into(),
|
||||||
'T' => "Stopped".into(),
|
'Z' => "Zombie".into(),
|
||||||
't' => "Tracing".into(),
|
'T' => "Stopped".into(),
|
||||||
'X' => "Dead".into(),
|
't' => "Tracing".into(),
|
||||||
'x' => "Dead".into(),
|
'X' => "Dead".into(),
|
||||||
'K' => "Wakekill".into(),
|
'x' => "Dead".into(),
|
||||||
'W' => "Waking".into(),
|
'K' => "Wakekill".into(),
|
||||||
'P' => "Parked".into(),
|
'W' => "Waking".into(),
|
||||||
_ => "Unknown".into(),
|
'P' => "Parked".into(),
|
||||||
|
_ => "Unknown".into(),
|
||||||
|
},
|
||||||
|
Err(_) => "Unknown".into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// CPU usage as a percent of total
|
/// CPU usage as a percent of total
|
||||||
pub fn cpu_usage(&self) -> f64 {
|
pub fn cpu_usage(&self) -> f64 {
|
||||||
let curr_time = self.curr_proc.stat().utime + self.curr_proc.stat().stime;
|
let curr_time = match self.curr_proc.stat() {
|
||||||
let prev_time = self.prev_proc.stat().utime + self.prev_proc.stat().stime;
|
Ok(c) => c.utime + c.stime,
|
||||||
|
Err(_) => 0,
|
||||||
|
};
|
||||||
|
let prev_time = match self.prev_proc.stat() {
|
||||||
|
Ok(c) => c.utime + c.stime,
|
||||||
|
Err(_) => 0,
|
||||||
|
};
|
||||||
let usage_ms =
|
let usage_ms =
|
||||||
(curr_time - prev_time) * 1000 / procfs::ticks_per_second().unwrap_or(100) as u64;
|
(curr_time - prev_time) * 1000 / procfs::ticks_per_second().unwrap_or(100) as u64;
|
||||||
let interval_ms = self.interval.as_secs() * 1000 + u64::from(self.interval.subsec_millis());
|
let interval_ms = self.interval.as_secs() * 1000 + u64::from(self.interval.subsec_millis());
|
||||||
@ -233,11 +279,17 @@ impl ProcessInfo {
|
|||||||
|
|
||||||
/// Memory size in number of bytes
|
/// Memory size in number of bytes
|
||||||
pub fn mem_size(&self) -> u64 {
|
pub fn mem_size(&self) -> u64 {
|
||||||
self.curr_proc.stat().rss_bytes().unwrap_or(0) as u64
|
match self.curr_proc.stat() {
|
||||||
|
Ok(p) => p.rss_bytes().unwrap_or(0),
|
||||||
|
Err(_) => 0,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Virtual memory size in bytes
|
/// Virtual memory size in bytes
|
||||||
pub fn virtual_size(&self) -> u64 {
|
pub fn virtual_size(&self) -> u64 {
|
||||||
self.curr_proc.stat().vsize
|
match self.curr_proc.stat() {
|
||||||
|
Ok(p) => p.vsize,
|
||||||
|
Err(_) => 0u64,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user