diff options
| author | K900 <me@0upti.me> | 2023-02-01 12:15:04 +0300 |
|---|---|---|
| committer | K900 <me@0upti.me> | 2023-02-01 15:47:19 +0300 |
| commit | deef7819e9863464365bc251c1070708e0925fc0 (patch) | |
| tree | 253d10ccb9177bcbd723b06082ad73150e8d1d7f /scripts/native-utils/src/split_path.rs | |
| parent | 0487b4de4abc076d36325684226ea3bb312b88f8 (diff) | |
feat: use a Rust tool to do the PATH manipulations
Overkill? Yes. Fuck bash? Also yes.
Diffstat (limited to 'scripts/native-utils/src/split_path.rs')
| -rw-r--r-- | scripts/native-utils/src/split_path.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/scripts/native-utils/src/split_path.rs b/scripts/native-utils/src/split_path.rs new file mode 100644 index 0000000..dd10745 --- /dev/null +++ b/scripts/native-utils/src/split_path.rs @@ -0,0 +1,38 @@ +use std::env; + +use clap::Parser; + +#[derive(Parser, Debug)] +struct Args { + #[arg(long)] + automount_root: String, + + #[arg(long)] + include_interop: bool, +} + +fn main() -> anyhow::Result<()> { + let args = Args::parse(); + + let path = env::var("PATH")?; + + let mut native = vec![]; + let mut interop = vec![]; + + for part in path.split(':') { + if part.starts_with(&args.automount_root) { + interop.push(part); + } else { + native.push(part); + } + } + + if args.include_interop { + native.extend(&interop); + }; + + println!("export PATH='{}'", native.join(":")); + println!("export WSLPATH='{}'", interop.join(":")); + + Ok(()) +} |
