pub fn run<I, A>(args: I, bin_name: Option<String>) where
    I: IntoIterator<Item = A>,
    A: Into<OsString> + Clone