hug: initial implementation
This commit is contained in:
parent
bf3e86a5df
commit
43d5cbd4aa
4 changed files with 50 additions and 0 deletions
|
@ -13,6 +13,10 @@ Gets Windows environment variables from DOS.
|
|||
A hacked-together utility for sending WSL variables back to Windows
|
||||
shells. The utility runs in WSL, and companion scripts run in Windows.
|
||||
|
||||
## `hug`
|
||||
|
||||
A wrapper for turning binary-output text into normal text.
|
||||
|
||||
## `mkwin`
|
||||
|
||||
A Linux utility to quickly make a bash script to run a Windows executable with
|
||||
|
|
2
hug/.gitignore
vendored
Normal file
2
hug/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/target
|
||||
Cargo.lock
|
13
hug/Cargo.toml
Normal file
13
hug/Cargo.toml
Normal file
|
@ -0,0 +1,13 @@
|
|||
[package]
|
||||
name = "hug"
|
||||
version = "0.0.1"
|
||||
edition = "2021"
|
||||
|
||||
[profile.release]
|
||||
opt-level = 's'
|
||||
codegen-units = 1
|
||||
debug = false
|
||||
lto = true
|
||||
panic = "abort"
|
||||
strip = "symbols"
|
||||
|
31
hug/src/main.rs
Normal file
31
hug/src/main.rs
Normal file
|
@ -0,0 +1,31 @@
|
|||
use std::{
|
||||
env, net::ToSocketAddrs, process::{ Command, Stdio }
|
||||
};
|
||||
|
||||
fn main() {
|
||||
let mut args: Vec<String> = env::args().collect();
|
||||
args.remove(0);
|
||||
|
||||
let target = args.remove(0);
|
||||
let command = Command::new(target)
|
||||
.args(args)
|
||||
.stderr(Stdio::inherit())
|
||||
.output();
|
||||
if let Ok(output) = command {
|
||||
let mut line = String::new();
|
||||
for byte in output.stdout {
|
||||
match char::from_u32(byte.into()) {
|
||||
Some('\n') => {
|
||||
println!("{line}");
|
||||
line = String::new();
|
||||
},
|
||||
|
||||
Some('\0') |
|
||||
None => continue,
|
||||
|
||||
Some(c) => line.push(c),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue