diff --git a/Cargo.lock b/Cargo.lock index 981fe35..7810f53 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1269,7 +1269,7 @@ checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" [[package]] name = "unimap" -version = "0.3.0" +version = "0.4.0" dependencies = [ "atty", "chrono", diff --git a/Cargo.toml b/Cargo.toml index f04a816..73136ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "unimap" -version = "0.3.0" +version = "0.4.0" authors = ["Eduard Tolosa "] edition = "2018" description = "Scan only once by IP address and reduce scan times with Nmap for large amounts of data." diff --git a/builder.sh b/builder.sh new file mode 100755 index 0000000..8c386b8 --- /dev/null +++ b/builder.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash +# Rusolver releaser +NAME="unimap" + +LINUX_TARGET="x86_64-unknown-linux-musl" +WIN_TARGET="x86_64-pc-windows-gnu" +ARMV7_TARGET="armv7-unknown-linux-gnueabihf" +AARCH_TARGET="aarch64-unknown-linux-gnu" +OSX_TARGET="x86_64-apple-darwin" +MANPAGE_DIR="./$NAME.1" + +# Linux build +echo "Building Linux artifact." +if cargo build -q --release --target="$LINUX_TARGET"; then + echo "Linux artifact build: SUCCESS" + cp "target/$LINUX_TARGET/release/$NAME" "target/$LINUX_TARGET/release/$NAME-linux" +else + echo "Linux artifact build: FAILED" +fi + +# Windows build +echo "Building Windows artifact." +if cross build -q --release --target="$WIN_TARGET"; then + echo "Windows artifact build: SUCCESS" + cp "target/$WIN_TARGET/release/$NAME.exe" "target/$WIN_TARGET/release/$NAME-windows.exe" +else + echo "Windows artifact build: FAILED" +fi + +# ARMV7 build +echo "Building ARMv7 artifact." +if cross build -q --release --target="$ARMV7_TARGET"; then + echo "ARMv7 artifact build: SUCCESS" + cp "target/$ARMV7_TARGET/release/$NAME" "target/$ARMV7_TARGET/release/$NAME-armv7" +else + echo "ARMv7 artifact build: FAILED" +fi + +# Aarch64 build +echo "Building Aarch64 artifact." +if cross build -q --release --target="$AARCH_TARGET"; then + echo "Aarch64 artifact build: SUCCESS" + cp "target/$AARCH_TARGET/release/$NAME" "target/$AARCH_TARGET/release/$NAME-aarch64" +else + echo "Aarch64 artifact build: FAILED" +fi + +# Mac OS build +echo "Building OSX artifact." +if CC=o64-clang CXX=o64-clang++ LIBZ_SYS_STATIC=1 cargo build -q --release --target="$OSX_TARGET"; then + echo "OSX artifact build: SUCCESS" + cp "target/$OSX_TARGET/release/$NAME" "target/$OSX_TARGET/release/$NAME-osx" +else + echo "OSX artifact build: FAILED" +fi + +echo "Creating manpage..." +if command -v help2man >/dev/null; then + if help2man -o "$MANPAGE_DIR" "target/$LINUX_TARGET/release/$NAME"; then + echo "Manpage created sucessfully and saved in $MANPAGE_DIR" + else + echo "Error creating manpage." + fi +else + echo "Please install the help2man package." +fi + +if command -v git >/dev/null; then + git add . + git commit -m "Bump version." + git push +fi + +#echo "Uploading crate to crates.io..." +#if cargo publish --no-verify > /dev/null; then +# echo "Crate uploaded." +#else +# echo "An error has occurred while uploading the crate to crates.io." +# exit +#fi + +echo "All builds have passed!" diff --git a/unimap.1 b/unimap.1 new file mode 100644 index 0000000..9e11d0a --- /dev/null +++ b/unimap.1 @@ -0,0 +1,78 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.3. +.TH UNIMAP "1" "May 2021" "Unimap 0.4.0" "User Commands" +.SH NAME +Unimap \- manual page for Unimap 0.4.0 +.SH DESCRIPTION +Unimap 0.4.0 +Eduard Tolosa +Scan only once by IP address and reduce scan times with Nmap for large amounts of data. +.SS "USAGE:" +.IP +unimap [FLAGS] [OPTIONS] +.SS "FLAGS:" +.TP +\fB\-\-fast\-scan\fR +Use fast scanning for ports (no version detection). +.TP +\fB\-h\fR, \fB\-\-help\fR +Prints help information +.TP +\fB\-k\fR, \fB\-\-no\-keep\-nmap\-logs\fR +Keep Nmap XML files created in the logs/ folder for every scanned IP. This data will be +useful for other tasks. +.TP +\fB\-o\fR, \fB\-\-output\fR +Write to an output file. The name of the output file will be unimap\-log\-date. +.TP +\fB\-q\fR, \fB\-\-quiet\fR +Remove informative messages. +.TP +\fB\-r\fR, \fB\-\-raw\-output\fR +Use raw output instead of a table. +.TP +\fB\-\-url\-output\fR +Use HOST:IP output format. +.TP +\fB\-V\fR, \fB\-\-version\fR +Prints version information +.SS "OPTIONS:" +.TP +\fB\-\-resolvers\fR ... +Path to a file (or files) containing a list of DNS IP address. If no +specified then 1.6k of built\-in valid DNS servers from public\-dns.info are +used. +.TP +\fB\-f\fR, \fB\-\-file\fR ... +Use a list of targets writen in a file as input. +.TP +\fB\-\-logs\-dir\fR +Path to save the CSV data of the process and/or Nmap XML files. Default to +logs/. +.TP +\fB\-\-min\-rate\fR +Nmap \fB\-\-min\-rate\fR value for ports scan. +.TP +\fB\-\-ports\fR +Ports to scan. You can specify a range of ports, a list, or both. Put them +inside double quotes, for example: "22, 80, 443, 1000\-5000" +.TP +\fB\-t\fR, \fB\-\-target\fR +Target host. +.TP +\fB\-\-threads\fR +Number of threads to use to perform the resolution. +.TP +\fB\-u\fR, \fB\-\-unique\-output\fR +Write the output in CSV format to the specified filename. +.SH "SEE ALSO" +The full documentation for +.B Unimap +is maintained as a Texinfo manual. If the +.B info +and +.B Unimap +programs are properly installed at your site, the command +.IP +.B info Unimap +.PP +should give you access to the complete manual.