From 121f6d6417bbc8dc7a97549dc68348c63874e94e Mon Sep 17 00:00:00 2001 From: Random936 Date: Sun, 22 Sep 2024 18:30:57 -0700 Subject: [PATCH] Added skeleton; works as basic up alias --- .gitignore | 1 + Cargo.lock | 99 ++++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 9 +++++ src/argparse.rs | 0 src/config.rs | 0 src/download.rs | 0 src/main.rs | 8 ++++ src/print_dir.rs | 27 +++++++++++++ src/shells.rs | 0 src/upload.rs | 0 10 files changed, 144 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 src/argparse.rs create mode 100644 src/config.rs create mode 100644 src/download.rs create mode 100644 src/main.rs create mode 100644 src/print_dir.rs create mode 100644 src/shells.rs create mode 100644 src/upload.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..3b87208 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,99 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "if-addrs" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a78a89907582615b19f6f0da1af18abf6ff08be259395669b834b057a7ee92d8" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "libc" +version = "0.2.158" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" + +[[package]] +name = "up" +version = "0.1.0" +dependencies = [ + "if-addrs", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..8f43baa --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "up" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +if-addrs = "0.13.3" diff --git a/src/argparse.rs b/src/argparse.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/download.rs b/src/download.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..8eef529 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,8 @@ +use std::env; + +mod print_dir; + +fn main() { + let cwd = env::current_dir().unwrap(); + print_dir::print_all_interface(cwd); +} diff --git a/src/print_dir.rs b/src/print_dir.rs new file mode 100644 index 0000000..96c0f39 --- /dev/null +++ b/src/print_dir.rs @@ -0,0 +1,27 @@ +use std::{fs, io}; +use std::path::Path; +use if_addrs::{Interface, get_if_addrs}; + +pub fn print_single_interface>(iface: Interface, path: P) -> io::Result<()> { + for entry in fs::read_dir(path)? { + let entry = entry?; + let entry_path = entry.path(); + if entry_path.is_dir() { continue } + + let filename = entry_path.file_name().unwrap(); + + println!("http://{}/{}", iface.ip(), filename.to_str().unwrap()); + } + + Ok(()) +} + +pub fn print_all_interface>(path: P) { + for iface in get_if_addrs().unwrap() { + if iface.is_loopback() { + continue + } + + print_single_interface(iface, &path).unwrap(); + } +} diff --git a/src/shells.rs b/src/shells.rs new file mode 100644 index 0000000..e69de29 diff --git a/src/upload.rs b/src/upload.rs new file mode 100644 index 0000000..e69de29