From d5bf6a6c8c35688870bc1f64eb997b2a7a437268 Mon Sep 17 00:00:00 2001
From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com>
Date: Fri, 15 Dec 2023 13:40:25 +0100
Subject: [PATCH] Add chocolatey and snapcraft packages
---
choco/Arp-Scanner/ReadMe.md | 133 ++++++++++++++++++
choco/Arp-Scanner/arp-scanner.nuspec | 117 +++++++++++++++
choco/Arp-Scanner/tools/LICENSE.txt | 25 ++++
choco/Arp-Scanner/tools/VERIFICATION.txt | 6 +
pacakge/snap/snapcraft.yaml | 30 ++++
ARP-Scanner.sln => src/ARP-Scanner.sln | 0
.../ARP-Scanner}/ARP-Scanner.csproj | 0
.../ARP-Scanner}/MacVendorLookup.cs | 0
{ARP-Scanner => src/ARP-Scanner}/Program.cs | 0
.../Properties/launchSettings.json | 0
.../ARP-Scanner}/mac-vendors.csv | 0
11 files changed, 311 insertions(+)
create mode 100644 choco/Arp-Scanner/ReadMe.md
create mode 100644 choco/Arp-Scanner/arp-scanner.nuspec
create mode 100644 choco/Arp-Scanner/tools/LICENSE.txt
create mode 100644 choco/Arp-Scanner/tools/VERIFICATION.txt
create mode 100644 pacakge/snap/snapcraft.yaml
rename ARP-Scanner.sln => src/ARP-Scanner.sln (100%)
rename {ARP-Scanner => src/ARP-Scanner}/ARP-Scanner.csproj (100%)
rename {ARP-Scanner => src/ARP-Scanner}/MacVendorLookup.cs (100%)
rename {ARP-Scanner => src/ARP-Scanner}/Program.cs (100%)
rename {ARP-Scanner => src/ARP-Scanner}/Properties/launchSettings.json (100%)
rename {ARP-Scanner => src/ARP-Scanner}/mac-vendors.csv (100%)
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 `` 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ arp-scanner
+
+
+
+ 0.2.0.0
+
+
+
+
+
+
+
+ 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