diff --git a/src/entry/mod.rs b/src/entry/mod.rs index b9d6444..5414639 100644 --- a/src/entry/mod.rs +++ b/src/entry/mod.rs @@ -1,3 +1,53 @@ +/* + * Copyright (c) 2023 Emma Tebibyte + * SPDX-License-Identifier: LGPL-3.0-or-later + * + * This file is part of yacexits. + * + * Yacexits is free software: you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free + * Software Foundation, either version 3 of the License, or (at your option) any + * later version. + * + * Yacexits is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with yacexits. If not, see . + * + * This file incorporates work covered by the following copyright and permission + * notice: + * + * Copyright 2023 Douman + * + * Boost Software License - Version 1.0 - August 17th, 2003 + * + * Permission is hereby granted, free of charge, to any person or + * organization obtaining a copy of the software and accompanying + * documentation covered by this license (the "Software") to use, reproduce, + * display, distribute, execute, and transmit the Software, and to prepare + * derivative works of the Software, and to permit third-parties to whom the + * Software is furnished to do so, all subject to the following: + * + * The copyright notices in the Software and this entire statement, + * including the above license grant, this restriction and the following + * disclaimer, must be included in all copies of the Software, in whole or + * in part, and all derivative works of the Software, unless such copies or + * derivative works are solely in the form of machine-executable object code + * generated by a source language processor. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND + * NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE + * DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, + * WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + mod args; mod errors; pub use args::Args; diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..77d7151 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,14 @@ +#![no_main] + +use yacexits::*; + +#[no_mangle] +fn rust_main(args: Args,) -> Result { + let argv = args.into_iter().collect::>(); + for (i, arg) in argv.iter().enumerate() { + println!("argv[{}]: {}", i, arg) + } + let (message, code) = ("bingus".to_string(), EX_USAGE); + let error = YacError { message, code }; + Err(<(String, u32)>::from(error)) +}