radicle-cli: Build on Windows
This patch contains a number of changes, with the main goal of getting radicle-cli to build on Windows.
In order to achieve this, I removed some features:
- The spinner in
radicle-termdoes not react to signals on Windows, of course it still reacts to signals on Unix-like platforms. - In
radiclefile limits are not set on Windows, the implementation always errors. Of course, file limits are still set on Unix-like platforms.
One feature was added: radicle and radicle-ssh now support not only Unix Domain Socket on Unix-like platforms but also Named Pipes on Windows, via the winpipe crate.
The (useless?) implementation for connecting to SSH agents via TCP streams was removed.
Some behaviour was changed in radicle-term so that it does not depend on libc and raw file descriptors (which are only available on Unix-like platforms).
26 files changed
+462
-417
37ea8176
→
2a47bc0c
modified Cargo.lock
@@ -651,6 +651,12 @@ dependencies = [
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -1560,7 +1566,7 @@ dependencies = [
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -1946,9 +1952,9 @@ dependencies = [
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -2503,6 +2509,7 @@ dependencies = [
|
|
|
|
|
|
| + | |
|
|
|
|
|
@@ -2742,9 +2749,8 @@ dependencies = [
|
|
|
|
|
|
| - | |
| - | |
|
|
| + | |
|
|
|
|
|
@@ -2787,10 +2793,8 @@ dependencies = [
|
|
|
|
|
|
| - | |
|
|
|
|
| - | |
|
|
|
|
|
@@ -3410,6 +3414,12 @@ dependencies = [
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -3894,6 +3904,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -3903,6 +3923,60 @@ dependencies = [
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -4060,6 +4134,19 @@ dependencies = [
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified Cargo.toml
@@ -61,6 +61,7 @@ snapbox = "0.4.3"
|
|
|
|
|
|
| + | |
|
|
|
|
|
modified crates/radicle-cli/src/commands/config.rs
@@ -185,12 +185,24 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| + | |
|
|
|
|
|
modified crates/radicle-cli/src/commands/id.rs
@@ -412,8 +412,9 @@ pub fn run(options: Options, ctx: impl term::Context) -> anyhow::Result<()> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified crates/radicle-cli/src/commands/patch/review/builder.rs
@@ -836,6 +836,8 @@ enum Error {
|
|
|
|
|
|
| + | |
| + | |
|
|
|
|
|
@@ -860,8 +862,9 @@ impl CommentBuilder {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified crates/radicle-cli/src/commands/self.rs
@@ -146,7 +146,9 @@ fn all(profile: &Profile) -> anyhow::Result<()> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified crates/radicle-cli/src/terminal/issue.rs
@@ -1,5 +1,3 @@
| - | |
| - | |
|
|
|
|
|
@@ -34,7 +32,7 @@ pub enum Format {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified crates/radicle-cli/src/terminal/patch.rs
@@ -31,6 +31,10 @@ pub enum Error {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -47,13 +51,14 @@ pub enum Message {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -75,7 +80,7 @@ impl Message {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -228,11 +233,7 @@ pub fn get_create_message(
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -249,7 +250,7 @@ fn edit_display_message(title: &str, description: &str) -> String {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -260,10 +261,7 @@ pub fn get_edit_message(
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
modified crates/radicle-crypto/src/ssh.rs
@@ -261,13 +261,6 @@ mod test {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -304,7 +297,7 @@ mod test {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -334,7 +327,7 @@ mod test {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified crates/radicle-crypto/src/ssh/agent.rs
@@ -1,26 +1,23 @@
|
|
| + | |
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -45,8 +42,8 @@ impl Agent {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
modified crates/radicle-crypto/src/ssh/keystore.rs
@@ -1,5 +1,4 @@
|
|
| - | |
|
|
|
|
|
@@ -94,10 +93,18 @@ impl Keystore {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
modified crates/radicle-remote-helper/src/lib.rs
@@ -90,7 +90,7 @@ pub struct Options {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified crates/radicle-ssh/Cargo.toml
@@ -14,7 +14,8 @@ edition.workspace = true
|
|
|
|
|
|
| - | |
| - | |
|
|
|
|
| + | |
| + | |
| + | |
modified crates/radicle-ssh/src/agent/client.rs
@@ -1,12 +1,13 @@
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
|
|
|
|
|
@@ -21,74 +22,114 @@ pub type Signature = [u8; 64];
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -112,7 +153,7 @@ impl<S: ClientStream> AgentClient<S> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -153,13 +194,12 @@ impl<S: ClientStream> AgentClient<S> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -271,14 +311,13 @@ impl<S: ClientStream> AgentClient<S> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -305,7 +344,7 @@ impl<S: ClientStream> AgentClient<S> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -372,35 +411,11 @@ impl<S: ClientStream> AgentClient<S> {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
@@ -413,7 +428,8 @@ impl ClientStream for UnixStream {
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
modified crates/radicle-ssh/src/encoding.rs
@@ -12,9 +12,8 @@
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
|
|
|
|
|
@@ -53,6 +52,16 @@ pub trait Encoding {
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -66,12 +75,12 @@ pub fn mpint_len(s: &[u8]) -> usize {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -86,24 +95,20 @@ impl Encoding for Vec<u8> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
|
|
|
|
|
| - | |
| - | |
| - | |
| + | |
|
|
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -116,7 +121,7 @@ impl Encoding for Vec<u8> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -125,7 +130,7 @@ impl Encoding for Vec<u8> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -207,7 +212,8 @@ impl<'a> Cursor<'a> {
|
|
|
|
|
|
| - | |
| + | |
| + | |
|
|
|
|
|
modified crates/radicle-term/Cargo.toml
@@ -15,16 +15,16 @@ default = ["git2"]
|
|
|
|
|
|
| - | |
|
|
|
|
| - | |
| - | |
|
|
|
|
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
modified crates/radicle-term/src/ansi.rs
@@ -8,10 +8,10 @@ mod paint;
|
|
|
|
|
|
| - | |
|
|
|
|
|
|
|
|
|
|
| + | |
|
modified crates/radicle-term/src/ansi/paint.rs
@@ -1,5 +1,4 @@
|
|
| - | |
|
|
|
|
|
@@ -7,8 +6,36 @@ use std::{fmt, sync};
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
@@ -263,7 +290,7 @@ impl Paint<()> {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -287,8 +314,8 @@ impl Paint<()> {
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
deleted crates/radicle-term/src/ansi/windows.rs
@@ -1,64 +0,0 @@
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
modified crates/radicle-term/src/editor.rs
@@ -1,184 +1,69 @@
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
|
|
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
|
|
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -211,6 +96,9 @@ fn default_editor() -> Option<OsString> {
|
|
|
|
|
|
| + | |
| + | |
| + | |
|
|
|
|
|
modified crates/radicle-term/src/lib.rs
@@ -17,7 +17,7 @@ use std::fmt;
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified crates/radicle-term/src/spinner.rs
@@ -3,11 +3,6 @@ use std::mem::ManuallyDrop;
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
|
|
|
|
|
@@ -136,8 +131,13 @@ pub fn spinner_to(
|
|
|
|
|
|
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -151,9 +151,13 @@ pub fn spinner_to(
|
|
|
|
|
|
| + | |
|
|
|
|
| - | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -225,8 +229,9 @@ pub fn spinner_to(
|
|
|
|
|
|
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
modified crates/radicle/Cargo.toml
@@ -26,7 +26,6 @@ fast-glob = { version = "0.3.2" }
|
|
|
|
|
|
| - | |
|
|
|
|
|
@@ -46,6 +45,12 @@ tempfile = { workspace = true }
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -53,4 +58,4 @@ pretty_assertions = { workspace = true }
|
|
|
|
|
|
| - | |
|
|
| + | |
modified crates/radicle/src/io.rs
@@ -1,14 +1,25 @@
| - | |
|
|
|
|
| + | |
|
|
|
|
| + | |
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| + | |
|
|
|
|
| - | |
| + | |
|
|
|
|
|
modified crates/radicle/src/node.rs
@@ -19,11 +19,15 @@ use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet, VecDeque};
|
|
|
|
|
|
| - | |
|
|
|
|
|
|
|
|
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
|
|
|
@@ -1140,7 +1144,7 @@ pub trait Handle: Clone + Sync + Send {
|
|
|
|
|
|
| - | |
| + | |
|
|
|
|
|
@@ -1204,9 +1208,9 @@ impl Node {
|
|
|
|
|
|
| - | |
| + | |
|
|
| - | |
| + | |
|
|
|
|
|
modified crates/radicle/src/profile.rs
@@ -450,15 +450,62 @@ impl AliasStore for Aliases {
|
|
|
|
|
|
| - | |
| - | |
| - | |
| - | |
| - | |
| - | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
| + | |
|
|
| - | |
| - | |
| + | |
| + | |
|
|
|
|
|