Skip to content

Commit cc6df1d

Browse files
committed
Implement credential-process.
1 parent 6bc510d commit cc6df1d

File tree

25 files changed

+1999
-96
lines changed

25 files changed

+1999
-96
lines changed

.github/workflows/main.yml

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ jobs:
1818
- run: rustup update stable && rustup default stable
1919
- run: rustup component add rustfmt
2020
- run: cargo fmt --all -- --check
21-
- run: cd crates/cargo-test-macro && cargo fmt --all -- --check
22-
- run: cd crates/cargo-test-support && cargo fmt --all -- --check
23-
- run: cd crates/crates-io && cargo fmt --all -- --check
24-
- run: cd crates/resolver-tests && cargo fmt --all -- --check
25-
- run: cd crates/cargo-platform && cargo fmt --all -- --check
26-
- run: cd crates/mdman && cargo fmt --all -- --check
21+
- run: |
22+
for manifest in `find crates -name Cargo.toml`
23+
do
24+
echo check fmt for $manifest
25+
cargo fmt --all --manifest-path $manifest -- --check
26+
done
2727
2828
test:
2929
runs-on: ${{ matrix.os }}
@@ -58,7 +58,7 @@ jobs:
5858
- run: rustup target add ${{ matrix.other }}
5959
- run: rustup component add rustc-dev llvm-tools-preview rust-docs
6060
if: startsWith(matrix.rust, 'nightly')
61-
- run: sudo apt update -y && sudo apt install gcc-multilib -y
61+
- run: sudo apt update -y && sudo apt install gcc-multilib libsecret-1-0 libsecret-1-dev -y
6262
if: matrix.os == 'ubuntu-latest'
6363
- run: rustup component add rustfmt || echo "rustfmt not available"
6464

@@ -67,6 +67,13 @@ jobs:
6767
- run: cargo test --features 'deny-warnings' -p cargo-test-support
6868
- run: cargo test -p cargo-platform
6969
- run: cargo test --manifest-path crates/mdman/Cargo.toml
70+
- run: cargo build --manifest-path crates/credential/cargo-credential-1password/Cargo.toml
71+
- run: cargo build --manifest-path crates/credential/cargo-credential-gnome-secret/Cargo.toml
72+
if: matrix.os == 'ubuntu-latest'
73+
- run: cargo build --manifest-path crates/credential/cargo-credential-macos-keychain/Cargo.toml
74+
if: matrix.os == 'macos-latest'
75+
- run: cargo build --manifest-path crates/credential/cargo-credential-wincred/Cargo.toml
76+
if: matrix.os == 'windows-latest'
7077

7178
resolver:
7279
runs-on: ubuntu-latest

crates/cargo-test-support/src/lib.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1544,6 +1544,10 @@ fn substitute_macros(input: &str) -> String {
15441544
("[INSTALLED]", " Installed"),
15451545
("[REPLACED]", " Replaced"),
15461546
("[BUILDING]", " Building"),
1547+
("[LOGIN]", " Login"),
1548+
("[LOGOUT]", " Logout"),
1549+
("[YANK]", " Yank"),
1550+
("[OWNER]", " Owner"),
15471551
];
15481552
let mut result = input.to_owned();
15491553
for &(pat, subst) in &macros {

crates/cargo-test-support/src/paths.rs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,27 @@ pub trait CargoPathExt {
110110
}
111111

112112
impl CargoPathExt for Path {
113-
/* Technically there is a potential race condition, but we don't
114-
* care all that much for our tests
115-
*/
116113
fn rm_rf(&self) {
117-
if self.exists() {
114+
let meta = match self.symlink_metadata() {
115+
Ok(meta) => meta,
116+
Err(e) => {
117+
if e.kind() == ErrorKind::NotFound {
118+
return;
119+
}
120+
panic!("failed to remove {:?}, could not read: {:?}", self, e);
121+
}
122+
};
123+
// There is a race condition between fetching the metadata and
124+
// actually performing the removal, but we don't care all that much
125+
// for our tests.
126+
if meta.is_dir() {
118127
if let Err(e) = remove_dir_all::remove_dir_all(self) {
119128
panic!("failed to remove {:?}: {:?}", self, e)
120129
}
130+
} else {
131+
if let Err(e) = fs::remove_file(self) {
132+
panic!("failed to remove {:?}: {:?}", self, e)
133+
}
121134
}
122135
}
123136

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
[package]
2+
name = "cargo-credential-1password"
3+
version = "0.1.0"
4+
authors = ["The Rust Project Developers"]
5+
edition = "2018"
6+
license = "MIT OR Apache-2.0"
7+
8+
[dependencies]
9+
cargo-credential = { path = "../cargo-credential" }
10+
serde = { version = "1.0.117", features = ["derive"] }
11+
serde_json = "1.0.59"

0 commit comments

Comments
 (0)