diff --git a/choco/Arp-Scanner/ReadMe.md b/choco/Arp-Scanner/ReadMe.md new file mode 100644 index 0000000..3c09236 --- /dev/null +++ b/choco/Arp-Scanner/ReadMe.md @@ -0,0 +1,133 @@ +## Summary +How do I create packages? See https://docs.chocolatey.org/en-us/create/create-packages + +If you are submitting packages to the community feed (https://community.chocolatey.org) +always try to ensure you have read, understood and adhere to the create +packages wiki link above. + +## Automatic Packaging Updates? +Consider making this package an automatic package, for the best +maintainability over time. Read up at https://docs.chocolatey.org/en-us/create/automatic-packages + +## Shim Generation +Any executables you include in the package or download (but don't call +install against using the built-in functions) will be automatically shimmed. + +This means those executables will automatically be included on the path. +Shim generation runs whether the package is self-contained or uses automation +scripts. + +By default, these are considered console applications. + +If the application is a GUI, you should create an empty file next to the exe +named 'name.exe.gui' e.g. 'bob.exe' would need a file named 'bob.exe.gui'. +See https://docs.chocolatey.org/en-us/create/create-packages#how-do-i-set-up-shims-for-applications-that-have-a-gui + +If you want to ignore the executable, create an empty file next to the exe +named 'name.exe.ignore' e.g. 'bob.exe' would need a file named +'bob.exe.ignore'. +See https://docs.chocolatey.org/en-us/create/create-packages#how-do-i-exclude-executables-from-getting-shims + +## Self-Contained? +If you have a self-contained package, you can remove the automation scripts +entirely and just include the executables, they will automatically get shimmed, +which puts them on the path. Ensure you have the legal right to distribute +the application though. See https://docs.chocolatey.org/en-us/information/legal. + +You should read up on the Shim Generation section to familiarize yourself +on what to do with GUI applications and/or ignoring shims. + +## Automation Scripts +You have a powerful use of Chocolatey, as you are using PowerShell. So you +can do just about anything you need. Choco has some very handy built-in +functions that you can use, these are sometimes called the helpers. + +### Built-In Functions +https://docs.chocolatey.org/en-us/create/functions + +A note about a couple: +* Get-ToolsLocation - used to get you the 'tools' root, which by default is set to 'c:\tools', not the chocolateyInstall bin folder - see https://docs.chocolatey.org/en-us/create/functions/get-toolslocation +* Install-BinFile - used for non-exe files - executables are automatically shimmed... - see https://docs.chocolatey.org/en-us/create/functions/install-binfile +* Uninstall-BinFile - used for non-exe files - executables are automatically shimmed - see https://docs.chocolatey.org/en-us/create/functions/uninstall-binfile + +### Getting package specific information +Use the package parameters pattern - see https://docs.chocolatey.org/en-us/guides/create/parse-packageparameters-argument + +### Need to mount an ISO? +https://docs.chocolatey.org/en-us/guides/create/mount-an-iso-in-chocolatey-package + +### Environment Variables +Chocolatey makes a number of environment variables available (You can access any of these with $env:TheVariableNameBelow): + + * TEMP/TMP - Overridden to the CacheLocation, but may be the same as the original TEMP folder + * ChocolateyInstall - Top level folder where Chocolatey is installed + * ChocolateyPackageName - The name of the package, equivalent to the `` field in the nuspec + * ChocolateyPackageTitle - The title of the package, equivalent to the `` field in the nuspec + * ChocolateyPackageVersion - The normalized version of the package, equivalent to a normalized edition of the `<version />` field in the nuspec + * ChocolateyPackageFolder - The top level location of the package folder - the folder where Chocolatey has downloaded and extracted the NuGet package, typically `C:\ProgramData\chocolatey\lib\packageName`. + +#### Advanced Environment Variables +The following are more advanced settings: + + * ChocolateyPackageParameters - Parameters to use with packaging, not the same as install arguments (which are passed directly to the native installer). Based on `--package-parameters`. + * CHOCOLATEY_VERSION - The version of Choco you normally see. Use if you are 'lighting' things up based on choco version. Otherwise take a dependency on the specific version you need. + * ChocolateyForceX86 = If available and set to 'true', then user has requested 32bit version. Automatically handled in built in Choco functions. + * OS_PLATFORM - Like Windows, macOS, Linux. + * OS_VERSION - The version of OS, like 10.0 something something for Windows. + * OS_NAME - The reported name of the OS. + * USER_NAME = The user name + * USER_DOMAIN = The user domain name (could also be local computer name) + * IS_PROCESSELEVATED = Is the process elevated? + * IS_SYSTEM = Is the user the system account? + * IS_REMOTEDESKTOP = Is the user in a terminal services session? + * ChocolateyToolsLocation - formerly 'ChocolateyBinRoot' ('ChocolateyBinRoot' will be removed with Chocolatey v2.0.0), this is where tools being installed outside of Chocolatey packaging will go. + +#### Set By Options and Configuration +Some environment variables are set based on options that are passed, configuration and/or features that are turned on: + + * ChocolateyEnvironmentDebug - Was `--debug` passed? If using the built-in PowerShell host, this is always true (but only logs debug messages to console if `--debug` was passed) + * ChocolateyEnvironmentVerbose - Was `--verbose` passed? If using the built-in PowerShell host, this is always true (but only logs verbose messages to console if `--verbose` was passed). + * ChocolateyExitOnRebootDetected - Are we exiting on a detected reboot? Set by ` --exit-when-reboot-detected` or the feature `exitOnRebootDetected` + * ChocolateyForce - Was `--force` passed? + * ChocolateyForceX86 - Was `-x86` passed? + * ChocolateyRequestTimeout - How long before a web request will time out. Set by config `webRequestTimeoutSeconds` + * ChocolateyResponseTimeout - How long to wait for a download to complete? Set by config `commandExecutionTimeoutSeconds` + * ChocolateyPowerShellHost - Are we using the built-in PowerShell host? Set by `--use-system-powershell` or the feature `powershellHost` + +#### Business Edition Variables + + * ChocolateyInstallArgumentsSensitive - Encrypted arguments passed from command line `--install-arguments-sensitive` that are not logged anywhere. + * ChocolateyPackageParametersSensitive - Package parameters passed from command line `--package-parameters-sensitive` that are not logged anywhere. + * ChocolateyLicensedVersion - What version is the licensed edition on? + * ChocolateyLicenseType - What edition / type of the licensed edition is installed? + * USER_CONTEXT - The original user context - different when self-service is used (Licensed) + +#### Experimental Environment Variables +The following are experimental or use not recommended: + + * OS_IS64BIT = This may not return correctly - it may depend on the process the app is running under + * CHOCOLATEY_VERSION_PRODUCT = the version of Choco that may match CHOCOLATEY_VERSION but may be different - based on git describe + * IS_ADMIN = Is the user an administrator? But doesn't tell you if the process is elevated. + * IS_REMOTE = Is the user in a remote session? + +#### Not Useful Or Anti-Pattern If Used + + * ChocolateyInstallOverride = Not for use in package automation scripts. Based on `--override-arguments` being passed. + * ChocolateyInstallArguments = The installer arguments meant for the native installer. You should use chocolateyPackageParameters instead. Based on `--install-arguments` being passed. + * ChocolateyIgnoreChecksums - Was `--ignore-checksums` passed or the feature `checksumFiles` turned off? + * ChocolateyAllowEmptyChecksums - Was `--allow-empty-checksums` passed or the feature `allowEmptyChecksums` turned on? + * ChocolateyAllowEmptyChecksumsSecure - Was `--allow-empty-checksums-secure` passed or the feature `allowEmptyChecksumsSecure` turned on? + * ChocolateyChecksum32 - Was `--download-checksum` passed? + * ChocolateyChecksumType32 - Was `--download-checksum-type` passed? + * ChocolateyChecksum64 - Was `--download-checksum-x64` passed? + * ChocolateyChecksumType64 - Was `--download-checksum-type-x64` passed? + * ChocolateyPackageExitCode - The exit code of the script that just ran - usually set by `Set-PowerShellExitCode` + * ChocolateyLastPathUpdate - Set by Chocolatey as part of install, but not used for anything in particular in packaging. + * ChocolateyProxyLocation - The explicit proxy location as set in the configuration `proxy` + * ChocolateyDownloadCache - Use available download cache? Set by `--skip-download-cache`, `--use-download-cache`, or feature `downloadCache` + * ChocolateyProxyBypassList - Explicitly set locations to ignore in configuration `proxyBypassList` + * ChocolateyProxyBypassOnLocal - Should the proxy bypass on local connections? Set based on configuration `proxyBypassOnLocal` + * http_proxy - Set by original `http_proxy` passthrough, or same as `ChocolateyProxyLocation` if explicitly set. + * https_proxy - Set by original `https_proxy` passthrough, or same as `ChocolateyProxyLocation` if explicitly set. + * no_proxy- Set by original `no_proxy` passthrough, or same as `ChocolateyProxyBypassList` if explicitly set. + diff --git a/choco/Arp-Scanner/arp-scanner.nuspec b/choco/Arp-Scanner/arp-scanner.nuspec new file mode 100644 index 0000000..6192416 --- /dev/null +++ b/choco/Arp-Scanner/arp-scanner.nuspec @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Read this before creating packages: https://docs.chocolatey.org/en-us/create/create-packages --> +<!-- It is especially important to read the above link to understand additional requirements when +publishing packages to the community feed aka dot org (https://community.chocolatey.org/packages). --> + +<!-- Test your packages in a test environment: +https://github.com/chocolatey/chocolatey-test-environment --> + +<!-- +This is a nuspec. It mostly adheres to https://docs.nuget.org/create/Nuspec-Reference. Chocolatey +uses a special version of NuGet.Core that allows us to do more than was initially possible. As such +there are certain things to be aware of: + +* the package xmlns schema url may cause issues with nuget.exe +* Any of the following elements can ONLY be used by choco tools - projectSourceUrl, docsUrl, +mailingListUrl, bugTrackerUrl, packageSourceUrl, provides, conflicts, replaces +* nuget.exe can still install packages with those elements but they are ignored. Any authoring +tools or commands will error on those elements +--> + +<!-- You can embed software files directly into packages, as long as you are not bound by +distribution rights. --> +<!-- * If you are an organization making private packages, you probably have no issues here --> +<!-- * If you are releasing to the community feed, you need to consider distribution rights. --> +<!-- Do not remove this test for UTF-8: if “Ω” doesn’t appear as greek uppercase omega letter +enclosed in quotation marks, you should use an editor that supports UTF-8, not this one. --> +<package xmlns="http://schemas.microsoft.com/packaging/2015/06/nuspec.xsd"> + <metadata> + <!-- == PACKAGE SPECIFIC SECTION == --> + <!-- This section is about this package, although id and version have ties back to the software --> + <!-- id is lowercase and if you want a good separator for words, use '-', not '.'. Dots are only + acceptable as suffixes for certain types of packages, e.g. .install, .portable, .extension, + .template --> + <!-- If the software is cross-platform, attempt to use the same id as the debian/rpm package(s) + if possible. --> + <id>arp-scanner</id> + <!-- version should MATCH as closely as possible with the underlying software --> + <!-- Is the version a prerelease of a version? + https://docs.nuget.org/create/versioning#creating-prerelease-packages --> + <!-- Note that unstable versions like 0.0.1 can be considered a released version, but it's + possible that one can release a 0.0.1-beta before you release a 0.0.1 version. If the version + number is final, that is considered a released version and not a prerelease. --> + <version>0.2.0.0</version> + <!-- <packageSourceUrl>Where is this Chocolatey package located (think GitHub)? packageSourceUrl + is highly recommended for the community feed</packageSourceUrl>--> + <!-- owners is a poor name for maintainers of the package. It sticks around by this name for + compatibility reasons. It basically means you. --> + <!--<owners>__REPLACE_YOUR_NAME__</owners>--> + <!-- ============================== --> + + <!-- == SOFTWARE SPECIFIC SECTION == --> + <!-- This section is about the software itself --> + <title>Arp-Scanner (Install) + Stone_Red + + https://github.com/Stone-Red-Code/Arp-Scanner + + + + + + https://github.com/Stone-Red-Code/ARP-Scanner/blob/main/LICENSE + true + https://github.com/Stone-Red-Code/Arp-Scanner + + + + arp-scanner arp p2p fiel-transfer + A lightweight cross-platform IP scanner + + **Usage** + + 1. Download the latest release + 1. Start `ARP-Scanner.exe` or `ARP-Scanner` on Linux with the IP range it should scan as + parameter + + Note: This program may not work on all Linux distributions because the ArpLookup library has + some limitations (https://github.com/georg-jung/ArpLookup#supported-platforms) + + **Third party licenses** + - ArpLookup (https://github.com/georg-jung/ArpLookup) - MIT + (https://github.com/georg-jung/ArpLookup/blob/master/LICENSE.txt) + - IPAddressRange (https://github.com/jsakamoto/ipaddressrange) - MPL-2.0 + (https://github.com/jsakamoto/ipaddressrange/blob/master/LICENSE) + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/choco/Arp-Scanner/tools/LICENSE.txt b/choco/Arp-Scanner/tools/LICENSE.txt new file mode 100644 index 0000000..127aaef --- /dev/null +++ b/choco/Arp-Scanner/tools/LICENSE.txt @@ -0,0 +1,25 @@ +From: https://github.com/Stone-Red-Code/ARP-Scanner + +LICENSE + +MIT License + +Copyright (c) 2021 Stone_Red + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +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 AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/choco/Arp-Scanner/tools/VERIFICATION.txt b/choco/Arp-Scanner/tools/VERIFICATION.txt new file mode 100644 index 0000000..84fad45 --- /dev/null +++ b/choco/Arp-Scanner/tools/VERIFICATION.txt @@ -0,0 +1,6 @@ +VERIFICATION +Verification is intended to assist the Chocolatey moderators and community +in verifying that this package's contents are trustworthy. + + + \ No newline at end of file diff --git a/pacakge/snap/snapcraft.yaml b/pacakge/snap/snapcraft.yaml new file mode 100644 index 0000000..36b3d97 --- /dev/null +++ b/pacakge/snap/snapcraft.yaml @@ -0,0 +1,30 @@ +name: arp-scanner # you probably want to 'snapcraft register ' +version: "0.2.0.0" # just for humans, typically '1.2+git' or '1.3.2' +grade: devel # must be 'stable' to release into candidate/stable channels +summary: A lightweight cross-platform IP scanner # 79 char long summary +description: | + A lightweight cross-platform IP scanner + +base: core22 # the base snap is the execution environment for this snap + +architectures: + - build-on: amd64 + - build-on: arm64 + +confinement: devmode # use 'strict' once you have the right plugs and slots + +parts: + whatime: + # See 'snapcraft plugins' + plugin: dotnet + dotnet-build-configuration: Release + dotnet-self-contained-runtime-identifier: linux-x64 + source: . + build-packages: + - dotnet-sdk-8.0 + stage-packages: + - libicu70 + +apps: + whatime: + command: arp-scanner diff --git a/ARP-Scanner.sln b/src/ARP-Scanner.sln similarity index 100% rename from ARP-Scanner.sln rename to src/ARP-Scanner.sln diff --git a/ARP-Scanner/ARP-Scanner.csproj b/src/ARP-Scanner/ARP-Scanner.csproj similarity index 100% rename from ARP-Scanner/ARP-Scanner.csproj rename to src/ARP-Scanner/ARP-Scanner.csproj diff --git a/ARP-Scanner/MacVendorLookup.cs b/src/ARP-Scanner/MacVendorLookup.cs similarity index 100% rename from ARP-Scanner/MacVendorLookup.cs rename to src/ARP-Scanner/MacVendorLookup.cs diff --git a/ARP-Scanner/Program.cs b/src/ARP-Scanner/Program.cs similarity index 100% rename from ARP-Scanner/Program.cs rename to src/ARP-Scanner/Program.cs diff --git a/ARP-Scanner/Properties/launchSettings.json b/src/ARP-Scanner/Properties/launchSettings.json similarity index 100% rename from ARP-Scanner/Properties/launchSettings.json rename to src/ARP-Scanner/Properties/launchSettings.json diff --git a/ARP-Scanner/mac-vendors.csv b/src/ARP-Scanner/mac-vendors.csv similarity index 100% rename from ARP-Scanner/mac-vendors.csv rename to src/ARP-Scanner/mac-vendors.csv