11 files changed
+102
-7
.env.example
new
+6
@@ -0,0 +1,6 @@
1
+CLI_CLIENT_ID=
2
+SIGIT_CLIENT_ID=
3
+WEB_CONSOLE_CLIENT_ID=
4
+CLI_CLIENT_SECRET=
5
+SIGIT_CLIENT_SECRET=
6
+WEB_CONSOLE_CLIENT_SECRET=
.github/workflows/ci.yml
+12
@@ -20,4 +20,16 @@ jobs:
20
steps:
21
- uses: actions/checkout@v3
22
- uses: dtolnay/rust-toolchain@stable
23
+
24
+ - name: Create .env file
25
+ run: |
26
+ touch .env
27
+ echo CLI_CLIENT_ID=${{ secrets.CLI_CLIENT_ID }} >> .env
28
+ echo SIGIT_CLIENT_ID=${{ secrets.SIGIT_CLIENT_ID }} >> .env
29
+ echo WEB_CONSOLE_CLIENT_ID=${{ secrets.WEB_CONSOLE_CLIENT_ID }} >> .env
30
+ echo CLI_CLIENT_SECRET=${{ secrets.CLI_CLIENT_SECRET }} >> .env
31
+ echo SIGIT_CLIENT_SECRET=${{ secrets.SIGIT_CLIENT_SECRET }} >> .env
32
+ echo WEB_CONSOLE_CLIENT_SECRET=${{ secrets.WEB_CONSOLE_CLIENT_SECRET }} >> .env
33
+ cat .env
34
+
35
- run: cargo test --all-features
.github/workflows/release-crate.yml
+11
@@ -25,6 +25,17 @@ jobs:
25
- name: Setup Rust toolchain
26
uses: dtolnay/rust-toolchain@stable
27
28
+ - name: Create .env file
29
+ run: |
30
+ touch .env
31
+ echo CLI_CLIENT_ID=${{ secrets.CLI_CLIENT_ID }} >> .env
32
+ echo SIGIT_CLIENT_ID=${{ secrets.SIGIT_CLIENT_ID }} >> .env
33
+ echo WEB_CONSOLE_CLIENT_ID=${{ secrets.WEB_CONSOLE_CLIENT_ID }} >> .env
34
+ echo CLI_CLIENT_SECRET=${{ secrets.CLI_CLIENT_SECRET }} >> .env
35
+ echo SIGIT_CLIENT_SECRET=${{ secrets.SIGIT_CLIENT_SECRET }} >> .env
36
+ echo WEB_CONSOLE_CLIENT_SECRET=${{ secrets.WEB_CONSOLE_CLIENT_SECRET }} >> .env
37
+ cat .env
38
+
39
- name: Publish to crates.io
40
uses: katyo/publish-crates@v2
41
with:
.github/workflows/release-github.yml
+11
@@ -47,6 +47,17 @@ jobs:
47
- name: Setup Cache
48
uses: Swatinem/rust-cache@v2
49
50
+ - name: Create .env file
51
+ run: |
52
+ touch .env
53
+ echo CLI_CLIENT_ID=${{ secrets.CLI_CLIENT_ID }} >> .env
54
+ echo SIGIT_CLIENT_ID=${{ secrets.SIGIT_CLIENT_ID }} >> .env
55
+ echo WEB_CONSOLE_CLIENT_ID=${{ secrets.WEB_CONSOLE_CLIENT_ID }} >> .env
56
+ echo CLI_CLIENT_SECRET=${{ secrets.CLI_CLIENT_SECRET }} >> .env
57
+ echo SIGIT_CLIENT_SECRET=${{ secrets.SIGIT_CLIENT_SECRET }} >> .env
58
+ echo WEB_CONSOLE_CLIENT_SECRET=${{ secrets.WEB_CONSOLE_CLIENT_SECRET }} >> .env
59
+ cat .env
60
+
61
- name: Build Binary
62
run: cargo build --verbose --locked --release --target ${{ matrix.target }}
63
.github/workflows/release-npm.yml
+11
@@ -74,6 +74,17 @@ jobs:
74
targets: ${{ matrix.build.TARGET }}
75
toolchain: ${{ matrix.build.TOOLCHAIN}}
76
77
+ - name: Create .env file
78
+ run: |
79
+ touch .env
80
+ echo CLI_CLIENT_ID=${{ secrets.CLI_CLIENT_ID }} >> .env
81
+ echo SIGIT_CLIENT_ID=${{ secrets.SIGIT_CLIENT_ID }} >> .env
82
+ echo WEB_CONSOLE_CLIENT_ID=${{ secrets.WEB_CONSOLE_CLIENT_ID }} >> .env
83
+ echo CLI_CLIENT_SECRET=${{ secrets.CLI_CLIENT_SECRET }} >> .env
84
+ echo SIGIT_CLIENT_SECRET=${{ secrets.SIGIT_CLIENT_SECRET }} >> .env
85
+ echo WEB_CONSOLE_CLIENT_SECRET=${{ secrets.WEB_CONSOLE_CLIENT_SECRET }} >> .env
86
+ cat .env
87
+
88
- name: Build
89
env:
90
GH_OAUTH_CLIENT_ID: ${{ secrets.GH_OAUTH_CLIENT_ID }}
.gitignore
+3
@@ -3,3 +3,6 @@
3
4
# Editor
5
.zed
6
+
7
+# Secrets
8
+.env
Cargo.lock
+37
-1
@@ -437,6 +437,35 @@ dependencies = [
437
"syn 2.0.110",
438
]
439
440
+[[package]]
441
+name = "dotenv"
442
+version = "0.15.0"
443
+source = "registry+https://github.com/rust-lang/crates.io-index"
444
+checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
445
+
446
+[[package]]
447
+name = "dotenv_codegen"
448
+version = "0.15.0"
449
+source = "registry+https://github.com/rust-lang/crates.io-index"
450
+checksum = "56966279c10e4f8ee8c22123a15ed74e7c8150b658b26c619c53f4a56eb4a8aa"
451
+dependencies = [
452
+ "dotenv_codegen_implementation",
453
+ "proc-macro-hack",
454
+]
455
+
456
+[[package]]
457
+name = "dotenv_codegen_implementation"
458
+version = "0.15.0"
459
+source = "registry+https://github.com/rust-lang/crates.io-index"
460
+checksum = "53e737a3522cd45f6adc19b644ce43ef53e1e9045f2d2de425c1f468abd4cf33"
461
+dependencies = [
462
+ "dotenv",
463
+ "proc-macro-hack",
464
+ "proc-macro2",
465
+ "quote",
466
+ "syn 1.0.109",
467
+]
468
+
469
[[package]]
470
name = "encode_unicode"
471
version = "1.0.0"
@@ -1538,6 +1567,12 @@ dependencies = [
1567
"syn 2.0.110",
1568
]
1569
1570
+[[package]]
1571
+name = "proc-macro-hack"
1572
+version = "0.5.20+deprecated"
1573
+source = "registry+https://github.com/rust-lang/crates.io-index"
1574
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
1575
+
1576
[[package]]
1577
name = "proc-macro2"
1578
version = "1.0.103"
@@ -1599,7 +1634,7 @@ dependencies = [
1634
"once_cell",
1635
"socket2",
1636
"tracing",
1602
- "windows-sys 0.52.0",
1637
+ "windows-sys 0.60.2",
1638
]
1639
1640
[[package]]
@@ -2119,6 +2154,7 @@ dependencies = [
2154
name = "smbcloud-networking"
2155
version = "0.3.27"
2156
dependencies = [
2157
+ "dotenv_codegen",
2158
"smbcloud-network",
2159
"url-builder",
2160
]
crates/smbcloud-networking/.gitignore
new
+1
@@ -0,0 +1 @@
1
+.env
crates/smbcloud-networking/Cargo.toml
+1
@@ -23,3 +23,4 @@ crate-type = ["cdylib", "rlib"]
23
[dependencies]
24
smbcloud-network = { workspace = true }
25
url-builder = { workspace = true }
26
+dotenv_codegen = "0.15"
crates/smbcloud-networking/src/lib.rs
+3
@@ -6,6 +6,9 @@ use {
6
url_builder::URLBuilder,
7
};
8
9
+#[macro_use]
10
+extern crate dotenv_codegen;
11
+
12
pub fn smb_base_url_builder(env: Environment, client: &SmbClient) -> URLBuilder {
13
let mut url_builder = URLBuilder::new();
14
url_builder
crates/smbcloud-networking/src/smb_client.rs
+6
-6
@@ -7,16 +7,16 @@ pub enum SmbClient {
7
impl SmbClient {
8
pub fn id(&self) -> &str {
9
match self {
10
- SmbClient::Cli => "CLI_CLIENT_ID",
11
- SmbClient::Sigit => "SIGIT_CLIENT_ID",
12
- SmbClient::WebConsole => "WEB_CONSOLE_CLIENT_ID",
10
+ SmbClient::Cli => dotenv!("CLI_CLIENT_ID"),
11
+ SmbClient::Sigit => dotenv!("SIGIT_CLIENT_ID"),
12
+ SmbClient::WebConsole => dotenv!("WEB_CONSOLE_CLIENT_ID"),
13
}
14
}
15
pub fn secret(&self) -> &str {
16
match self {
17
- SmbClient::Cli => "CLI_CLIENT_SECRET",
18
- SmbClient::Sigit => "SIGIT_CLIENT_SECRET",
19
- SmbClient::WebConsole => "WEB_CONSOLE_CLIENT_SECRET",
17
+ SmbClient::Cli => dotenv!("CLI_CLIENT_SECRET"),
18
+ SmbClient::Sigit => dotenv!("SIGIT_CLIENT_SECRET"),
19
+ SmbClient::WebConsole => dotenv!("WEB_CONSOLE_CLIENT_SECRET"),
20
}
21
}
22
}