-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCargo.toml
53 lines (41 loc) · 1.82 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
[package]
name = "prod"
version = "0.3.1"
authors = ["Peter Pearson"]
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
# TODO: replace this with yaml-rust2 in the future...
yaml-rust = "0.4"
# provision items
ureq = { version = "2.9.*", optional = true, features = ["json", "charset"] }
serde = { version = "1.0.*", optional = true, features = ["derive"] }
serde_json = { version = "1.0.*", optional = true }
# control items
ssh2 = { version = "0.9", optional = true }
ssh-rs = { version = "0.5.0", optional = true, features = ["scp"] }
temp-file = { version = "0.1.8", optional = true }
rpassword = { version = "5.0", optional = true }
[features]
# TODO: add support at the code level for conditional enabling of provision/control parts of prod
provision = ["ureq", "serde", "serde_json"]
control = ["remote", "rpassword"]
# actual remote crates used indirectly via 'control'...
openssh = ["ssh2"]
sshrs = ["ssh-rs", "temp-file"]
# dependencies for 'control'...
# Note: openssh is fully-featured and works, but only on Linux, whereas ssh-rs seems to have somewhat
# problematic public key support (at least in my testing: it panics in places internally
# with a variety of different keys - I think because it's incorrectly decoding them, but not sure:
# it could be something I'm doing wrong), but it does work with user/password authentication and
# builds on all platforms, so for the moment I'm making ssh-rs the default for convenience's sake
# for MacOS dev...
# Would be nice if https://github.com/rust-lang/cargo/issues/1197 existed as well, so Linux builds
# could always use openssh without having to do this...
# Select one of these...
#remote = ["openssh"]
remote = ["sshrs"]
default = [
"control",
"provision"
]