Compare commits
	
		
			2 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 82a941eee3 | |||
| e674027b3e | 
							
								
								
									
										7
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								Makefile
									
									
									
									
									
								
							| @ -103,6 +103,13 @@ scrut: build/bin/scrut | ||||
| build/bin/scrut: src/scrut.c build | ||||
| 	$(CC) $(CFLAGS) -o $@ src/scrut.c | ||||
| 
 | ||||
| .PHONY: sleep | ||||
| sleep: build/bin/sleep | ||||
| build/bin/sleep: src/sleep.rs build | ||||
| 	$(RUSTC) $(RUSTFLAGS) | ||||
| 		--extern sysexits=build/o/libsysexits.rlib \
 | ||||
| 		-o $@ src/sleep.rs | ||||
| 
 | ||||
| .PHONY: str | ||||
| str: build/bin/str | ||||
| build/bin/str: src/str.c build | ||||
|  | ||||
							
								
								
									
										47
									
								
								src/sleep.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/sleep.rs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,47 @@ | ||||
| /* | ||||
|  * Copyright (c) 2024 DTB <trinity@trinity.moe> | ||||
|  * SPDX-License-Identifier: AGPL-3.0-or-later | ||||
|  * | ||||
|  * This program is free software: you can redistribute it and/or modify it under | ||||
|  * the terms of the GNU Affero General Public License as published by the Free | ||||
|  * Software Foundation, either version 3 of the License, or (at your option) any | ||||
|  * later version. | ||||
|  * | ||||
|  * This program 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 Affero General Public License for more | ||||
|  * details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Affero General Public License | ||||
|  * along with this program. If not, see https://www.gnu.org/licenses/.
 | ||||
|  */ | ||||
| 
 | ||||
| use std::{ | ||||
| 	env::args, | ||||
| 	process::ExitCode, | ||||
| 	thread::sleep, | ||||
| 	time::Duration | ||||
| }; | ||||
| 
 | ||||
| extern crate sysexits; | ||||
| use sysexits::{EX_OK, EX_USAGE}; | ||||
| 
 | ||||
| fn usage(s: &str) -> ExitCode { | ||||
| 	eprintln!("Usage: {} [seconds]", s); | ||||
| 	ExitCode::from(EX_USAGE as u8) | ||||
| } | ||||
| 
 | ||||
| fn main() -> ExitCode { | ||||
| 	let argv = args().collect::<Vec<String>>(); | ||||
| 
 | ||||
| 	if argv.len() == 2 { | ||||
| 		if let Ok(s) = argv[1].parse::<u64>() { | ||||
| 			sleep(Duration::from_secs(s)); | ||||
| 			ExitCode::from(EX_OK as u8) | ||||
| 		} else { | ||||
| 			usage(&argv[0]) | ||||
| 		} | ||||
| 	} else { | ||||
| 		usage(&argv[0]) | ||||
| 	} | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user