Downloads:
12
Downloads of v 0.1.0-prerelease:
12
Last Update:
29 Jul 2025
Package Maintainer(s):
Software Author(s):
- Garvey k. Snow
Tags:
zypline
This is a prerelease version of zypline.
- 1
- 2
- 3
0.1.0-prerelease | Updated: 29 Jul 2025
Downloads:
12
Downloads of v 0.1.0-prerelease:
12
Maintainer(s):
Software Author(s):
- Garvey k. Snow
zypline 0.1.0-prerelease
This is a prerelease version of zypline.
Legal Disclaimer: Neither this package nor Chocolatey Software, Inc. are affiliated with or endorsed by Garvey k. Snow. The inclusion of Garvey k. Snow trademark(s), if any, upon this webpage is solely to identify Garvey k. Snow goods or services and not for commercial purposes.
- 1
- 2
- 3
All Checks are Passing
3 Passing Tests
Deployment Method: Individual Install, Upgrade, & Uninstall
To install zypline, run the following command from the command line or from PowerShell:
To upgrade zypline, run the following command from the command line or from PowerShell:
To uninstall zypline, run the following command from the command line or from PowerShell:
Deployment Method:
This applies to both open source and commercial editions of Chocolatey.
1. Enter Your Internal Repository Url
(this should look similar to https://community.chocolatey.org/api/v2/)
2. Setup Your Environment
1. Ensure you are set for organizational deployment
Please see the organizational deployment guide
2. Get the package into your environment
Option 1: Cached Package (Unreliable, Requires Internet - Same As Community)-
Open Source or Commercial:
- Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://community.chocolatey.org/api/v2/. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
- You can also just download the package and push it to a repository Download
-
Open Source
-
Download the package:
Download - Follow manual internalization instructions
-
-
Package Internalizer (C4B)
-
Run: (additional options)
choco download zypline --internalize --pre --source=https://community.chocolatey.org/api/v2/
-
For package and dependencies run:
choco push --source="'INTERNAL REPO URL'"
- Automate package internalization
-
Run: (additional options)
3. Copy Your Script
choco upgrade zypline -y --source="'INTERNAL REPO URL'" --prerelease [other options]
See options you can pass to upgrade.
See best practices for scripting.
Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.
If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:
choco upgrade zypline -y --source="'INTERNAL REPO URL'" --prerelease
$exitCode = $LASTEXITCODE
Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
Exit 0
}
Exit $exitCode
- name: Install zypline
win_chocolatey:
name: zypline
version: '0.1.0-prerelease'
source: INTERNAL REPO URL
state: present
allow_prerelease: yes
See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.
chocolatey_package 'zypline' do
action :install
source 'INTERNAL REPO URL'
version '0.1.0-prerelease'
options '--prerelease'
end
See docs at https://docs.chef.io/resource_chocolatey_package.html.
cChocoPackageInstaller zypline
{
Name = "zypline"
Version = "0.1.0-prerelease"
Source = "INTERNAL REPO URL"
chocoParams = "--prerelease"
}
Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.
package { 'zypline':
ensure => '0.1.0-prerelease',
install_options => ['--prerelease'],
provider => 'chocolatey',
source => 'INTERNAL REPO URL',
}
Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.
4. If applicable - Chocolatey configuration/installation
See infrastructure management matrix for Chocolatey configuration elements and examples.
This package is exempt from moderation. While it is likely safe for you, there is more risk involved.
Features
- Configurable Search Paths: Define and manage your search locations via a JSON configuration file.
- Flexible Filtering: Search by name (wildcard or regex), exclude specific file extensions, and filter by last write time.
- Item Type Selection: Search for files, folders, or both.
- Recursive Search: Dive deep into subdirectories.
- Human-Readable Sizes: Convert file sizes to KB, MB, GB, etc., for easy understanding.
- Enhanced Console Output: Utilizes custom console coloring (via New-ColorConsole) and emojis for a professional and intuitive user experience.
Installation
To install the zypline module:
# fetch the latest version
choco search $reponame
choco install $reponame --version="$version"
Usage
Examples
# 📄 Find all .log files recursively in configured paths
Find-ZyplineItem -IncludePattern "*.log" -Recurse
# 🔍 Search a specific path for files older than 30 days, excluding .tmp and .bak
Find-ZyplineItem -Path "C:\Temp" -ExcludeExtension "tmp", "bak" -OlderThan (Get-Date).AddDays(-30) -Recurse
# 📁 Find folders starting with "Project" recursively
Find-ZyplineItem -SearchFolders -IncludePattern "Project*" -Recurse
# 📝 Find files matching a specific date pattern using regex
Find-ZyplineItem -IncludePattern "^\d{4}-\d{2}-\d{2}\_report\.txt$" -UseRegex -Recurse
# 📂📄 Find both files and folders containing "config" in their name
Find-ZyplineItem -IncludePattern "\*config\*" -SearchFiles -SearchFolders -Recurse
<#
.SYNOPSIS
Converts a number of bytes into a human-readable size (KB, MB, GB, TB).
.DESCRIPTION
This private helper function takes a numerical value representing bytes
and converts it into a more readable format, appending the appropriate
unit (KB, MB, GB, TB).
.PARAMETER Bytes
The number of bytes to convert.
.OUTPUTS
System.String
.EXAMPLE
Convert-BytesToReadableSize -Bytes 1024
# Output: 1.00 KB
.EXAMPLE
Convert-BytesToReadableSize -Bytes 104857600
# Output: 100.00 MB
#>
function Convert-BytesToReadableSize {
[CmdletBinding()]
param(
[Parameter(Mandatory = $true)]
[long]$Bytes
)
# Define units and their byte values
$Units = @("Bytes", "KB", "MB", "GB", "TB")
$Threshold = 1024 # 1 KB = 1024 Bytes
# Handle zero bytes explicitly
if ($Bytes -eq 0) {
return "0 Bytes"
}
# Determine the appropriate unit
$i = 0
$Size = [double]$Bytes
while ($Size -ge $Threshold -and $i -lt ($Units.Length - 1)) {
$Size /= $Threshold
$i++
}
# Format the output to two decimal places
return "{0:N2} {1}" -f $Size, $Units[$i]
}
<#
.SYNOPSIS
Gets the full path to the zypline configuration file.
.DESCRIPTION
This private helper function constructs the full path to the
'config.json' file within the user's Documents\zypline directory.
It also ensures that the directory exists, creating it if necessary.
.OUTPUTS
System.String
.EXAMPLE
Get-ZyplineConfigPath
# Output: C:\Users\YourUser\Documents\zypline\config.json
#>
function Get-ZyplineConfigPath {
[CmdletBinding()]
param()
# Define the directory for zypline configuration
$ZyplineConfigDir = Join-Path -Path $env:USERPROFILE -ChildPath "Documents\zypline"
$ZyplineConfigFile = Join-Path -Path $ZyplineConfigDir -ChildPath "config.json"
# Ensure the directory exists
if (-not (Test-Path -Path $ZyplineConfigDir -PathType Container)) {
[Console]::Write("$(csole -s "📁 Creating zypline configuration directory: $ZyplineConfigDir" -c Cyan)`n")
New-Item -Path $ZyplineConfigDir -ItemType Directory -Force | Out-Null
}
return $ZyplineConfigFile
}
Export-ModuleMember -Function 'Convert-BytesToReadableSize', 'Get-ZyplineConfigPath'
# **Zypline PowerShell Module**
![static-license][license-badge]
Quickly locate items across configured or specified paths, apply various filters, and receive results in a human-readable format.
## **Features**
* **Configurable Search Paths:** Define and manage your search locations via a JSON configuration file.
* **Flexible Filtering:** Search by name (wildcard or regex), exclude specific file extensions, and filter by last write time.
* **Item Type Selection:** Search for files, folders, or both.
* **Recursive Search:** Dive deep into subdirectories.
* **Human-Readable Sizes:** Convert file sizes to KB, MB, GB, etc., for easy understanding.
* **Enhanced Console Output:** Utilizes custom console coloring (via New-ColorConsole) and emojis for a professional and intuitive user experience.
## **Installation**
To install the zypline module:
#### 📦 PowerShell Gallary
```powershell
Find-Module -Name $reponame -MinimumVersion $version | Install-module | Import-Module
```
#### 📦 Chocolatey
```powershell
# fetch the latest version
choco search $reponame
choco install $reponame --version="$version"
```
#### 📦 Gitlab Packages Nuget
```powershell
# add nuget source
nuget add source -name $reponame_gitlab_packages https://gitlab.com/phallems/nuget/v3/index.json
# fetch the latest version
nuget list $reponame -source $reponame_gitlab_packages
nuget install $reponame -source $reponame_gitlab_packages
```
See the Releases for the latest version: [Releases](https://github.com/phellams/zypline/releases)
## **Usage**
### **Get-ZyplineConfiguration**
Retrieves the current zypline module's configuration. If no configuration file exists, it will create a default one at `$env:USERPROFILE\Documents\zypline\config.json`.
**🖋️ Syntax**
```powershell
Get-ZyplineConfiguration
```
**🛠️ Examples**
```powershell
# Get the current configuration
Get-ZyplineConfiguration
```
```powershell
# Store the configuration in a variable
$Config = Get-ZyplineConfiguration
$Config.SearchPaths
```
### **Set-ZyplineConfiguration**
Saves a given configuration object to the config.json file, overwriting any existing configuration.
**🖋️ Syntax**
```powershell
Set-ZyplineConfiguration -Configuration <PSCustomObject>
```
**🛠️ Examples**
```powershell
# Create a new configuration object and save it
$NewConfig = [PSCustomObject]@{
SearchPaths = @("C:\Projects", "D:\Data")
}
Set-ZyplineConfiguration -Configuration $NewConfig
```
```powershell
# Update an existing configuration
$CurrentConfig = Get-ZyplineConfiguration
$CurrentConfig.SearchPaths += "E:\Archives"
Set-ZyplineConfiguration -Configuration $CurrentConfig
```
### **Add-ZyplineSearchPath**
Adds one or more paths to the zypline search configuration. It ensures that only unique, existing paths are added.
**🖋️ Syntax**
```powershell
Add-ZyplineSearchPath -Path <String[]>
```
**🛠️ Examples**
```powershell
# Add a single search path
Add-ZyplineSearchPath -Path "C:\MyImportantFolder"
```
```powershell
# Add multiple search paths
Add-ZyplineSearchPath -Path "C:\Logs", "D:\Backups"
```
### **Remove-ZyplineSearchPath**
Removes one or more paths from the zypline search configuration.
**🖋️ Syntax**
```powershell
Remove-ZyplineSearchPath -Path <String[]>
```
**🛠️ Examples**
```powershell
# Remove a single search path
Remove-ZyplineSearchPath -Path "$env:USERPROFILE\Downloads"
```
```powershell
# Remove multiple search paths
Remove-ZyplineSearchPath -Path "C:\OldLogs", "D:\Temp"
```
### **Find-ZyplineItem**
The core search function. It searches configured paths (or explicit paths) for files and folders, applying various filters.
**🖋️ Syntax**
```powershell
Find-ZyplineItem
[-Path <String[]>]
[-IncludePattern <String>]
[-ExcludePattern <String>]
[-ExcludeExtension <String[]>]
[-OlderThan <DateTime>]
[-SearchFolders]
[-SearchFiles]
[-Recurse]
[-UseRegex]
[<CommonParameters>]
```
#### **🟣 Parameters**
* -**Path** `<String[]>`: One or more root paths to start the search from. If omitted, configured paths are used.
* -**IncludePattern** `<String>`: A pattern to include items whose names match. Can be wildcard (e.g., *.log) or regex (with `-UseRegex`).
* -**ExcludePattern** `<String>`: A pattern to exclude items whose names match. Can be wildcard or regex.
* -**ExcludeExtension** `<String[]>`: An array of file extensions (e.g., "txt", "log") to exclude. Case-insensitive, no dot required.
* -**OlderThan** `<DateTime>`: Only include items with a LastWriteTime older than this date.
* -**SearchFolders**: Include folders in the search results.
* -**SearchFiles**: Include files in the search results. By default, only files are searched if neither `-SearchFolders` nor `-SearchFiles` is specified. If both are specified, both files and folders are searched.
* -**Recurse**: Include subdirectories recursively.
* -**UseRegex**: Treat `-IncludePattern` and `-ExcludePattern` as regular expressions.
#### **Examples**
```powershell
# 📄 Find all .log files recursively in configured paths
Find-ZyplineItem -IncludePattern "*.log" -Recurse
# 🔍 Search a specific path for files older than 30 days, excluding .tmp and .bak
Find-ZyplineItem -Path "C:\Temp" -ExcludeExtension "tmp", "bak" -OlderThan (Get-Date).AddDays(-30) -Recurse
# 📁 Find folders starting with "Project" recursively
Find-ZyplineItem -SearchFolders -IncludePattern "Project*" -Recurse
# 📝 Find files matching a specific date pattern using regex
Find-ZyplineItem -IncludePattern "^\d{4}-\d{2}-\d{2}\_report\.txt$" -UseRegex -Recurse
# 📂📄 Find both files and folders containing "config" in their name
Find-ZyplineItem -IncludePattern "\*config\*" -SearchFiles -SearchFolders -Recurse
```
# **Contributing**
If you find a bug or have a suggestion, please [open an issue](https://github.com/your-username/zypline/issues) or [create a pull request](https://github.com/your-username/zypline/pulls).
# **License**
This project is released under the [MIT License](https://opensource.org/licenses/MIT).
[license-badge]: https://img.shields.io/badge/License-MIT-Blue?style=for-the-badge&labelColor=%232D2D34&color=%2317202a
VERIFICATION
Verification is intended to assist the moderators and community
in verifying that this package's contents are trustworthy.
To Verify the files in this package, please download/Install module csverify from chocalatey.org or from the powershell gallery.
Install-Module -Name csverify
Import-Module -Name csverify
Alternatively, you can download the latest release from the Releases >> (https://github.com/nytescipts/csverify/releases page.
Then run the following command:
Test-Verification
-[checksum hash]-
___________________
3.13KB | 7909A8B4D24DF046F8EAAF19AAEBDDEA0E152AC06C152ABC5724DCF679E9671F | .\zypline.psm1
2.63KB | 88C7E656240D657C50C975606FE30A49C841E102EFEC603EA2FAF97E3C645CEF | .\zypline.psd1
2.4KB | 0D3FCD3D43632D25852B82B9E226792EE660353358B66F6F371F7B7AA80132C7 | .\zypline.nuspec
6.16KB | A8566851707C52B8DA56F2D98AB436A7CF441DA73D4B635B65074E35EB4A15CC | .\readme.md
1.06KB | 71B09F2468E5B0F7AA59709E503AEDF9A703EEAB88428A0228C453149AEDD2A6 | .\LICENSE
2.33KB | 8D56FB6BC58CC781D142C8454E83F741142ED83A5030FBC71E3A02DA990991EB | .\libs\core-functions.psm1
2.95KB | 9FA332B3FFC0C2C73BEF68862896FE17D2A286C7CFCA0758989E4CFBB233AB76 | .\icon.png
@{
RootModule = 'zypline.psm1'
ModuleVersion = '0.1.0'
GUID = 'ccc9be26-17aa-4a86-8d5b-14d6d15def37'
Author = 'Garvey k. Snow'
CompanyName = 'Phellams'
Copyright = '(c) 2025 Garvey k. Snow. All rights reserved.'
Description = 'A PowerShell module for advanced file and folder searching with configuration management.'
HelpInfoURI = 'https://github.com/phellams/commitfusion/blob/main/README.md'
FunctionsToExport = @(
'Add-ZyplineSearchPath',
'Remove-ZyplineSearchPath',
'Set-ZyplineConfiguration',
'Get-ZyplineConfiguration',
'Find-ZyplineItem'
)
CmdletsToExport = @()
VariablesToExport = @()
AliasesToExport = @(
'azsp', # Add-ZyplineSearchPath
'zyprm', # Remove-ZyplineSearchPath
'zypset', # Set-ZyplineConfiguration
'zypget', # Get-ZyplineConfiguration
'zypfind' # Find-ZyplineItem
)
PrivateData = @{
PSData = @{
Tags = @('Help', 'Formatting', 'CLI', 'PowerShell', 'Documentation')
ReleaseNotes = @{
# '1.2.1' = 'Initial release with New-PHWriter cmdlet for custom help formatting and enhanced layout.'
}
LicenseUri = 'https://choosealicense.com/licenses/mit'
ProjectUri = 'https://gitlab.com/phellams/zypline.git'
IconUri = 'https://raw.githubusercontent.com/phellams/phellams-general-resources/main/logos/zypline/dist/png/zypline-logo-128x128.png'
Prerelease = 'prerelease'
# CHOCOLATE ---------------------
LicenseUrl = 'https://choosealicense.com/licenses/mit'
ProjectUrl = 'https://github.com/phellams/ptoml'
IconUrl = 'https://raw.githubusercontent.com/phellams/phellams-general-resources/main/logos/zypline/dist/png/zypline-logo-128x128.png'
Docsurl = 'https://pages.gitlab.io/sgkens/ptoml'
MailingListUrl = 'https://github.com/phellams/zypline/issues'
projectSourceUrl = 'https://github.com/phellams/zypline'
bugTrackerUrl = 'https://github.com/phellams/zypline/issues'
Summary = 'A PowerShell module for advanced file and folder searching with configuration management.'
# CHOCOLATE ---------------------
}
}
RequiredModules = @()
RequiredAssemblies = @()
FormatsToProcess = @()
TypesToProcess = @()
NestedModules = @()
ScriptsToProcess = @()
}
#using module libs\core-functions.psm1
using module ..\shelldock\shelldock.psm1
using module cmdlets\Add-ZyplineSearchPath.psm1
using module cmdlets\Remove-ZyplineSearchPath.psm1
using module cmdlets\Set-ZyplineConfiguration.psm1
using module cmdlets\Get-ZyplineConfiguration.psm1
using module cmdlets\Find-ZyplineItem.psm1
$global:__zypline = @{
utility = @{
logName = "$(csole -s 'Zypline' -c gray) $(csole -s '▣≈' -c darkmagenta)"
sublog = "$(" "*12) + "
}
DefaultSearchPaths = @(
"$env:USERPROFILE\Documents",
"$env:USERPROFILE\Downloads"
)
kvtinc = {
<#
Hashtable function
------------------
Key Value in color with value type
Returns a string representation of a key value pair wrapped in ASCII color codes denoting the key and valuetype.
#>
param([string]$keyName, [string]$KeyValue, [string]$valueType)
[string]$kvtStringRep = ''
$kvtStringRep += "$(csole -s '{' -c magenta) "
$kvtStringRep += "key-($(csole -s $keyName -c cyan)) : "
$kvtStringRep += "value-(type-($(csole -s $valueType -c yellow))[$(csole -s $KeyValue -c gray)]) "
$kvtStringRep += "$(csole -s '}' -c magenta)"
return $kvtStringRep
}
kvinc = {
<#
Hashtable function
------------------
Key Value in color
Returns a string representation of a key value pair wrapped in ASCII color codes
#>
param([string]$keyName, [string]$KeyValue)
return "$(csole -s '{' -c magenta) $(csole -s $keyName -c cyan) : $(csole -s $KeyValue -c gray) $(csole -s '}' -c magenta)"
}
kvoinc = {
<#
Hashtable function
------------------
Key Value object in color
Returns a string representation of a key value pair ordered array
from pscustomobject wrapped in ASCII color codes
PSCustomObject is used to retain ordering.
#>
param([PSCustomObject]$object)
[string]$kvaToStringRep = ""
$kvaToStringRep += "$(csole -s '{' -c magenta) "
foreach ($key in $object.psobject.properties.where({ $_.MemberType -eq 'NoteProperty' })) {
$kvaToStringRep += "$(csole -s $key.name -c cyan) : $(csole -s $key.value -c gray); "
}
$kvaToStringRep += "$(csole -s '}' -c magenta)"
return $kvaToStringRep
}
}
$cmdlet_config = @{
function = @(
'Add-ZyplineSearchPath',
'Remove-ZyplineSearchPath',
'Set-ZyplineConfiguration',
'Get-ZyplineConfiguration',
'Find-ZyplineItem'
)
alias = @(
'azsp', # Add-ZyplineSearchPath
'zyprm', # Remove-ZyplineSearchPath
'zypset',# Set-ZyplineConfiguration
'zypget', # Get-ZyplineConfiguration
'zypfind' # Find-ZyplineItem
)
}
Export-ModuleMember @cmdlet_config
Log in or click on link to see number of positives.
In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).
Chocolatey Pro provides runtime protection from possible malware.
Copyright ©2025 Phellams
System.Collections.Hashtable
This package has no dependencies.
Ground Rules:
- This discussion is only about zypline and the zypline package. If you have feedback for Chocolatey, please contact the Google Group.
- This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
- The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
- Tell us what you love about the package or zypline, or tell us what needs improvement.
- Share your experiences with the package, or extra configuration or gotchas that you've found.
- If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.