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 | build/bin/scrut: src/scrut.c build | ||||||
| 	$(CC) $(CFLAGS) -o $@ src/scrut.c | 	$(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 | .PHONY: str | ||||||
| str: build/bin/str | str: build/bin/str | ||||||
| build/bin/str: src/str.c build | 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