From 60f23099bac85492e0587d643416215ed0b071a3 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Fri, 3 Jul 2020 09:38:32 +0200 Subject: pkgs/profpatsch: move record-get to netencode --- pkgs/profpatsch/profpatsch.de/record-get.rs | 56 ----------------------------- 1 file changed, 56 deletions(-) delete mode 100644 pkgs/profpatsch/profpatsch.de/record-get.rs (limited to 'pkgs/profpatsch/profpatsch.de') diff --git a/pkgs/profpatsch/profpatsch.de/record-get.rs b/pkgs/profpatsch/profpatsch.de/record-get.rs deleted file mode 100644 index bf4db3dd..00000000 --- a/pkgs/profpatsch/profpatsch.de/record-get.rs +++ /dev/null @@ -1,56 +0,0 @@ -extern crate netencode; -extern crate el_semicolon; -extern crate el_exec; - -use std::io::Read; -use std::ffi::{CString, OsStr}; -use std::os::unix::ffi::{OsStringExt, OsStrExt}; -use el_semicolon::{el_semicolon, Arg}; -use netencode::{U}; -use netencode::parse::{u_u}; - -fn main() { - let args = std::env::args_os().by_ref() - .map(|s| s.into_vec()) - .skip(1) - .collect::>(); - let args_ref : Vec<&[u8]> = args.iter().map(|v| v.as_slice()).collect(); - let (arg, prog) = el_semicolon::el_semicolon(&args_ref).unwrap(); - assert!(prog.len() > 0, "record get neets a block of vars and prog, no prog provided"); - match arg { - Arg::EndOfArgv | Arg::Arg(_) => { - panic!("first argument must be a block of vars"); - }, - Arg::Block(vars) => { - let mut stdin = vec![]; - std::io::stdin().read_to_end(&mut stdin); - match u_u(&stdin) { - Ok((_, U::Record(m))) => { - for (key, val) in m.into_iter() { - // only set if it appears in the block of values. - // If the block is empty, don’t filter. - if vars.is_empty() || vars.contains(&key.as_bytes()) { - match *val { - U::Binary(b) => std::env::set_var(key, OsStr::from_bytes(b)), - _ => panic!("the value of {:?} was not a binary value!", key) - } - } - } - let mut p : Vec = vec![]; - for arg in prog { - p.push(CString::new(*arg).unwrap()); - } - el_exec::xpathexec0(&p); - }, - Ok(_) => { - eprintln!("not a record!"); - std::process::exit(100); - } - Err(e) => { - eprintln!("could not parse netencode: {:?}", e); - std::process::exit(100); - }, - } - } - } -} -- cgit 1.4.1