├── .gitattributes ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── ContinuousIntegration.ps1 ├── DoTests.ps1 ├── Examples ├── CityTemplate.ps1 ├── CompanyTemplate.ps1 ├── CountryTemplate.ps1 ├── EmailTemplate.ps1 ├── PostalCodeTemplate.ps1 └── ShowDates.ps1 ├── Generators ├── README.md ├── address.ps1 ├── adjective.ps1 ├── alpha.ps1 ├── city.ps1 ├── cmdlet.ps1 ├── color.ps1 ├── company.ps1 ├── consonant.ps1 ├── country.ps1 ├── dave.ps1 ├── fortnite.ps1 ├── guid.ps1 ├── job.ps1 ├── noun.ps1 ├── numeric.ps1 ├── person.ps1 ├── phoneticvowel.ps1 ├── postalCode.ps1 ├── randomdate.ps1 ├── space.ps1 ├── specialDates.ps1 ├── state.ps1 ├── syllable.ps1 ├── synonym.ps1 ├── urls.ps1 ├── verb.ps1 └── vowel.ps1 ├── InstallModule.ps1 ├── LICENSE.txt ├── NameIT.psd1 ├── NameIT.psm1 ├── NameITInteractive.ipynb ├── NameITInteractive.md ├── Private ├── Cache │ ├── Clear-CacheStore.ps1 │ └── Get-CacheStore.ps1 ├── Culture │ └── Resolve-LocalizedPath.ps1 ├── DataMoverDecorators │ ├── Get-CacheableContent.ps1 │ └── Import-CacheableCsv.ps1 ├── GeneratorSet │ ├── Add-GeneratorToSet.ps1 │ ├── Clear-GeneratorSet.ps1 │ ├── Get-GeneratorSet.ps1 │ └── Test-GeneratorInSet.ps1 └── Utility │ ├── Convert-DataTypeToNameIt.ps1 │ ├── Get-RandomChoice.ps1 │ ├── Get-RandomValue.ps1 │ └── Invoke-AllTests.ps1 ├── Public ├── Invoke-Generate.ps1 ├── New-NameItTemplate.ps1 └── README.md ├── PublishToGallery.ps1 ├── README.md ├── __tests__ ├── city.tests.ps1 ├── cmdlet.tests.ps1 ├── color.tests.ps1 ├── company.tests.ps1 ├── date.tests.ps1 ├── email.tests.ps1 ├── job.tests.ps1 ├── nameit.tests.ps1 ├── postalCode.tests.ps1 └── test.txt ├── changelog.md ├── cultures ├── en │ ├── GB │ │ └── colors.txt │ ├── adjectives.txt │ ├── cities.csv │ ├── colors.txt │ ├── daves.txt │ ├── names.csv │ ├── nouns.txt │ ├── space.txt │ ├── states.csv │ ├── streetsuffix.txt │ └── verbs.txt ├── ja │ ├── colors.txt │ └── space.txt └── sv │ ├── cities.csv │ ├── colors.txt │ ├── names.csv │ ├── nouns.txt │ └── verbs.txt ├── customData └── customData.ps1 ├── demo.txt ├── demo ├── demo.txt └── start-demo.ps1 ├── images ├── MultipleLanguages.png ├── nameit.gif ├── nameitAddressVerbNounAdjective.gif └── nameitConsoleTitle.png ├── start-demo.ps1 └── test.txt /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: NameIT CI 2 | 3 | on: 4 | push: 5 | pull_request: 6 | workflow_dispatch: 7 | 8 | jobs: 9 | build: 10 | runs-on: ${{ matrix.os }} 11 | strategy: 12 | matrix: 13 | # os: [windows-latest, ubuntu-18.04, macos-latest] 14 | os: [windows-latest, ubuntu-latest, macos-latest] 15 | 16 | steps: 17 | - uses: actions/checkout@v2 18 | 19 | - name: Run the scripts 20 | shell: pwsh 21 | run: ./ContinuousIntegration.ps1 22 | 23 | # - name: Commit and push 24 | # uses: stefanzweifel/git-auto-commit-action@v4.2.0 25 | # with: 26 | # commit_message: Check in results 27 | # commit_user_name: "Pester check in" -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | -------------------------------------------------------------------------------- /ContinuousIntegration.ps1: -------------------------------------------------------------------------------- 1 | $PSVersionTable 2 | 3 | $modules = @("Pester", "PSScriptAnalyzer") 4 | 5 | foreach ($module in $modules) { 6 | Write-Host "Installing $module" -ForegroundColor Cyan 7 | Install-Module $module -Force -SkipPublisherCheck 8 | Import-Module $module -Force -PassThru 9 | } 10 | 11 | $pesterResults = Invoke-Pester -Output Detailed -PassThru 12 | 13 | # $os = if($IsWindows) { 14 | # "windows" 15 | # } elseif ($IsMacOS) { 16 | # "macos" 17 | # } elseif($IsLinux) { 18 | # "linux" 19 | # } 20 | 21 | # $pesterResults | Export-NUnitReport -Path "./pesterTestResults-$os.xml" 22 | 23 | if (!$pesterResults) { 24 | Throw "Tests failed" 25 | } 26 | else { 27 | if ($pesterResults.FailedCount -gt 0) { 28 | 29 | '[Progress] Pester Results Failed' 30 | $pesterResults.Failed | Out-String 31 | 32 | '[Progress] Pester Results FailedBlocks' 33 | $pesterResults.FailedBlocks | Out-String 34 | 35 | '[Progress] Pester Results FailedContainers' 36 | $pesterResults.FailedContainers | Out-String 37 | 38 | Throw "Tests failed" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /DoTests.ps1: -------------------------------------------------------------------------------- 1 | $PSVersionTable 2 | 3 | # if ($null -eq (Get-Module -ListAvailable pester) -or (Get-Module -ListAvailable pester).Version -lt "4.6.0") { 4 | # Install-Module -Name Pester -Repository PSGallery -Force -Scope CurrentUser 5 | # } 6 | 7 | # $result = Invoke-Pester -Script $PSScriptRoot/__tests__ -Verbose -PassThru 8 | 9 | # if ($result.FailedCount -gt 0) { 10 | # throw "$($result.FailedCount) tests failed." 11 | # } -------------------------------------------------------------------------------- /Examples/CityTemplate.ps1: -------------------------------------------------------------------------------- 1 | # City 2 | Invoke-Generate '[city]' -Count 5 3 | 4 | # City and County 5 | Invoke-Generate '[city both]' -Count 5 6 | 7 | # County 8 | Invoke-Generate '[city county]' -Count 5 -------------------------------------------------------------------------------- /Examples/CompanyTemplate.ps1: -------------------------------------------------------------------------------- 1 | Invoke-Generate '[company]' -Count 5 -------------------------------------------------------------------------------- /Examples/CountryTemplate.ps1: -------------------------------------------------------------------------------- 1 | Invoke-Generate '[country]' -Count 5 -------------------------------------------------------------------------------- /Examples/EmailTemplate.ps1: -------------------------------------------------------------------------------- 1 | Invoke-Generate '[email]' -Count 5 -------------------------------------------------------------------------------- /Examples/PostalCodeTemplate.ps1: -------------------------------------------------------------------------------- 1 | Invoke-Generate '[postalcode]' -Count 5 -------------------------------------------------------------------------------- /Examples/ShowDates.ps1: -------------------------------------------------------------------------------- 1 | Import-Module "$PSScriptRoot\..\nameit.psd1" -Force 2 | 3 | $templates = $( 4 | 'ThisQuarter' 5 | 'q1', 'q3', 'q3', 'q4' 6 | 'Today', 'Tomorrow', 'Yesterday' 7 | 'February', 'April', 'October' 8 | ) 9 | 10 | foreach ($template in $templates) { 11 | $template | ForEach-Object { 12 | [PSCustomObject]@{ 13 | Template = $_ 14 | Result = Invoke-Generate "$_" 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /Generators/README.md: -------------------------------------------------------------------------------- 1 | # Adding a new generator? 2 | Ensure your generator's name is added to the generator list in the module manifest (`NameIT.psd1`). -------------------------------------------------------------------------------- /Generators/address.ps1: -------------------------------------------------------------------------------- 1 | function address { 2 | [CmdletBinding()] 3 | param ( 4 | [Parameter()] 5 | [cultureinfo] 6 | $Culture = [cultureinfo]::CurrentCulture 7 | ) 8 | 9 | $numberLength = Get-Random -Minimum 3 -Maximum 6 10 | $streetLength = Get-Random -Minimum 2 -Maximum 6 11 | 12 | $houseNumber = Get-RandomValue -Template "[numeric $numberLength]" -As int 13 | 14 | $streetTemplate = "[syllable]" * $streetLength 15 | $street = Invoke-Generate $streetTemplate 16 | 17 | $suffix = Resolve-LocalizedPath -Culture $Culture -ContentFile 'streetsuffix.txt' | Get-CacheableContent | Get-Random 18 | 19 | $address = $houseNumber, $street, $suffix -join ' ' 20 | 21 | $Culture.TextInfo.ToTitleCase($address) 22 | } -------------------------------------------------------------------------------- /Generators/adjective.ps1: -------------------------------------------------------------------------------- 1 | function adjective { 2 | [CmdletBinding()] 3 | param( 4 | [Parameter()] 5 | [cultureinfo] 6 | $Culture = [cultureinfo]::CurrentCulture 7 | ) 8 | 9 | Resolve-LocalizedPath -ContentFile 'adjectives.txt' -Culture $Culture | Get-CacheableContent | Get-Random 10 | } 11 | -------------------------------------------------------------------------------- /Generators/alpha.ps1: -------------------------------------------------------------------------------- 1 | function alpha { 2 | param ([int]$length = 1) 3 | 4 | Get-RandomChoice $alphabet $length 5 | } 6 | -------------------------------------------------------------------------------- /Generators/city.ps1: -------------------------------------------------------------------------------- 1 | function city { 2 | param( 3 | [ValidateSet('both', 'city', 'county')] 4 | $propertyName = 'city', 5 | [cultureinfo] 6 | $Culture = [cultureinfo]::CurrentCulture 7 | ) 8 | 9 | 10 | # $targetFile = Resolve-LocalizedPath -Culture $Culture -ContentFile 'cities.csv' 11 | $cities = Resolve-LocalizedPath -Culture $Culture -ContentFile 'cities.csv' | Import-CacheableCsv -Delimiter ',' 12 | 13 | $city = $cities | Get-Random 14 | 15 | if ($propertyName -eq 'both') { 16 | "{0}, {1}" -f $city.city, $city.county 17 | } 18 | else { 19 | "{0}" -f $city.$propertyName 20 | } 21 | } -------------------------------------------------------------------------------- /Generators/cmdlet.ps1: -------------------------------------------------------------------------------- 1 | function cmdlet { 2 | [CmdletBinding()] 3 | param ( 4 | [Parameter()] 5 | [ValidateSet('approved', 'any')] 6 | [string] 7 | $ApprovedVerb, 8 | [Parameter()] 9 | [cultureinfo] 10 | $Culture = [cultureinfo]::CurrentCulture 11 | ) 12 | if ($ApprovedVerb -eq 'approved') { 13 | $verb = (Get-Verb | Get-Random).verb 14 | } 15 | else { 16 | $verb = (verb -Culture $Culture) 17 | } 18 | 19 | $noun = noun -Culture $Culture 20 | "{0}-{1}" -f $verb, ((Get-Culture).TextInfo.ToTitleCase($noun)) 21 | } 22 | -------------------------------------------------------------------------------- /Generators/color.ps1: -------------------------------------------------------------------------------- 1 | function color { 2 | [CmdletBinding()] 3 | param( 4 | [Parameter()] 5 | [cultureinfo] 6 | $Culture = [cultureinfo]::CurrentCulture 7 | ) 8 | 9 | Resolve-LocalizedPath -ContentFile 'colors.txt' -Culture $Culture | Get-CacheableContent | Get-Random 10 | } 11 | -------------------------------------------------------------------------------- /Generators/company.ps1: -------------------------------------------------------------------------------- 1 | function company { 2 | param( 3 | [ValidateSet('', 'catch', 'suffix', 'fluff')] 4 | $CompanyPart 5 | ) 6 | 7 | $companySuffixes = 'Inc', 'and Sons', 'LLC', 'Group', 'PLC', 'Ltd' 8 | 9 | $catchPhraseWords = ( 10 | ( 11 | 'Adaptive', 12 | 'Advanced', 13 | 'Ameliorated', 14 | 'Assimilated', 15 | 'Automated', 16 | 'Balanced', 17 | 'Business-focused', 18 | 'Centralized', 19 | 'Cloned', 20 | 'Compatible', 21 | 'Configurable', 22 | 'Cross-group', 23 | 'Cross-platform', 24 | 'Customer-focused', 25 | 'Customizable', 26 | 'Decentralized', 27 | 'De-engineered', 28 | 'Devolved', 29 | 'Digitized', 30 | 'Distributed', 31 | 'Diverse', 32 | 'Down-sized', 33 | 'Enhanced', 34 | 'Enterprise-wide', 35 | 'Ergonomic', 36 | 'Exclusive', 37 | 'Expanded', 38 | 'Extended', 39 | 'Face-to-face', 40 | 'Focused', 41 | 'Front-line', 42 | 'Fully-configurable', 43 | 'Function-based', 44 | 'Fundamental', 45 | 'Future-proofed', 46 | 'Grass-roots', 47 | 'Horizontal', 48 | 'Implemented', 49 | 'Innovative', 50 | 'Integrated', 51 | 'Intuitive', 52 | 'Inverse', 53 | 'Managed', 54 | 'Mandatory', 55 | 'Monitored', 56 | 'Multi-channeled', 57 | 'Multi-lateral', 58 | 'Multi-layered', 59 | 'Multi-tiered', 60 | 'Networked', 61 | 'Object-based', 62 | 'Open-architected', 63 | 'Open-source', 64 | 'Operative', 65 | 'Optimized', 66 | 'Optional', 67 | 'Organic', 68 | 'Organized', 69 | 'Persevering', 70 | 'Persistent', 71 | 'Phased', 72 | 'Polarized', 73 | 'Pre-emptive', 74 | 'Proactive', 75 | 'Profit-focused', 76 | 'Profound', 77 | 'Programmable', 78 | 'Progressive', 79 | 'Public-key', 80 | 'Quality-focused', 81 | 'Reactive', 82 | 'Realigned', 83 | 'Re-contextualized', 84 | 'Re-engineered', 85 | 'Reduced', 86 | 'Reverse-engineered', 87 | 'Right-sized', 88 | 'Robust', 89 | 'Seamless', 90 | 'Secured', 91 | 'Self-enabling', 92 | 'Sharable', 93 | 'Stand-alone', 94 | 'Streamlined', 95 | 'Switchable', 96 | 'Synchronized', 97 | 'Synergistic', 98 | 'Synergized', 99 | 'Team-oriented', 100 | 'Total', 101 | 'Triple-buffered', 102 | 'Universal', 103 | 'Up-sized', 104 | 'Upgradable', 105 | 'User-centric', 106 | 'User-friendly', 107 | 'Versatile', 108 | 'Virtual', 109 | 'Visionary', 110 | 'Vision-oriented'), 111 | ( 112 | '24hour', 113 | '24/7', 114 | '3rdgeneration', 115 | '4thgeneration', 116 | '5thgeneration', 117 | '6thgeneration', 118 | 'actuating', 119 | 'analyzing', 120 | 'asymmetric', 121 | 'asynchronous', 122 | 'attitude-oriented', 123 | 'background', 124 | 'bandwidth-monitored', 125 | 'bi-directional', 126 | 'bifurcated', 127 | 'bottom-line', 128 | 'clear-thinking', 129 | 'client-driven', 130 | 'client-server', 131 | 'coherent', 132 | 'cohesive', 133 | 'composite', 134 | 'context-sensitive', 135 | 'contextually-based', 136 | 'content-based', 137 | 'dedicated', 138 | 'demand-driven', 139 | 'didactic', 140 | 'directional', 141 | 'discrete', 142 | 'disintermediate', 143 | 'dynamic', 144 | 'eco-centric', 145 | 'empowering', 146 | 'encompassing', 147 | 'even-keeled', 148 | 'executive', 149 | 'explicit', 150 | 'exuding', 151 | 'fault-tolerant', 152 | 'foreground', 153 | 'fresh-thinking', 154 | 'full-range', 155 | 'global', 156 | 'grid-enabled', 157 | 'heuristic', 158 | 'high-level', 159 | 'holistic', 160 | 'homogeneous', 161 | 'human-resource', 162 | 'hybrid', 163 | 'impactful', 164 | 'incremental', 165 | 'intangible', 166 | 'interactive', 167 | 'intermediate', 168 | 'leadingedge', 169 | 'local', 170 | 'logistical', 171 | 'maximized', 172 | 'methodical', 173 | 'mission-critical', 174 | 'mobile', 175 | 'modular', 176 | 'motivating', 177 | 'multimedia', 178 | 'multi-state', 179 | 'multi-tasking', 180 | 'national', 181 | 'needs-based', 182 | 'neutral', 183 | 'next generation', 184 | 'non-volatile', 185 | 'object-oriented', 186 | 'optimal', 187 | 'optimizing', 188 | 'radical', 189 | 'real-time', 190 | 'reciprocal', 191 | 'regional', 192 | 'responsive', 193 | 'scalable', 194 | 'secondary', 195 | 'solution-oriented', 196 | 'stable', 197 | 'static', 198 | 'systematic', 199 | 'systemic', 200 | 'system-worthy', 201 | 'tangible', 202 | 'tertiary', 203 | 'transitional', 204 | 'uniform', 205 | 'upward-trending', 206 | 'user-facing', 207 | 'value-added', 208 | 'web-enabled', 209 | 'well-modulated', 210 | 'zero administration', 211 | 'zero-defect', 212 | 'zero tolerance' 213 | ), 214 | ( 215 | 'ability', 216 | 'access', 217 | 'adapter', 218 | 'algorithm', 219 | 'alliance', 220 | 'analyzer', 221 | 'application', 222 | 'approach', 223 | 'architecture', 224 | 'archive', 225 | 'artificial intelligence', 226 | 'array', 227 | 'attitude', 228 | 'benchmark', 229 | 'budgetary management', 230 | 'capability', 231 | 'capacity', 232 | 'challenge', 233 | 'circuit', 234 | 'collaboration', 235 | 'complexity', 236 | 'concept', 237 | 'conglomeration', 238 | 'contingency', 239 | 'core', 240 | 'customer loyalty', 241 | 'database', 242 | 'data-warehouse', 243 | 'definition', 244 | 'emulation', 245 | 'encoding', 246 | 'encryption', 247 | 'extranet', 248 | 'firmware', 249 | 'flexibility', 250 | 'focus group', 251 | 'forecast', 252 | 'frame', 253 | 'framework', 254 | 'function', 255 | 'functionalities', 256 | 'Graphic Interface', 257 | 'groupware', 258 | 'Graphical User Interface', 259 | 'hardware', 260 | 'help-desk', 261 | 'hierarchy', 262 | 'hub', 263 | 'implementation', 264 | 'info-mediaries', 265 | 'infrastructure', 266 | 'initiative', 267 | 'installation', 268 | 'instruction set', 269 | 'interface', 270 | 'Internet solution', 271 | 'intranet', 272 | 'knowledge user', 273 | 'knowledgebase', 274 | 'Local Area Network', 275 | 'leverage', 276 | 'matrices', 277 | 'matrix', 278 | 'methodology', 279 | 'middleware', 280 | 'migration', 281 | 'model', 282 | 'moderator', 283 | 'monitoring', 284 | 'moratorium', 285 | 'neural-net', 286 | 'open architecture', 287 | 'open system', 288 | 'orchestration', 289 | 'paradigm', 290 | 'parallelism', 291 | 'policy', 292 | 'portal', 293 | 'pricing structure', 294 | 'process improvement', 295 | 'product', 296 | 'productivity', 297 | 'project', 298 | 'projection', 299 | 'protocol', 300 | 'secured line', 301 | 'service-desk', 302 | 'software', 303 | 'solution', 304 | 'standardization', 305 | 'strategy', 306 | 'structure', 307 | 'success', 308 | 'superstructure', 309 | 'support', 310 | 'synergy', 311 | 'system engine', 312 | 'task-force', 313 | 'throughput', 314 | 'time-frame', 315 | 'toolset', 316 | 'utilization', 317 | 'website', 318 | 'workforce' 319 | ) 320 | ) 321 | 322 | $fluffWords = ( 323 | ( 324 | 'implement', 325 | 'utilize', 326 | 'integrate', 327 | 'streamline', 328 | 'optimize', 329 | 'evolve', 330 | 'transform', 331 | 'embrace', 332 | 'enable', 333 | 'orchestrate', 334 | 'leverage', 335 | 'reinvent', 336 | 'aggregate', 337 | 'architect', 338 | 'enhance', 339 | 'incentivize', 340 | 'morph', 341 | 'empower', 342 | 'envisioneer', 343 | 'monetize', 344 | 'harness', 345 | 'facilitate', 346 | 'seize', 347 | 'disintermediate', 348 | 'synergize', 349 | 'strategize', 350 | 'deploy', 351 | 'brand', 352 | 'grow', 353 | 'target', 354 | 'syndicate', 355 | 'synthesize', 356 | 'deliver', 357 | 'mesh', 358 | 'incubate', 359 | 'engage', 360 | 'maximize', 361 | 'benchmark', 362 | 'expedite', 363 | 're-intermediate', 364 | 'whiteboard', 365 | 'visualize', 366 | 'repurpose', 367 | 'innovate', 368 | 'scale', 369 | 'unleash', 370 | 'drive', 371 | 'extend', 372 | 'engineer', 373 | 'revolutionize', 374 | 'generate', 375 | 'exploit', 376 | 'transition', 377 | 'e-enable', 378 | 'iterate', 379 | 'cultivate', 380 | 'matrix', 381 | 'productize', 382 | 'redefine', 383 | 're-contextualize' 384 | ), 385 | ( 386 | 'clicks-and-mortar', 387 | 'value-added', 388 | 'vertical', 389 | 'proactive', 390 | 'robust', 391 | 'revolutionary', 392 | 'scalable', 393 | 'leading-edge', 394 | 'innovative', 395 | 'intuitive', 396 | 'strategic', 397 | 'e-business', 398 | 'mission-critical', 399 | 'sticky', 400 | 'one-to-one', 401 | '24/7', 402 | 'end-to-end', 403 | 'global', 404 | 'B2B', 405 | 'B2C', 406 | 'granular', 407 | 'frictionless', 408 | 'virtual', 409 | 'viral', 410 | 'dynamic', 411 | '24/365', 412 | 'best-of-breed', 413 | 'killer', 414 | 'magnetic', 415 | 'bleeding-edge', 416 | 'web-enabled', 417 | 'interactive', 418 | 'dot-com', 419 | 'back-end', 420 | 'real-time', 421 | 'efficient', 422 | 'front-end', 423 | 'distributed', 424 | 'seamless', 425 | 'extensible', 426 | 'turn-key', 427 | 'world-class', 428 | 'open-source', 429 | 'cross-platform', 430 | 'cross-media', 431 | 'synergistic', 432 | 'bricks-and-clicks', 433 | 'out-of-the-box', 434 | 'enterprise', 435 | 'integrated', 436 | 'impactful', 437 | 'wireless', 438 | 'transparent', 439 | 'next-generation', 440 | 'cutting-edge', 441 | 'user-centric', 442 | 'visionary', 443 | 'customized', 444 | 'ubiquitous', 445 | 'plug-and-play', 446 | 'collaborative', 447 | 'compelling', 448 | 'holistic', 449 | 'rich' 450 | ), 451 | ( 452 | 'synergies', 453 | 'web-readiness', 454 | 'paradigms', 455 | 'markets', 456 | 'partnerships', 457 | 'infrastructures', 458 | 'platforms', 459 | 'initiatives', 460 | 'channels', 461 | 'eyeballs', 462 | 'communities', 463 | 'ROI', 464 | 'solutions', 465 | 'e-tailers', 466 | 'e-services', 467 | 'action-items', 468 | 'portals', 469 | 'niches', 470 | 'technologies', 471 | 'content', 472 | 'vortals', 473 | 'supply-chains', 474 | 'convergence', 475 | 'relationships', 476 | 'architectures', 477 | 'interfaces', 478 | 'e-markets', 479 | 'e-commerce', 480 | 'systems', 481 | 'bandwidth', 482 | 'info-mediaries', 483 | 'models', 484 | 'mindshare', 485 | 'deliverables', 486 | 'users', 487 | 'schemas', 488 | 'networks', 489 | 'applications', 490 | 'metrics', 491 | 'e-business', 492 | 'functionalities', 493 | 'experiences', 494 | 'web services', 495 | 'methodologies') 496 | ) 497 | 498 | $formats = $( 499 | '{0} {1}' -f (person both last), ($companySuffixes | Get-Random) 500 | '{0}-{1}' -f (person both last), (person both last) 501 | '{0}, {1} and {2}' -f (person both last), (person both last), (person both last) 502 | ) 503 | 504 | if ($CompanyPart -eq 'suffix') { 505 | $companySuffixes | Get-Random 506 | } 507 | elseif ($CompanyPart -eq 'fluff') { 508 | $fluffWords | Get-Random 509 | } 510 | elseif ($CompanyPart -eq 'catch') { 511 | $catchPhraseWords | Get-Random 512 | } 513 | else { 514 | $formats | Get-Random 515 | } 516 | } -------------------------------------------------------------------------------- /Generators/consonant.ps1: -------------------------------------------------------------------------------- 1 | function consonant { 2 | Get-RandomChoice 'bcdfghjklmnpqrstvwxyz' 3 | } 4 | -------------------------------------------------------------------------------- /Generators/country.ps1: -------------------------------------------------------------------------------- 1 | function country { 2 | $( 3 | 'Afghanistan' 4 | 'Albania' 5 | 'Algeria' 6 | 'Andorra' 7 | 'Angola' 8 | 'Antigua and Barbuda' 9 | 'Argentina' 10 | 'Armenia' 11 | 'Australia' 12 | 'Austria' 13 | 'Azerbaijan' 14 | 'Bahamas' 15 | 'Bahrain' 16 | 'Bangladesh' 17 | 'Barbados' 18 | 'Belarus' 19 | 'Belgium' 20 | 'Belize' 21 | 'Benin' 22 | 'Bhutan' 23 | 'Bolivia' 24 | 'Bosnia and Herzegovina' 25 | 'Botswana' 26 | 'Brazil' 27 | 'Brunei' 28 | 'Bulgaria' 29 | 'Burkina Faso' 30 | 'Burundi' 31 | 'Cabo Verde' 32 | 'Cambodia' 33 | 'Cameroon' 34 | 'Canada' 35 | 'Central African Republic (CAR)' 36 | 'Chad' 37 | 'Chile' 38 | 'China' 39 | 'Colombia' 40 | 'Comoros' 41 | "Cote d'Ivoire" 42 | 'Costa Rica' 43 | 'Croatia' 44 | 'Cuba' 45 | 'Cyprus' 46 | 'Czechia' 47 | 'Democratic Republic of the Congo' 48 | 'Ecuador' 49 | 'Egypt' 50 | 'El Salvador' 51 | 'Equatorial Guinea' 52 | 'Eritrea' 53 | 'Estonia' 54 | 'Eswatini (formerly Swaziland)' 55 | 'Ethiopia' 56 | 'Fiji' 57 | 'Finland' 58 | 'France' 59 | 'Gabon' 60 | 'Gambia' 61 | 'Georgia' 62 | 'Germany' 63 | 'Ghana' 64 | 'Greece' 65 | 'Grenada' 66 | 'Guatemala' 67 | 'Guinea-Bissau' 68 | 'Guinea' 69 | 'Guyana' 70 | 'Haiti' 71 | 'Honduras' 72 | 'Hungary' 73 | 'Iceland' 74 | 'India' 75 | 'Indonesia' 76 | 'Iran' 77 | 'Iraq' 78 | 'Ireland' 79 | 'Israel' 80 | 'Italy' 81 | 'Jamaica' 82 | 'Japan' 83 | 'Jordan' 84 | 'Kazakhstan' 85 | 'Kenya' 86 | 'Kiribati' 87 | 'Kosovo' 88 | 'Kuwait' 89 | 'Kyrgyzstan' 90 | 'Laos' 91 | 'Latvia' 92 | 'Lebanon' 93 | 'Lesotho' 94 | 'Liberia' 95 | 'Libya' 96 | 'Liechtenstein' 97 | 'Lithuania' 98 | 'Luxembourg' 99 | 'Madagascar' 100 | 'Malawi' 101 | 'Malaysia' 102 | 'Maldives' 103 | 'Mali' 104 | 'Malta' 105 | 'Marshall Islands' 106 | 'Mauritania' 107 | 'Mauritius' 108 | 'Mexico' 109 | 'Micronesia' 110 | 'Moldova' 111 | 'Monaco' 112 | 'Mongolia' 113 | 'Montenegro' 114 | 'Morocco' 115 | 'Mozambique' 116 | 'Myanmar (formerly Burma)' 117 | 'Namibia' 118 | 'Namibia' 119 | 'Nauru' 120 | 'Nauru' 121 | 'Nepal' 122 | 'Nepal' 123 | 'Netherlands' 124 | 'Netherlands' 125 | 'New Zealand' 126 | 'New Zealand' 127 | 'Nicaragua' 128 | 'Nicaragua' 129 | 'Niger' 130 | 'Niger' 131 | 'Nigeria' 132 | 'Nigeria' 133 | 'North Korea' 134 | 'North Korea' 135 | 'North Macedonia (formerly Macedonia)' 136 | 'North Macedonia (formerly Macedonia)' 137 | 'Norway' 138 | 'Norway' 139 | 'Oman' 140 | 'Pakistan' 141 | 'Palau' 142 | 'Palestine' 143 | 'Panama' 144 | 'Papua New Guinea' 145 | 'Paraguay' 146 | 'Peru' 147 | 'Philippines' 148 | 'Poland' 149 | 'Portugal' 150 | 'Qatar' 151 | 'Republic of the Congo' 152 | 'Romania' 153 | 'Russia' 154 | 'Rwanda' 155 | 'Saint Kitts and Nevis' 156 | 'Saint Lucia' 157 | 'Saint Vincent and the Grenadines' 158 | 'Samoa' 159 | 'San Marino' 160 | 'Sao Tome and Principe' 161 | 'Saudi Arabia' 162 | 'Senegal' 163 | 'Serbia' 164 | 'Seychelles' 165 | 'Sierra Leone' 166 | 'Singapore' 167 | 'Slovakia' 168 | 'Slovenia' 169 | 'Solomon Islands' 170 | 'Somalia' 171 | 'South Africa' 172 | 'South Korea' 173 | 'South Sudan' 174 | 'Spain' 175 | 'Sri Lanka' 176 | 'Sudan' 177 | 'Suriname' 178 | 'Sweden' 179 | 'Switzerland' 180 | 'Syria' 181 | 'Taiwan' 182 | 'Tajikistan' 183 | 'Tanzania' 184 | 'Thailand' 185 | 'Timor-Leste' 186 | 'Togo' 187 | 'Tonga' 188 | 'Trinidad and Tobago' 189 | 'Tunisia' 190 | 'Turkey' 191 | 'Turkmenistan' 192 | 'Tuvalu' 193 | 'Uganda' 194 | 'Uganda' 195 | 'Ukraine' 196 | 'Ukraine' 197 | 'United Arab Emirates (UAE)' 198 | 'United Arab Emirates (UAE)' 199 | 'United Kingdom (UK)' 200 | 'United Kingdom (UK)' 201 | 'United States of America (USA)' 202 | 'United States of America (USA)' 203 | 'Uruguay' 204 | 'Uruguay' 205 | 'Uzbekistan' 206 | 'Uzbekistan' 207 | 'Yemen' 208 | 'Zambia' 209 | 'Zimbabwe' 210 | ) | Get-Random 211 | } -------------------------------------------------------------------------------- /Generators/dave.ps1: -------------------------------------------------------------------------------- 1 | # Too Many Daves by Dr. Seuss 2 | # https://www.poetryfoundation.org/poems-and-poets/poems/detail/42882 3 | function Dave { 4 | [CmdletBinding()] 5 | param( 6 | [Parameter()] 7 | [cultureinfo] 8 | $Culture = [cultureinfo]::CurrentCulture 9 | ) 10 | Resolve-LocalizedPath -Culture $Culture -ContentFile 'daves.txt' | Get-CacheableContent | Get-Random 11 | } 12 | -------------------------------------------------------------------------------- /Generators/fortnite.ps1: -------------------------------------------------------------------------------- 1 | function Fortnite { 2 | param ( 3 | [Parameter(Position = 0)] 4 | [char] 5 | $Char 6 | ) 7 | 8 | $Filter = { 9 | if ($_ -like "$Char*") { 10 | $_ 11 | } 12 | } 13 | 14 | $adj = Resolve-LocalizedPath -ContentFile 'adjectives.txt' | 15 | Get-CacheableContent -Transform $Filter -TransformCacheContentOn Read | 16 | Get-Random 17 | 18 | $Char = $adj[0] 19 | 20 | $noun = Resolve-LocalizedPath -ContentFile 'nouns.txt' | 21 | Get-CacheableContent -Transform $Filter -TransformCacheContentOn Read | 22 | Get-Random 23 | 24 | "$adj" + $noun 25 | } 26 | -------------------------------------------------------------------------------- /Generators/guid.ps1: -------------------------------------------------------------------------------- 1 | function guid { 2 | [CmdletBinding()] 3 | param( 4 | [Parameter()] 5 | [int] 6 | $part 7 | ) 8 | 9 | $guid = [guid]::NewGuid().guid 10 | 11 | if ($part) { 12 | ($guid -split '-')[$part] 13 | } else { 14 | $guid 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Generators/job.ps1: -------------------------------------------------------------------------------- 1 | function Job { 2 | $( 3 | 'Account executive' 4 | 'Account manager' 5 | 'Actor' 6 | 'Actuary' 7 | 'Administrative assistant' 8 | 'Admissions representative' 9 | 'Aerospace engineer' 10 | 'Agriculture teacher' 11 | 'Agriculture' 12 | 'Animal control officer' 13 | 'Animal geneticist' 14 | 'Animal nutritionist' 15 | 'Animal science' 16 | 'Animal shelter manager' 17 | 'Animal sitter' 18 | 'Aquatic ecologist' 19 | 'Architect' 20 | 'Art director' 21 | 'Assistant buyer' 22 | 'Assistant professor' 23 | 'B2B sales specialist' 24 | 'Bank teller' 25 | 'Barber' 26 | 'Beautician' 27 | 'Beekeeper' 28 | 'Biochemist' 29 | 'Biological engineer' 30 | 'Biologist' 31 | 'Brand manager' 32 | 'Breeder' 33 | 'Budget analyst' 34 | 'Business development manager' 35 | 'Business intelligence developer' 36 | 'Business reporter' 37 | 'Business teacher' 38 | 'Business' 39 | 'Call center agent' 40 | 'Caregiver' 41 | 'Cashier' 42 | 'Chemical engineer' 43 | 'Chief of operations' 44 | 'Chief operations officer' 45 | 'Civil engineer' 46 | 'Client services coordinator' 47 | 'Client services manager' 48 | 'Collection agent' 49 | 'College professor' 50 | 'Compensation advisor' 51 | 'Compensations and benefits manager' 52 | 'Compliance engineer' 53 | 'Computer programmer' 54 | 'Concierge' 55 | 'Conservationist' 56 | 'Content marketing manager' 57 | 'Continuous improvement lead' 58 | 'Cosmetology instructor' 59 | 'Cosmetology' 60 | 'Cost estimator' 61 | 'Creative director' 62 | 'Creative' 63 | 'Credit analyst' 64 | 'Customer care associate' 65 | 'Customer service manager' 66 | 'Customer service' 67 | 'Dancer' 68 | 'Data architect' 69 | 'Database manager' 70 | 'Demand generation director' 71 | 'Dental assistant' 72 | 'Dental hygienist' 73 | 'Dentist' 74 | 'Dietitian' 75 | 'Director' 76 | 'Distribution supervisor' 77 | 'Doctor' 78 | 'Editor' 79 | 'Education' 80 | 'Electrical engineer' 81 | 'Electrologist' 82 | 'Engineering' 83 | 'English teacher' 84 | 'Environmental engineer' 85 | 'Esthetician' 86 | 'Executive recruiter' 87 | 'Executive' 88 | 'Farmer' 89 | 'Fashion designer' 90 | 'Fashion show stylist' 91 | 'Finance' 92 | 'Financial advisor' 93 | 'Financial auditor' 94 | 'Financial manager' 95 | 'Financial planner' 96 | 'Financial services representative' 97 | 'Floral designer' 98 | 'Food scientist' 99 | 'Foresters' 100 | 'Front desk coordinator' 101 | 'Front-end web developer' 102 | 'Geological engineer' 103 | 'Graphic designer' 104 | 'Groomer' 105 | 'Guidance counselor' 106 | 'Hairdresser' 107 | 'Healthcare' 108 | 'Help desk assistant' 109 | 'Horticulturist' 110 | 'Hospitality' 111 | 'Human resources assistant' 112 | 'Human resources consultant' 113 | 'Human resources director' 114 | 'Human resources generalist' 115 | 'Human resources manager' 116 | 'Human resources specialist' 117 | 'Human resources systems administrator' 118 | 'Human resources' 119 | 'Illustrator' 120 | 'Information security analyst' 121 | 'Information technology' 122 | 'Instructional designer' 123 | 'Insurance sales agent' 124 | 'International human resources associate' 125 | 'Investment banking analyst' 126 | 'IT manager' 127 | 'Java developer' 128 | 'Kennel attendant' 129 | 'Labor relations specialist' 130 | 'Leadership' 131 | 'Librarian' 132 | 'Loan officer' 133 | 'Logistics coordinator' 134 | 'Makeup artist' 135 | 'Manager' 136 | 'Marine engineer' 137 | 'Marketing analyst' 138 | 'Marketing assistant' 139 | 'Marketing consultant' 140 | 'Marketing coordinator' 141 | 'Marketing director' 142 | 'Marketing manager' 143 | 'Marketing' 144 | 'Math teacher' 145 | 'Mechanical engineer' 146 | 'Message therapist' 147 | 'Mobile application developer' 148 | 'Multimedia animator' 149 | 'Nail technician' 150 | 'Nuclear engineer' 151 | 'Nurse' 152 | 'Occupational therapy aide' 153 | 'Office clerk' 154 | 'Office manager' 155 | 'Operations assistant' 156 | 'Operations manager' 157 | 'Operations' 158 | 'Orthodontist' 159 | 'Painter' 160 | 'Personal trainer' 161 | 'Pet walker' 162 | 'Petroleum engineer' 163 | 'Pharmacist' 164 | 'Pharmacy assistant' 165 | 'Physical therapist' 166 | 'Plant biologist' 167 | 'Plant nursery attendant' 168 | 'President' 169 | 'Principal' 170 | 'Producer' 171 | 'Product engineer' 172 | 'Product marketing manager' 173 | 'Project manager' 174 | 'Public relations specialist' 175 | 'Real estate broker' 176 | 'Regional sales manager' 177 | 'Retail sales associate' 178 | 'Retail salesperson' 179 | 'Safety engineer' 180 | 'Sales analyst' 181 | 'Sales associate' 182 | 'Sales consultant' 183 | 'Sales director' 184 | 'Sales manager' 185 | 'Sales representative' 186 | 'Sales' 187 | 'Salon manager' 188 | 'Science teacher' 189 | 'Scrum master' 190 | 'Search engine optimization specialist' 191 | 'Senior process engineer' 192 | 'Service advisor' 193 | 'Singer' 194 | 'Skin care specialist' 195 | 'Social media coordinator' 196 | 'Social media manager' 197 | 'Software developer' 198 | 'Software engineer' 199 | 'Soil and plant scientist' 200 | 'Spa manager' 201 | 'SQL developer' 202 | 'Store manager' 203 | 'Substitute teacher' 204 | 'Superintendent' 205 | 'Supervisor' 206 | 'Supply chain coordinator' 207 | 'Supply chain specialist' 208 | 'Surgical technologist' 209 | 'Talent acquisition coordinator' 210 | 'Tattoo artist' 211 | 'Team lead' 212 | 'Team leader' 213 | 'Technical support representative' 214 | 'Telemarketer' 215 | 'Test administrator' 216 | 'Test scorer' 217 | 'Training and development manager' 218 | 'Travel nurse' 219 | 'Tutor' 220 | 'UI developer' 221 | 'UX designer' 222 | 'Veterinarian' 223 | 'Veterinary assistant' 224 | 'Veterinary ophthalmologis' 225 | 'Veterinary pathologist' 226 | 'Vice President' 227 | 'Vice principal' 228 | 'Virtual assistant' 229 | 'Warehouse supervisor' 230 | 'Web administrator' 231 | 'Web developer' 232 | 'Wedding stylist' 233 | 'Wildlife biologist' 234 | 'Wildlife inspector' 235 | 'Wildlife rehabilitator' 236 | 'Writer' 237 | 'Zoologist' 238 | ) | Get-Random 239 | } 240 | -------------------------------------------------------------------------------- /Generators/noun.ps1: -------------------------------------------------------------------------------- 1 | function noun { 2 | [CmdletBinding()] 3 | param( 4 | [Parameter()] 5 | [cultureinfo] 6 | $Culture = [cultureinfo]::CurrentCulture 7 | ) 8 | 9 | Resolve-LocalizedPath -ContentFile 'nouns.txt' -Culture $Culture | Get-CacheableContent | Get-Random 10 | } 11 | -------------------------------------------------------------------------------- /Generators/numeric.ps1: -------------------------------------------------------------------------------- 1 | function numeric { 2 | param ([int]$length = 1) 3 | 4 | (Get-RandomChoice $numbers $length) -as [int] 5 | } 6 | -------------------------------------------------------------------------------- /Generators/person.ps1: -------------------------------------------------------------------------------- 1 | function person { 2 | <# 3 | .SYNOPSIS 4 | The function intended to generate string with name of a random person 5 | 6 | .DESCRIPTION 7 | The function generate a random name of females or males based on provided culture like . 8 | The first and last names are randomly selected from the file delivered with for the culture 9 | 10 | .PARAMETER Sex 11 | The sex of random person. 12 | 13 | .PARAMETER Culture 14 | The culture used for generate - default is the current culture. 15 | 16 | .LINK 17 | https://www.linkedin.com/in/sciesinskiwojciech 18 | 19 | .NOTES 20 | AUTHOR: Wojciech Sciesinski, wojciech[at]sciesinski[dot]net 21 | KEYWORDS: PowerShell 22 | 23 | VERSIONS HISTORY 24 | 0.1.0 - 2016-01-16 - The first version published as a part of NameIT powershell module https://github.com/dfinke/NameIT 25 | 0.1.1 - 2016-01-16 - Mistakes corrected, support for additional templates added, the paremeter Count removed 26 | 0.1.2 - 2016-01-18 - Incorrect usage Get-Random in the templates [person*] corrected, the example corrected 27 | 28 | The future version will be developed under https://github.com/it-praktyk/New-RandomPerson 29 | 30 | The source of last names for the en-US culture - taken the first 100 on the state 2016-01-15 31 | http://names.mongabay.com/data/1000.html 32 | 33 | The source of the first names for the en-US culture - taken the first 100 on the state 2016-01-15 34 | http://www.behindthename.com/top/lists/united-states-decade/1980/100 35 | 36 | .EXAMPLE 37 | [PS] > person 38 | Justin Carter 39 | 40 | The one name returned with random sex. 41 | 42 | .EXAMPLE 43 | [PS] > 1..3 | Foreach-Object -Process { person -Sex 'female' } 44 | Jacqueline Walker 45 | Julie Richardson 46 | Stacey Powell 47 | 48 | Three names returned, only women. 49 | 50 | #> 51 | [CmdletBinding()] 52 | param ( 53 | [ValidateSet("both", "female", "male")] 54 | [String]$Sex = "both", 55 | [ValidateSet("both", "first", "last")] 56 | [String]$NameParts = "both", 57 | [cultureinfo]$Culture = [cultureinfo]::CurrentCulture 58 | ) 59 | 60 | $AllNames = Resolve-LocalizedPath -Culture $Culture -ContentFile 'names.csv' | Import-CacheableCsv -Delimiter ',' 61 | 62 | $AllNamesCount = $AllNames.Count 63 | 64 | $LastName = $AllNames[(Get-Random -Minimum 0 -Maximum $AllNamesCount)].LastName 65 | 66 | If ($Sex -eq 'both') { 67 | $RandomSex = (Get-Random @('Female', 'Male')) 68 | $FirstNameFieldName = "{0}FirstName" -f $RandomSex 69 | $FirstName = $AllNames[(Get-Random -Minimum 0 -Maximum $AllNamesCount)].$FirstNameFieldName 70 | } 71 | elseif ($Sex -eq 'female') { 72 | $FirstName = $AllNames[(Get-Random -Minimum 0 -Maximum $AllNamesCount)].FemaleFirstName 73 | } 74 | else { 75 | $FirstName = $AllNames[(Get-Random -Minimum 0 -Maximum $AllNamesCount)].MaleFirstName 76 | } 77 | 78 | switch ($NameParts) { 79 | "both" {"{0} {1}" -f $FirstName, $LastName} 80 | "first" {$FirstName} 81 | "last" {$LastName} 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Generators/phoneticvowel.ps1: -------------------------------------------------------------------------------- 1 | function phoneticVowel { 2 | 3 | Get-RandomChoice 'a', 'ai', 'ay', 'au', 'aw', 'augh', 'wa', 'all', 'ald', 'alk', 'alm', 'alt', 4 | 'e', 'ee', 'ea', 'eu', 'ei', 'ey', 'ew', 'eigh', 'i', 'ie', 'ye', 'igh', 'ign', 5 | 'ind', 'o', 'oo', 'oa', 'oe', 'oi', 'oy', 'old', 'olk', 'olt', 'oll', 'ost', 6 | 'ou', 'ow', 'u', 'ue', 'ui' 7 | } 8 | -------------------------------------------------------------------------------- /Generators/postalCode.ps1: -------------------------------------------------------------------------------- 1 | function postalCode { 2 | $( 3 | 35801..35816 4 | 99501..99524 5 | 85001..85055 6 | 72201..72217 7 | 94203..94209 8 | 90001..90089 9 | 90209..90213 10 | 80201..80239 11 | 06101..06112 12 | 19901..19905 13 | 32501..32509 14 | 33124..33190 15 | 32801..32837 16 | 30301..30381 17 | 96801..96830 18 | 60601..60641 19 | 62701..62709 20 | 46201..46209 21 | 52801..52809 22 | 50301..50323 23 | 67201..67221 24 | 41701..41702 25 | 70112..70119 26 | 04032..04034 27 | 21201..21237 28 | 02101..02137 29 | 49734..49735 30 | 55801..55808 31 | 39530..39535 32 | 63101..63141 33 | 68901..68902 34 | 89501..89513 35 | 87500..87506 36 | 10001..10048 37 | 44101..44179 38 | 74101..74110 39 | 97201..97225 40 | 15201..15244 41 | 02840..02841 42 | 57401..57402 43 | 37201..37222 44 | 78701..78705 45 | 84321..84323 46 | 98004..98009 47 | 53201..53228 48 | ) | Get-Random 49 | } -------------------------------------------------------------------------------- /Generators/randomdate.ps1: -------------------------------------------------------------------------------- 1 | function RandomDate { 2 | [CmdletBinding()] 3 | param( 4 | [Parameter()] 5 | [Alias('TheMin')] 6 | [DateTime] 7 | $MinDate = [DateTime]::MinValue, 8 | 9 | [Parameter()] 10 | [Alias('TheMax')] 11 | [DateTime] 12 | $MaxDate = [DateTime]::MaxValue , 13 | 14 | [Parameter()] 15 | [String] 16 | $Format , 17 | 18 | [Parameter()] 19 | [cultureinfo] 20 | $Culture = [cultureinfo]::CurrentCulture 21 | ) 22 | 23 | if (-not $Format) { 24 | $Format = $Culture.DateTimeFormat.ShortDatePattern 25 | } 26 | 27 | $theRandomTicks = Get-Random -Minimum ([Convert]::ToDouble($MinDate.Ticks)) -Maximum ([Convert]::ToDouble($MaxDate.Ticks)) 28 | [DateTime]::new([Convert]::ToInt64($theRandomTicks)).ToString($Format, $Culture.DateTimeFormat) 29 | } 30 | -------------------------------------------------------------------------------- /Generators/space.ps1: -------------------------------------------------------------------------------- 1 | function space { 2 | [CmdletBinding()] 3 | param( 4 | [Parameter()] 5 | [uint32] 6 | $Length = 1 , 7 | 8 | [Parameter()] 9 | [cultureinfo] 10 | $Culture = [cultureinfo]::CurrentCulture 11 | ) 12 | 13 | Resolve-LocalizedPath -Culture $Culture -ContentFile 'space.txt' | 14 | Get-CacheableContent -Raw -Transform { $_ * $Length } -TransformCacheContentOn Read 15 | } 16 | -------------------------------------------------------------------------------- /Generators/specialDates.ps1: -------------------------------------------------------------------------------- 1 | $map = @{ 2 | 1 = @{ 3 | DaysInMonth = 31 4 | Quarter = 1 5 | } 6 | 7 | 2 = @{ 8 | DaysInMonth = 28 9 | Quarter = 1 10 | } 11 | 12 | 3 = @{ 13 | DaysInMonth = 31 14 | Quarter = 1 15 | } 16 | 17 | 4 = @{ 18 | DaysInMonth = 30 19 | Quarter = 2 20 | } 21 | 22 | 5 = @{ 23 | DaysInMonth = 31 24 | Quarter = 2 25 | } 26 | 27 | 6 = @{ 28 | DaysInMonth = 30 29 | Quarter = 2 30 | } 31 | 32 | 7 = @{ 33 | DaysInMonth = 31 34 | Quarter = 3 35 | } 36 | 37 | 8 = @{ 38 | DaysInMonth = 31 39 | Quarter = 3 40 | } 41 | 42 | 9 = @{ 43 | DaysInMonth = 30 44 | Quarter = 3 45 | } 46 | 47 | 10 = @{ 48 | DaysInMonth = 31 49 | Quarter = 4 50 | } 51 | 52 | 11 = @{ 53 | DaysInMonth = 30 54 | Quarter = 4 55 | } 56 | 57 | 12 = @{ 58 | DaysInMonth = 31 59 | Quarter = 4 60 | } 61 | } 62 | 63 | <# 64 | YearToDate 65 | #> 66 | 67 | 68 | function RandomDayOfMonth { 69 | param($month) 70 | 71 | Get-Random -Minimum 1 -Maximum ($map.$month.DaysInMonth + 1) 72 | } 73 | 74 | function RandomDateForMonth { 75 | param($month) 76 | 77 | $day = RandomDayOfMonth $month 78 | 79 | (Get-Date "$month/$day/$(ThisYear)").ToShortDateString() 80 | } 81 | 82 | function LastQuarter { 83 | param([datetime]$date = (Get-Date)) 84 | 85 | &("Q" + [math]::Ceiling($date.AddMonths(-3).Month / 3) ) 86 | } 87 | 88 | function NextQuarter { 89 | param([datetime]$date = (Get-Date)) 90 | 91 | &("Q" + [math]::Ceiling($date.AddMonths(3).Month / 3) ) 92 | } 93 | 94 | function LastWeek { "Not yet implemented" } 95 | function NextWeek { "Not yet implemented" } 96 | function YearToDate { "Not yet implemented" } 97 | function ThisWeek { Get-Date -UFormat %V } 98 | function ThisQuarter { &("Q" + [math]::Floor(((ThisMonth) + 2) / 3)) } 99 | function ThisYear { (Get-Date).Year } 100 | function ThisMonth { (Get-Date).Month } 101 | function Today { (Get-Date).ToShortDateString() } 102 | function Tomorrow { (Get-Date).AddDays(1).ToShortDateString() } 103 | function Yesterday { (Get-Date).AddDays(-1).ToShortDateString() } 104 | function LastYear { (Get-Date).AddYears(-1).ToShortDateString() } 105 | function NextYear { (Get-Date).AddYears(-1).ToShortDateString() } 106 | function LastMonth { (Get-Date).AddMonths(-1).ToShortDateString() } 107 | function NextMonth { (Get-Date).AddMonths(-1).ToShortDateString() } 108 | function Q1 { (January), (February), (March) | Get-Random } 109 | function Q2 { (April), (May), (June) | Get-Random } 110 | function Q3 { (July), (August), (September) | Get-Random } 111 | function Q4 { (October), (November), (December) | Get-Random } 112 | function January { RandomDateForMonth 1 } 113 | function February { RandomDateForMonth 2 } 114 | function March { RandomDateForMonth 3 } 115 | function April { RandomDateForMonth 4 } 116 | function May { RandomDateForMonth 5 } 117 | function June { RandomDateForMonth 6 } 118 | function July { RandomDateForMonth 7 } 119 | function August { RandomDateForMonth 8 } 120 | function September { RandomDateForMonth 9 } 121 | function October { RandomDateForMonth 10 } 122 | function November { RandomDateForMonth 11 } 123 | function December { RandomDateForMonth 12 } -------------------------------------------------------------------------------- /Generators/state.ps1: -------------------------------------------------------------------------------- 1 | function State { 2 | [CmdletBinding()] 3 | param( 4 | [Parameter()] 5 | [String] 6 | $property = "name", 7 | 8 | [Parameter()] 9 | [cultureinfo] 10 | $Culture = [cultureinfo]::CurrentCulture 11 | ) 12 | 13 | $states = Resolve-LocalizedPath -Culture $Culture -ContentFile 'states.csv' | Import-CacheableCsv -UseCulture -Culture $Culture 14 | 15 | switch ($property) { 16 | "name" {$property = "statename"} 17 | "abbr" {$property = "abbreviation"} 18 | "capital" {$property = "capital"} 19 | "zip" {$property = "zip"} 20 | "all" { 21 | $targetState = $states | Get-Random 22 | "{0},{1},{2},{3}" -f $targetState.Capital, $targetState.StateName, $targetState.Abbreviation, $targetState.Zip 23 | } 24 | default { throw "property [$($property)] not supported"} 25 | } 26 | 27 | $states | Get-Random | % $property 28 | } 29 | -------------------------------------------------------------------------------- /Generators/syllable.ps1: -------------------------------------------------------------------------------- 1 | function syllable { 2 | param ([Switch]$usePhoneticVowels) 3 | 4 | $syllables = ((vowel) + (consonant)), ((consonant) + (vowel)), ((consonant) + (vowel) + (consonant)) 5 | 6 | if ($usePhoneticVowels) { 7 | $syllables += ((consonant) + (phoneticVowel)) 8 | } 9 | 10 | Get-RandomChoice $syllables 11 | } 12 | -------------------------------------------------------------------------------- /Generators/synonym.ps1: -------------------------------------------------------------------------------- 1 | function synonym { 2 | param ([string]$word) 3 | 4 | $url = "http://words.bighugelabs.com/api/2/78ae52fd37205f0bad5f8cd349409d16/$($word)/json" 5 | 6 | $synonyms = $(foreach ($item in (Invoke-RestMethod $url)) { 7 | $names = $item.psobject.Properties.name 8 | foreach ($name in $names) { 9 | $item.$name.syn -replace ' ', '' 10 | } 11 | }) | Where-Object -FilterScript { $_ } 12 | 13 | $max = $synonyms.Length 14 | $synonyms[(Get-Random -Minimum 0 -Maximum $max)] 15 | } 16 | -------------------------------------------------------------------------------- /Generators/urls.ps1: -------------------------------------------------------------------------------- 1 | function email { 2 | [CmdletBinding()] 3 | param ( 4 | [Parameter()] 5 | [cultureinfo] 6 | $Culture = [cultureinfo]::CurrentCulture 7 | ) 8 | # $tlds = 'com', 'com', 'com', 'net', 'org', 'es', 'es', 'es' 9 | 10 | $domain = 'gmail.com', 'yahoo.com', 'hotmail.com' 11 | 12 | "{0}@{1}" -f (person -Culture $Culture).tolower().replace(' ', '.'), ($domain | Get-Random) 13 | } -------------------------------------------------------------------------------- /Generators/verb.ps1: -------------------------------------------------------------------------------- 1 | function verb { 2 | [CmdletBinding()] 3 | param( 4 | [Parameter()] 5 | [cultureinfo] 6 | $Culture = [cultureinfo]::CurrentCulture 7 | ) 8 | 9 | Resolve-LocalizedPath -ContentFile 'verbs.txt' -Culture $Culture | Get-CacheableContent | Get-Random 10 | } 11 | -------------------------------------------------------------------------------- /Generators/vowel.ps1: -------------------------------------------------------------------------------- 1 | function vowel { 2 | Get-RandomChoice 'aeiou' 3 | } 4 | -------------------------------------------------------------------------------- /InstallModule.ps1: -------------------------------------------------------------------------------- 1 | param ($fullPath) 2 | 3 | # $fullPath = 'C:\Program Files\WindowsPowerShell\Modules\NameIT' 4 | 5 | if (-not $fullPath) { 6 | $fullpath = $env:PSModulePath -split ":(?!\\)|;|," | 7 | Where-Object {$_ -notlike ([System.Environment]::GetFolderPath("UserProfile")+"*") -and $_ -notlike "$pshome*"} | 8 | Select-Object -First 1 9 | $fullPath = Join-Path $fullPath -ChildPath "NameIT" 10 | } 11 | 12 | Push-location $PSScriptRoot 13 | Robocopy . $fullPath /mir /XD .vscode .git CI __tests__ data mdHelp /XF appveyor.yml azure-pipelines.yml .gitattributes .gitignore filelist.txt install.ps1 InstallModule.ps1 14 | Pop-Location 15 | 16 | #Robocopy . $fullPath /mir /XD .vscode .git examples testimonials images spikes /XF appveyor.yml .gitattributes .gitignore -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2004 Doug Finke 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /NameIT.psd1: -------------------------------------------------------------------------------- 1 | @{ 2 | 3 | # Script module or binary module file associated with this manifest. 4 | RootModule = 'NameIT.psm1' 5 | 6 | # Version number of this module. 7 | ModuleVersion = '2.3.5' 8 | 9 | # ID used to uniquely identify this module 10 | GUID = '6d4ec85a-e09f-4024-819d-66bafa130a5b' 11 | 12 | # Author of this module 13 | Author = 'Douglas Finke, Chris Hunt' 14 | 15 | # Company or vendor of this module 16 | CompanyName = 'Doug Finke' 17 | 18 | # Copyright statement for this module 19 | Copyright = 'c 2016 All rights reserved.' 20 | 21 | # Description of the functionality provided by this module 22 | Description = 'PowerShell module to randomly generate names' 23 | 24 | # Minimum version of the Windows PowerShell engine required by this module 25 | # PowerShellVersion = '' 26 | 27 | # Name of the Windows PowerShell host required by this module 28 | # PowerShellHostName = '' 29 | 30 | # Minimum version of the Windows PowerShell host required by this module 31 | # PowerShellHostVersion = '' 32 | 33 | # Minimum version of Microsoft .NET Framework required by this module 34 | # DotNetFrameworkVersion = '' 35 | 36 | # Minimum version of the common language runtime (CLR) required by this module 37 | # CLRVersion = '' 38 | 39 | # Processor architecture (None, X86, Amd64) required by this module 40 | # ProcessorArchitecture = '' 41 | 42 | # Modules that must be imported into the global environment prior to importing this module 43 | # RequiredModules = @() 44 | 45 | # Assemblies that must be loaded prior to importing this module 46 | # RequiredAssemblies = @() 47 | 48 | # Script files (.ps1) that are run in the caller's environment prior to importing this module. 49 | # ScriptsToProcess = @() 50 | 51 | # Type files (.ps1xml) to be loaded when importing this module 52 | # TypesToProcess = @() 53 | 54 | # Format files (.ps1xml) to be loaded when importing this module 55 | # FormatsToProcess = @() 56 | 57 | # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess 58 | # NestedModules = @() 59 | 60 | # Functions to export from this module 61 | FunctionsToExport = '*' 62 | 63 | # Cmdlets to export from this module 64 | CmdletsToExport = '*' 65 | 66 | # Variables to export from this module 67 | VariablesToExport = '*' 68 | 69 | # Aliases to export from this module 70 | AliasesToExport = '*' 71 | 72 | # List of all modules packaged with this module 73 | # ModuleList = @() 74 | 75 | # List of all files packaged with this module 76 | # FileList = @() 77 | 78 | # Private data to pass to the module specified in RootModule/ModuleToProcess 79 | PrivateData = @{ 80 | GeneratorList = @( 81 | 'alpha' 82 | , 'synonym' 83 | , 'numeric' 84 | , 'syllable' 85 | , 'vowel' 86 | , 'phoneticvowel' 87 | , 'consonant' 88 | , 'person' 89 | , 'address' 90 | , 'space' 91 | , 'noun' 92 | , 'adjective' 93 | , 'verb' 94 | , 'cmdlet' 95 | , 'state' 96 | , 'dave' 97 | , 'guid' 98 | , 'randomdate' 99 | , 'fortnite' 100 | , 'color' 101 | , 'country' 102 | , 'January' 103 | , 'February' 104 | , 'March' 105 | , 'April' 106 | , 'May' 107 | , 'June' 108 | , 'July' 109 | , 'August' 110 | , 'September' 111 | , 'October' 112 | , 'November' 113 | , 'December' 114 | , 'ThisMonth' 115 | , 'ThisYear' 116 | , 'Today' 117 | , 'Tomorrow' 118 | , 'Yesterday' 119 | , 'ThisQuarter' 120 | , 'ThisWeek' 121 | , 'LastYear' 122 | , 'NextYear' 123 | , 'LastMonth' 124 | , 'NextMonth' 125 | , 'Q1' 126 | , 'Q2' 127 | , 'Q3' 128 | , 'Q4' 129 | , 'LastQuarter' 130 | , 'NextQuarter' 131 | , 'LastWeek' 132 | , 'NextWeek' 133 | , 'YearToDate' 134 | , 'Job' 135 | , 'postalCode' 136 | , 'email' 137 | , 'company' 138 | , 'city' 139 | ) 140 | 141 | CultureNorms = @{ 142 | FallbackLang = 'en' 143 | CultureRoot = 'cultures' 144 | } 145 | 146 | # PSData is module packaging and gallery metadata embedded in PrivateData 147 | # It's for rebuilding PowerShellGet (and PoshCode) NuGet-style packages 148 | # We had to do this because it's the only place we're allowed to extend the manifest 149 | # https://connect.microsoft.com/PowerShell/feedback/details/421837 150 | PSData = @{ 151 | # The primary categorization of this module (from the TechNet Gallery tech tree). 152 | Category = "Scripting" 153 | 154 | # Keyword tags to help users find this module via navigations and search. 155 | Tags = @("NameIT", "Generator", "Random") 156 | 157 | # The web address of an icon which can be used in galleries to represent this module 158 | #IconUri = "http://pesterbdd.com/images/Pester.png" 159 | 160 | # The web address of this module's project or support homepage. 161 | ProjectUri = "https://github.com/dfinke/NameIT" 162 | 163 | # The web address of this module's license. Points to a page that's embeddable and linkable. 164 | LicenseUri = "https://github.com/dfinke/NameIT/blob/master/LICENSE.txt" 165 | 166 | # Release notes for this particular version of the module 167 | # ReleaseNotes = False 168 | 169 | # If true, the LicenseUrl points to an end-user license (not just a source license) which requires the user agreement before use. 170 | # RequireLicenseAcceptance = "" 171 | 172 | # Indicates this is a pre-release/testing version of the module. 173 | IsPrerelease = 'False' 174 | } 175 | } 176 | 177 | # HelpInfo URI of this module 178 | # HelpInfoURI = '' 179 | 180 | # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. 181 | # DefaultCommandPrefix = '' 182 | 183 | } 184 | -------------------------------------------------------------------------------- /NameIT.psm1: -------------------------------------------------------------------------------- 1 | $Script:ModuleBase = $PSScriptRoot 2 | 3 | $Subs = @( 4 | @{ 5 | Path = 'Classes' 6 | Export = $false 7 | Recurse = $false 8 | Filter = '*.Class.ps1' 9 | Exclude = @( 10 | '*.Tests.ps1' 11 | ) 12 | } , 13 | 14 | @{ 15 | Path = 'Private' 16 | Export = $false 17 | Recurse = $true 18 | Filter = '*-*.ps1' 19 | Exclude = @( 20 | '*.Tests.ps1' 21 | ) 22 | } , 23 | 24 | @{ 25 | Path = 'Public' 26 | Export = $false # we use static exports for discovery 27 | Recurse = $false 28 | Filter = '*-*.ps1' 29 | Exclude = @( 30 | '*.Tests.ps1' 31 | ) 32 | } , 33 | 34 | @{ 35 | Path = 'Generators' 36 | Export = $false 37 | Recurse = $false 38 | Filter = '*.ps1' 39 | Exclude = @( 40 | '*.Tests.ps1' 41 | ) 42 | } 43 | ) 44 | 45 | 46 | $thisModule = [System.IO.Path]::GetFileNameWithoutExtension($PSCommandPath) 47 | $varName = "__${thisModule}_Export_All" 48 | $exportAll = Get-Variable -Scope Global -Name $varName -ValueOnly -ErrorAction Ignore 49 | 50 | $Subs | ForEach-Object -Process { 51 | $sub = $_ 52 | $thisDir = $ModuleBase | Join-Path -ChildPath $sub.Path | Join-Path -ChildPath '*' 53 | $thisDir | 54 | Get-ChildItem -Filter $sub.Filter -Exclude $sub.Exclude -Recurse:$sub.Recurse -ErrorAction Ignore | ForEach-Object -Process { 55 | try { 56 | $Unit = $_.FullName 57 | . $Unit 58 | if ($sub.Export -or $exportAll) { 59 | Export-ModuleMember -Function $_.BaseName 60 | } 61 | } 62 | catch { 63 | $e = "Could not import '$Unit' with exception: `n`n`n$($_.Exception)" -as $_.Exception.GetType() 64 | throw $e 65 | } 66 | } 67 | } 68 | 69 | 70 | Set-Alias -Name 'ig' -Value Invoke-Generate 71 | 72 | ## Explicit Export for module auto-loading 73 | Export-ModuleMember -Alias @( 74 | 'ig' 75 | ) -Function @( 76 | 'Invoke-Generate' 77 | , 'New-NameItTemplate' 78 | ) 79 | -------------------------------------------------------------------------------- /NameITInteractive.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfinke/NameIT/77f80de874adc658ae767cae64a56ef085792afa/NameITInteractive.ipynb -------------------------------------------------------------------------------- /NameITInteractive.md: -------------------------------------------------------------------------------- 1 | 2 | # NameIT 3 | 4 | PowerShell module for randomly generating names. 5 | 6 | - [GitHub Repo](https://github.com/dfinke/NameIT) 7 | - [PowerShell Gallery](https://www.powershellgallery.com/packages/NameIT) 8 | 9 | Try it below, change the parameters passed, click run and see the results. 10 | 11 | ## Install the Module 12 | 13 | ```ps 14 | # exclude results 15 | # Install-Module NameIT -force 16 | ``` 17 | 18 | ## Getting Started 19 | 20 | Let's try it out. 21 | 22 | ## Generate PowerShell Window Titles or Machine Names 23 | 24 | ```ps 25 | Invoke-Generate "[Adjective]_[Noun]" -Count 5 26 | ``` 27 | 28 | ## Fake Data 29 | 30 | Generate an eight character name with a random set of characters. 31 | 32 | ```ps 33 | Invoke-Generate 34 | ``` 35 | 36 | Generates an eight character name with a random set of characters in the A-Z alphabet. You can change which alphabet is being used by using the `-alphabet` parameter. 37 | 38 | ```ps 39 | Invoke-Generate -alphabet abc 40 | ``` 41 | This is just a default template, most users will have some idea of what they want to generate, but want to randomly splice in other characters to make it unique or come up with some other ideas. For this you can provide a template string. 42 | 43 | ```ps 44 | Invoke-Generate "cafe###" 45 | ``` 46 | 47 | Using the `?` symbol injects a random letter, the `#` symbol injects a random number. 48 | 49 | ```ps 50 | Invoke-Generate "???###" 51 | ``` 52 | 53 | ## Template Functions 54 | The ```?``` and ```#``` characters in a template are just shorthand for functions that you can use in a template, so the previous example could also be written as: 55 | 56 | ```ps 57 | Invoke-Generate "[alpha][alpha][alpha][numeric][numeric][numeric]" 58 | ``` 59 | NameIT exposes several useful functions to help create more useful (and pronounceable names). Here is the current list: 60 | 61 | - `[alpha]`; selects a random character (constrained by the ```-alphabet` parameter). 62 | - `[numeric]`; selects a random numeric (constrained by the `-numbers` parameter). 63 | - `[vowel]`; selects a vowel from *a*, *e*, *i*, *o* or *u*. 64 | - `[phoneticVowel]`; selects a vowel sound, for example *ou*. 65 | - `[consonant]`; selects a consonant from the entire alphabet. 66 | - `[syllable]`; generates (usually) a pronouncable single syllable. 67 | - `[synonym word]`; finds a synonym to match the provided word. 68 | - `[person]`; generate random name of female or male based on provided culture like <FirstName><Space><LastName>. 69 | - `[person female]`;generate random name of female based on provided culture like <FirstName><Space><LastName>. 70 | - `[person male]`;generate random name of male based on provided culture like <FirstName><Space><LastName>. 71 | - `[address]`; generate a random street address. Formatting is biased to US currently. 72 | - `[space]`; inserts a literal space. Spaces are striped from the templates string by default. 73 | 74 | One of the most common functions you'll use is `[syllable()]` because it generally produces something that you can pronounce. For example, if we take our earlier cafe naming example, you might do something like this: 75 | 76 | ```ps 77 | Invoke-Generate "cafe_[syllable][syllable]" 78 | ``` 79 | 80 | You can also get the tool to generate more than one name at a time using the ```--count``` parameter. Here is an example: 81 | 82 | ```ps 83 | Invoke-Generate -count 5 "[synonym cafe]_[syllable][syllable]" 84 | ``` 85 | 86 | -------------------------------------------------------------------------------- /Private/Cache/Clear-CacheStore.ps1: -------------------------------------------------------------------------------- 1 | function Clear-CacheStore { 2 | [CmdletBinding()] 3 | param( 4 | [Parameter()] 5 | [String] 6 | $Key 7 | ) 8 | 9 | $local:cache = Get-CacheStore 10 | 11 | if ($key) { 12 | $null = $local:cache.Remove($key) 13 | } else { 14 | $local:cache.Clear() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Private/Cache/Get-CacheStore.ps1: -------------------------------------------------------------------------------- 1 | function Get-CacheStore { 2 | [CmdletBinding()] 3 | param() 4 | 5 | End { 6 | if (-not $Script:__cache) { 7 | Set-Variable -Name __cache -Scope Script -Value ([System.Collections.Generic.Dictionary[string,object]]::new()) -Option ReadOnly,AllScope 8 | } 9 | 10 | $Script:__cache 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Private/Culture/Resolve-LocalizedPath.ps1: -------------------------------------------------------------------------------- 1 | function Resolve-LocalizedPath { 2 | [CmdletBinding()] 3 | param( 4 | [Parameter()] 5 | [cultureinfo] 6 | $Culture = [cultureinfo]::CurrentCulture , 7 | 8 | [Parameter()] 9 | [String] 10 | $CulturePath = $($Script:ModuleBase | Join-Path -ChildPath $MyInvocation.MyCommand.Module.PrivateData.CultureNorms.CultureRoot) , 11 | 12 | [Parameter()] 13 | [cultureinfo] 14 | $FallbackCulture = $MyInvocation.MyCommand.Module.PrivateData.CultureNorms.FallbackLang , 15 | 16 | [Parameter( 17 | Mandatory, 18 | ValueFromPipeline 19 | )] 20 | [String] 21 | $ContentFile , 22 | 23 | [Parameter()] 24 | [Switch] 25 | $StrictCultureMatch , 26 | 27 | [Parameter()] 28 | [Switch] 29 | $StrictLanguageMatch 30 | ) 31 | 32 | Begin { 33 | $StrictLanguageMatch = $StrictLanguageMatch -or $StrictCultureMatch 34 | 35 | $LanguageFilePath = $CulturePath | Join-Path -ChildPath $Culture.TwoLetterISOLanguageName 36 | 37 | if (-not ($LanguageFilePath | Test-Path)) { 38 | if ($StrictLanguageMatch) { 39 | throw [System.Globalization.CultureNotFoundException]"No cultures with languages compatible with '$($Culture.EnglishName)' were found." 40 | } else { 41 | $Culture = $FallbackCulture 42 | $LanguageFilePath = $CulturePath | Join-Path -ChildPath $Culture.TwoLetterISOLanguageName 43 | 44 | Write-Verbose -Message "Falling back to culture '$($Culture.EnglishName)'" 45 | } 46 | } 47 | 48 | $CultureCode = $Culture.Name.Split('-')[1] 49 | 50 | if ($CultureCode) { 51 | $CultureFilePath = $LanguageFilePath | Join-Path -ChildPath $CultureCode 52 | $UseSpecificCulture = $CultureFilePath | Test-Path 53 | 54 | if ($StrictCultureMatch -and -not $UseSpecificCulture) { 55 | throw [System.Globalization.CultureNotFoundException]"No cultures matching '$($Culture.EnglishName) ($($Culture.Name))' were found." 56 | } 57 | } 58 | } 59 | 60 | Process { 61 | if ($UseSpecificCulture) { 62 | $ContentPath = $CultureFilePath | Join-Path -ChildPath $ContentFile 63 | 64 | if (($ContentPath | Test-Path)) { 65 | return $ContentPath | Resolve-Path 66 | } elseif ($StrictCultureMatch) { 67 | throw [System.IO.FileNotFoundException]"The content file '$ContentFile' does not exist for culture '$($Culture.EnglishName)'" 68 | } 69 | } 70 | 71 | $ContentPath = $LanguageFilePath | Join-Path -ChildPath $ContentFile 72 | if (($ContentPath | Test-Path)) { 73 | return $ContentPath | Resolve-Path 74 | } else { 75 | throw [System.IO.FileNotFoundException]"The content file '$ContentFile' does not exist for culture '$($Culture.EnglishName)'" 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /Private/DataMoverDecorators/Get-CacheableContent.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .SYNOPSIS 3 | Drop-in replacement for Get-Content 4 | 5 | .DESCRIPTION 6 | Can be used transparently in most cases where Get-Content would be used, but will store the contents in memory. 7 | Also optionally supports transforms (your own code in a scriptblock called on each read and/or write into the cache). 8 | 9 | #> 10 | function Get-CacheableContent { 11 | [CmdletBinding(DefaultParameterSetName = 'Path')] 12 | param( 13 | [Parameter( 14 | ParameterSetName = 'Path' , 15 | Mandatory , 16 | ValueFromPipelineByPropertyName 17 | )] 18 | [String[]] 19 | $Path , 20 | 21 | [Parameter( 22 | ParameterSetName = 'LiteralPath' , 23 | Mandatory , 24 | ValueFromPipelineByPropertyName 25 | )] 26 | [Alias('PSPath')] 27 | [String[]] 28 | $LiteralPath , 29 | 30 | [Parameter()] 31 | [Object] # in core this is [System.Text.Encoding], in desktop it's [FileSystemCmdletProviderEncoding] 32 | $Encoding = 'utf8' , 33 | 34 | [Parameter()] 35 | [Switch] 36 | $Raw , 37 | 38 | [Parameter()] 39 | [Switch] 40 | $RefreshCache , 41 | 42 | [Parameter()] 43 | [Alias('Process')] 44 | [ScriptBlock] 45 | $Transform , 46 | 47 | [Parameter()] 48 | [ValidateSet( 49 | 'Read' 50 | ,'Write' 51 | ,'ReadWrite' 52 | )] 53 | [String] 54 | $TransformCacheContentOn = 'Write' 55 | ) 56 | 57 | Begin { 58 | $local:cache = Get-CacheStore 59 | 60 | $commonParams = @{} 61 | if ($Encoding) { 62 | $commonParams.Encoding = $Encoding 63 | } 64 | 65 | if ($Raw) { 66 | $commonParams.Raw = $Raw 67 | } 68 | } 69 | 70 | Process { 71 | $OnePath = $PSBoundParameters[$PSCmdlet.ParameterSetName] 72 | 73 | foreach ($thisPath in $OnePath) { 74 | $key = $thisPath 75 | 76 | if ($RefreshCache -or -not $local:cache.ContainsKey($key)) { 77 | $params = $commonParams.Clone() 78 | $params[$PSCmdlet.ParameterSetName] = $thisPath 79 | 80 | $content = Get-Content @params 81 | 82 | $local:cache[$key] = if ($Transform -and $TransformCacheContentOn -in 'Write','ReadWrite') { 83 | $content | ForEach-Object -Process $Transform 84 | } else { 85 | $content 86 | } 87 | } 88 | 89 | if ($Transform -and $TransformCacheContentOn -in 'Read','ReadWrite') { 90 | $local:cache[$key] | ForEach-Object -Process $Transform 91 | } else { 92 | $local:cache[$key] 93 | } 94 | } 95 | } 96 | } -------------------------------------------------------------------------------- /Private/DataMoverDecorators/Import-CacheableCsv.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .SYNOPSIS 3 | Drop-in replacement for Import-Csv 4 | 5 | .DESCRIPTION 6 | Can be used transparently in most cases where Import-Csv would be used, but will store the contents in memory. 7 | Also optionally supports transforms (your own code in a scriptblock called on each read and/or write into the cache). 8 | 9 | #> 10 | function Import-CacheableCsv { 11 | [CmdletBinding(DefaultParameterSetName = 'Delimiter')] 12 | param( 13 | [Parameter( 14 | ValueFromPipelineByPropertyName 15 | )] 16 | [ValidateNotNullOrEmpty()] 17 | [String[]] 18 | $Path , 19 | 20 | [Parameter( 21 | ValueFromPipelineByPropertyName 22 | )] 23 | [ValidateNotNullOrEmpty()] 24 | [Alias('PSPath')] 25 | [String[]] 26 | $LiteralPath , 27 | 28 | [Parameter( 29 | ParameterSetName = 'Delimiter' 30 | )] 31 | [char] 32 | $Delimiter , 33 | 34 | [Parameter()] 35 | [object] 36 | $Encoding = 'utf8' , 37 | 38 | [Parameter()] 39 | [String[]] 40 | $Header , 41 | 42 | [Parameter( 43 | ParameterSetName = 'UseCulture' , 44 | Mandatory 45 | )] 46 | [Switch] 47 | $UseCulture , 48 | 49 | [Parameter( 50 | ParameterSetName = 'UseCulture' 51 | )] 52 | [cultureinfo] 53 | $Culture , 54 | 55 | [Parameter()] 56 | [Switch] 57 | $RefreshCache , 58 | 59 | [Parameter()] 60 | [Alias('Process')] 61 | [ScriptBlock] 62 | $Transform , 63 | 64 | [Parameter()] 65 | [ValidateSet( 66 | 'Read' 67 | ,'Write' 68 | ,'ReadWrite' 69 | )] 70 | [String] 71 | $TransformCacheContentOn = 'Write' 72 | ) 73 | 74 | Begin { 75 | $local:cache = Get-CacheStore 76 | 77 | $commonParams = @{} 78 | if ($Encoding) { 79 | $commonParams.Encoding = $Encoding 80 | } 81 | 82 | if ($Delimiter) { 83 | $commonParams.Delimiter = $Delimiter 84 | } 85 | 86 | if ($Header) { 87 | $commonParams.Header = $Header 88 | } 89 | 90 | if ($UseCulture) { 91 | if ($Culture) { 92 | $commonParams.Delimiter = $Culture.TextInfo.ListSeparator 93 | } else { 94 | $commonParams.UseCulture = $UseCulture 95 | } 96 | } 97 | } 98 | 99 | Process { 100 | $params = $commonParams.Clone() 101 | 102 | if ($PSBoundParameters.ContainsKey('LiteralPath')) { 103 | $OnePath = $LiteralPath 104 | $pathParam = 'LiteralPath' 105 | } 106 | 107 | if ($PSBoundParameters.ContainsKey('Path')) { 108 | if ($OnePath) { 109 | throw [System.InvalidOperationException]'You must specify either the -Path or -LiteralPath parameters, but not both.' 110 | } 111 | $OnePath = $Path 112 | $pathParam = 'Path' 113 | } 114 | 115 | foreach ($thisPath in $OnePath) { 116 | $key = $thisPath 117 | 118 | if ($RefreshCache -or -not $local:cache.ContainsKey($key)) { 119 | $params[$pathParam] = $thisPath 120 | 121 | $content = Import-Csv @params 122 | 123 | $local:cache[$key] = if ($Transform -and $TransformCacheContentOn -in 'Write','ReadWrite') { 124 | $content | ForEach-Object -Process $Transform 125 | } else { 126 | $content 127 | } 128 | } 129 | 130 | if ($Transform -and $TransformCacheContentOn -in 'Read','ReadWrite') { 131 | $local:cache[$key] | ForEach-Object -Process $Transform 132 | } else { 133 | $local:cache[$key] 134 | } 135 | } 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /Private/GeneratorSet/Add-GeneratorToSet.ps1: -------------------------------------------------------------------------------- 1 | function Add-GeneratorToSet { 2 | [CmdletBinding(DefaultParameterSetName = 'Silent')] 3 | [OutputType([bool], ParameterSetName = 'WithResult')] 4 | [OutputType([void], ParameterSetName = 'Silent')] 5 | param( 6 | [Parameter( 7 | Mandatory , 8 | ValueFromPipeline 9 | )] 10 | [ValidateNotNullOrEmpty()] 11 | [String] 12 | $Name , 13 | 14 | [Parameter( 15 | Mandatory , 16 | ParameterSetName = 'WithResult' 17 | )] 18 | [Switch] 19 | $WithResult 20 | ) 21 | 22 | Begin { 23 | $local:generators = Get-GeneratorSet 24 | } 25 | 26 | Process { 27 | $local:result = $local:generators.Add($Name) 28 | 29 | if ($WithResult) { 30 | $local:result 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Private/GeneratorSet/Clear-GeneratorSet.ps1: -------------------------------------------------------------------------------- 1 | function Clear-GeneratorSet { 2 | [CmdletBinding()] 3 | [OutputType([void])] 4 | param() 5 | 6 | End { 7 | if ($Script:__generatorSet) { 8 | $Script:__generatorSet.Clear() 9 | Remove-Variable -Name __generatorSet -Scope Script -Force 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /Private/GeneratorSet/Get-GeneratorSet.ps1: -------------------------------------------------------------------------------- 1 | function Get-GeneratorSet { 2 | [CmdletBinding()] 3 | [OutputType([System.Collections.Generic.HashSet[string]])] 4 | param( 5 | [Parameter()] 6 | [System.Collections.Generic.IEqualityComparer[string]] 7 | $Comparer = [System.StringComparer]::InvariantCultureIgnoreCase , 8 | 9 | [Parameter()] 10 | [Switch] 11 | $Enumerate 12 | ) 13 | 14 | End { 15 | if (-not $Script:__generatorSet) { 16 | Set-Variable -Name __generatorSet -Scope Script -Value ( 17 | [System.Collections.Generic.HashSet[string]]::new([string[]]$MyInvocation.MyCommand.Module.PrivateData.GeneratorList, $Comparer) 18 | ) -Option ReadOnly,AllScope 19 | } 20 | 21 | if ($Enumerate) { 22 | $Script:__generatorSet 23 | } else { 24 | ,$Script:__generatorSet 25 | } 26 | # This is a better way, but a bug in PS 6 prevents it from working (fixed in 6.2 it seems) 27 | # https://github.com/PowerShell/PowerShell/issues/5955 28 | # 29 | # Write-Output -InputObject $Script:__generatorSet -NoEnumerate:(-not $Enumerate) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Private/GeneratorSet/Test-GeneratorInSet.ps1: -------------------------------------------------------------------------------- 1 | function Test-GeneratorInSet { 2 | [CmdletBinding()] 3 | [OutputType([bool])] 4 | param( 5 | [Parameter( 6 | Mandatory , 7 | ValueFromPipeline 8 | )] 9 | [ValidateNotNull()] 10 | [AllowEmptyString()] 11 | [String] 12 | $Name 13 | ) 14 | 15 | Begin { 16 | $local:generators = Get-GeneratorSet 17 | } 18 | 19 | Process { 20 | $local:generators.Contains($Name) 21 | } 22 | } -------------------------------------------------------------------------------- /Private/Utility/Convert-DataTypeToNameIt.ps1: -------------------------------------------------------------------------------- 1 | function Convert-DataTypeToNameIt { 2 | param($dataType) 3 | 4 | switch ($dataType) { 5 | "int" {"numeric 5"} 6 | "string" {"alpha 6"} 7 | default {"alpha 6"} 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Private/Utility/Get-RandomChoice.ps1: -------------------------------------------------------------------------------- 1 | function Get-RandomChoice { 2 | param ( 3 | $list, 4 | [int]$length = 1 5 | ) 6 | 7 | $max = $list.Length 8 | 9 | $( 10 | for ($i = 0; $i -lt $length; $i++) { 11 | $list[(Get-Random -Minimum 0 -Maximum $max)] 12 | } 13 | ) -join '' 14 | } 15 | -------------------------------------------------------------------------------- /Private/Utility/Get-RandomValue.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .Synopsis 3 | Utilize Invoke-Generate to create a random value with a specified type. 4 | 5 | .DESCRIPTION 6 | NameIt returns strings including unecessary zeros in numbers. Get-RandomValue returns a specified values type. 7 | 8 | .PARAMETER Template 9 | A Nameit template string. 10 | 11 | .PARAMETER As 12 | A type name specifying the return type of the command. 13 | 14 | .PARAMETER Alphabet 15 | A set of alpha characters used to generate random strings. 16 | 17 | .PARAMETER Numbers 18 | A set of digit characters used to generate random numerics. 19 | 20 | .EXAMPLE 21 | PS C:\> 1..3 | % {Get-RandomValue "###.##" -as double} 22 | 75.41 23 | 439.92 24 | 195.55 25 | 26 | .EXAMPLE 27 | PS C:\> 1..3 | % {Get-RandomValue "#.#.#" -as version} 28 | 29 | Major Minor Build Revision 30 | ----- ----- ----- -------- 31 | 1 3 1 -1 32 | 2 2 5 -1 33 | 7 1 0 -1 34 | #> 35 | function Get-RandomValue { 36 | [CmdletBinding()] 37 | [Alias()] 38 | Param 39 | ( 40 | [Parameter(Mandatory, Position = 0)] 41 | [string] 42 | $Template, 43 | 44 | [Parameter(Position = 1)] 45 | [Type] 46 | $As, 47 | 48 | [Parameter(Position = 2)] 49 | [string] 50 | $Alphabet, 51 | 52 | [Parameter(Position = 3)] 53 | [string] 54 | $Numbers 55 | ) 56 | 57 | $type = $null 58 | 59 | if ( $PSBoundParameters.ContainsKey('As') ) { 60 | 61 | $type = $As 62 | 63 | } 64 | 65 | $null = $PSBoundParameters.Remove('As') 66 | $stringValue = Invoke-Generate @PSBoundParameters 67 | 68 | if ( -not $null -eq $type ) { 69 | 70 | $returnValue = $stringValue -as $type 71 | if ($null -eq $returnValue) { 72 | 73 | Write-Warning "Could not cast '$stringValue' to [$($type.Name)]" 74 | 75 | } 76 | 77 | } 78 | else { 79 | 80 | $returnValue = $stringValue 81 | 82 | } 83 | 84 | $returnValue 85 | } 86 | -------------------------------------------------------------------------------- /Private/Utility/Invoke-AllTests.ps1: -------------------------------------------------------------------------------- 1 | function Test-String{ 2 | param($p) 3 | 4 | [PSCustomObject]@{ 5 | Test=$p -is [string] 6 | DataType = "string" 7 | } 8 | } 9 | 10 | function Test-Date { 11 | param($p) 12 | 13 | [datetime]$result = [datetime]::MinValue 14 | 15 | [PSCustomObject]@{ 16 | Test=[datetime]::TryParse($p, [ref]$result) 17 | DataType = "datetime" 18 | } 19 | } 20 | 21 | function Test-Boolean { 22 | param($p) 23 | 24 | #[bool]$result = [bool]::FalseString 25 | [bool]$result = $false 26 | 27 | [PSCustomObject]@{ 28 | Test=[bool]::TryParse($p, [ref]$result) 29 | DataType = "bool" 30 | } 31 | } 32 | 33 | function Test-Number { 34 | param($p) 35 | 36 | [double]$result = [double]::MinValue 37 | 38 | [PSCustomObject]@{ 39 | Test=[double]::TryParse($p, [ref]$result) 40 | DataType = "double" 41 | } 42 | } 43 | 44 | function Test-Integer { 45 | param($p) 46 | 47 | [int]$result = [int]::MinValue 48 | 49 | [PSCustomObject]@{ 50 | Test=[int]::TryParse($p, [ref]$result) 51 | DataType = "int" 52 | } 53 | } 54 | 55 | $tests = [ordered]@{ 56 | TestBoolean = Get-Command Test-Boolean 57 | TestInteger = Get-Command Test-Integer 58 | TestNumber = Get-Command Test-Number 59 | TestDate = Get-Command Test-Date 60 | TestString = Get-Command Test-String 61 | } 62 | 63 | function Invoke-AllTests { 64 | param( 65 | $target, 66 | [Switch]$OnlyPassing, 67 | [Switch]$FirstOne 68 | ) 69 | 70 | $resultCount=0 71 | $tests.GetEnumerator() | ForEach { 72 | 73 | $result=& $_.Value $target 74 | 75 | $testResult = [PSCustomObject]@{ 76 | Test = $_.Key 77 | Target = $target 78 | Result = $result.Test 79 | DataType= $result.DataType 80 | } 81 | 82 | if(!$OnlyPassing) { 83 | $testResult 84 | } elseif ($result.Test -eq $true) { 85 | if($FirstOne) { 86 | if($resultCount -ne 1) { 87 | $testResult 88 | $resultCount+=1 89 | } 90 | } else { 91 | $testResult 92 | } 93 | } 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /Public/Invoke-Generate.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .Synopsis 3 | Utilize Invoke-Generate to create a random value type 4 | 5 | .DESCRIPTION 6 | NameIt returns strings including unecessary zeros in numbers. Get-RandomValue returns a specified values type. 7 | 8 | .PARAMETER Template 9 | A Nameit template string. 10 | 11 | [alpha]; selects a random character (constrained by the -Alphabet parameter). 12 | [numeric]; selects a random numeric (constrained by the -Numbers parameter). 13 | [vowel]; selects a vowel from a, e, i, o or u. 14 | [phoneticVowel]; selects a vowel sound, for example ou. 15 | [consonant]; selects a consonant from the entire alphabet. 16 | [syllable]; generates (usually) a pronouncable single syllable. 17 | [synonym word]; finds a synonym to match the provided word. 18 | [person]; generate random name of female or male based on provided culture like . 19 | [person female]; generate random name of female based on provided culture like . 20 | [person female first] 21 | [person female last] 22 | [person male]; generate random name of male based on provided culture like . 23 | [person male first] 24 | [person male last] 25 | [person both first] 26 | [person both last] 27 | [address]; generate a random street address. Formatting is biased to US currently. 28 | [space]; inserts a literal space. Spaces are striped from the templates string by default. 29 | 30 | .PARAMETER Count 31 | The number of random items to return. 32 | 33 | .PARAMETER Alphabet 34 | A set of alpha characters used to generate random strings. 35 | 36 | .PARAMETER Numbers 37 | A set of digit characters used to generate random numerics. 38 | 39 | .EXAMPLE 40 | PS C:\> Invoke-Generate 41 | lhcqalmf 42 | 43 | .EXAMPLE 44 | PS C:\> Invoke-Generate -alphabet abc 45 | cabccbca 46 | 47 | .EXAMPLE 48 | PS C:\> Invoke-Generate "cafe###" 49 | cafe176 50 | 51 | .EXAMPLE 52 | PS C:\> Invoke-Generate "???###" 53 | yhj561 54 | 55 | .EXAMPLE 56 | PS C:\> Invoke-Generate -count 5 "[synonym cafe]_[syllable][syllable]" 57 | restaurant_owkub 58 | coffeebar_otqo 59 | eatingplace_umit 60 | coffeeshop_fexuz 61 | coffeebar_zuvpe 62 | 63 | .Notes 64 | Inspired by 65 | http://mitchdenny.com/introducing-namerer-for-naming-things/ 66 | #> 67 | 68 | function Invoke-Generate { 69 | [CmdletBinding(DefaultParameterSetName = "Data")] 70 | param ( 71 | [Parameter(Position = 0)] 72 | [String] 73 | $Template = '????????', 74 | 75 | [Parameter(Position = 1)] 76 | [int] 77 | $Count = 1, 78 | 79 | [Parameter(Position = 2)] 80 | [string] 81 | $Alphabet = 'abcdefghijklmnopqrstuvwxyz', 82 | 83 | [Parameter(Position = 3)] 84 | [string] 85 | $Numbers = '0123456789', 86 | 87 | [Parameter(Position = 4)] 88 | [HashTable]$CustomData, 89 | 90 | [Parameter(Position = 5)] 91 | [String]$CustomDataFile = "$ModuleBase\customData\customData.ps1", 92 | 93 | [Switch]$ApprovedVerb, 94 | [Switch]$AsCsv, 95 | [Switch]$UseCsvCultureSeparator, 96 | [Switch]$AsTabDelimited, 97 | [Switch]$AsPSObject , 98 | 99 | [Parameter()] 100 | [int] 101 | $SetSeed , 102 | 103 | [Parameter()] 104 | [cultureinfo] 105 | $Culture = [cultureinfo]::CurrentCulture 106 | ) 107 | 108 | if ($PSBoundParameters.ContainsKey('SetSeed')) { 109 | $null = Get-Random -SetSeed $SetSeed 110 | } 111 | 112 | $script:alphabet = $alphabet 113 | $script:numbers = $number 114 | 115 | if (Test-Path $CustomDataFile) { 116 | $CustomData += . $CustomDataFile 117 | } 118 | 119 | if ($CustomData) { 120 | foreach ($key in $CustomData.Keys) { 121 | Add-GeneratorToSet -Name $key 122 | $null = New-Item -Path Function: -Name $key -Value { $CustomData[$MyInvocation.InvocationName] | Get-Random } -Force 123 | } 124 | } 125 | 126 | $template = $template -replace '\?', '[alpha]' -replace '#', '[numeric]' 127 | $unitOfWork = $template -split "\[(.+?)\]" | Where-Object -FilterScript { $_ } 128 | $tokenizerErrors = $null # must be declared for [ref] 129 | 130 | 1..$count | ForEach-Object -Process { 131 | $r = -join $($unitOfWork | ForEach-Object -Process { 132 | $tokens = [System.Management.Automation.PSParser]::Tokenize($_, [ref] $tokenizerErrors) 133 | $fn = $tokens[0].Content 134 | if (Test-GeneratorInSet -Name $fn) { 135 | $generator = Get-Command -Name $fn -ErrorAction Stop 136 | $arguments = $tokens | 137 | Select-Object -Skip 1 | 138 | ForEach-Object -Process { 139 | if ($_.Type -eq [System.Management.Automation.PSTokenType]::String) { 140 | "'{0}'" -f [System.Management.Automation.Language.CodeGeneration]::EscapeSingleQuotedStringContent($_.Content) 141 | } else { 142 | $_.Content 143 | } 144 | } 145 | 146 | if ($generator.Parameters.ContainsKey('Culture') -and $arguments.Count -le $generator.Parameters['Culture'].Attributes.Position) { 147 | $arguments = @() + $arguments + @('-Culture', $Culture.ToString()) 148 | } 149 | 150 | $generatorExpression = "$fn $arguments" 151 | $generatorExpression | Write-Verbose 152 | $generatorExpression | Invoke-Expression 153 | } else { 154 | $_ 155 | } 156 | }) 157 | 158 | if ($AsPSObject) { 159 | [pscustomobject](ConvertFrom-StringData $r) 160 | } 161 | elseif ($AsCsv) { 162 | $separator = if ($UseCsvCultureSeparator) { 163 | @{ 164 | Delimiter = $Culture.TextInfo.ListSeparator 165 | } 166 | } else { 167 | @{} 168 | } 169 | [pscustomobject](ConvertFrom-StringData $r) | 170 | ConvertTo-Csv -NoTypeInformation @separator 171 | } 172 | elseif ($AsTabDelimited) { 173 | [pscustomobject](ConvertFrom-StringData $r) | 174 | ConvertTo-Csv -Delimiter "`t" -NoTypeInformation 175 | } 176 | else { 177 | $r 178 | } 179 | } 180 | } 181 | -------------------------------------------------------------------------------- /Public/New-NameItTemplate.ps1: -------------------------------------------------------------------------------- 1 | function New-NameItTemplate { 2 | <# 3 | .SYNOPSIS 4 | Auto gen a template 5 | 6 | .EXAMPLE 7 | ig (New-NameItTemplate {[PSCustomObject]@{Company="";Name="";Age=0;address="";state="";zip=""}}) -Count 5 -AsPSObject | ft 8 | #> 9 | param( 10 | [scriptblock]$sb 11 | ) 12 | 13 | $result = &$sb 14 | $result.psobject.properties.name.foreach( { 15 | $propertyName = $_ 16 | 17 | switch ($propertyName) { 18 | "name" {"$($propertyName)=[person]"} 19 | "zip" {"$($propertyName)=[state zip]"} 20 | "address" {"$($propertyName)=[address]"} 21 | "state" {"$($propertyName)=[state]"} 22 | default { 23 | $dataType = Invoke-AllTests $result.$propertyName -OnlyPassing -FirstOne 24 | "{0}=[{1}]" -f $propertyName, (Convert-DataTypeToNameIt $dataType.dataType) 25 | } 26 | } 27 | }) -join "`r`n" 28 | } 29 | -------------------------------------------------------------------------------- /Public/README.md: -------------------------------------------------------------------------------- 1 | # Adding a new public function? 2 | Please add a static entry to the `Export-ModuleMember` call at the end of `NameIT.psm1`! 3 | 4 | This will ensure module auto-loading works correctly. 5 | -------------------------------------------------------------------------------- /PublishToGallery.ps1: -------------------------------------------------------------------------------- 1 | 2 | $p = @{ 3 | Name = "NameIT" 4 | NuGetApiKey = $NuGetApiKey 5 | #LicenseUri = "https://github.com/dfinke/NameIT/blob/master/LICENSE.txt" 6 | #Tag = "NameIT","Generator","Export","Import" 7 | ReleaseNote = "Generate a random name for a 'person'" 8 | #ProjectUri = "https://github.com/dfinke/NameIT" 9 | } 10 | 11 | Publish-Module @p -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 |

5 | 6 | 7 | 8 | 9 | 10 |

11 | 12 | 13 | 14 |

15 | 16 | PowerShell NameIT 17 | - 18 | PowerShell module for randomly generating names 19 | 20 | This project is a port of https://github.com/mitchdenny/namerer. Hat tip to [Mitch Denny](https://twitter.com/mitchdenny). 21 | 22 | ## v2.3.3 23 | 24 | - Check [Change log](./changelog.md) for new templates 25 | ## v2.3.2 26 | - Added `job` to template 27 | 28 | ```powershell 29 | ig '[person],[job]' -count 3 30 | 31 | Alexandria Stephens,Biologist 32 | Braiden Patel,Social media coordinator 33 | Mya Perez,Principal 34 | ``` 35 | 36 | ## v2.3.2 37 | 38 | [Göran Hanell](https://github.com/imaginetobe) added names and color in Swedish. 39 | 40 | ```powershell 41 | ig '[color]' -Culture sv-SE -Count 5 42 | 43 | grön 44 | vit 45 | orange 46 | grå 47 | rosa 48 | ``` 49 | 50 | 51 | ```powershell 52 | ig '[person]' -Culture sv-SE -Count 5 53 | 54 | Helen Holmberg 55 | Sten Samuelsson 56 | Sven Abrahamsson 57 | Mona Ahmed 58 | Anette Dahlberg 59 | ``` 60 | 61 | ## v2.3.0 62 | 63 | - Added 64 | 65 | ```powershell 66 | # Run on 12/31/2020 67 | 68 | $templates = $( 69 | 'ThisQuarter' 70 | 'q1', 'q3', 'q3', 'q4' 71 | 'Today', 'Tomorrow', 'Yesterday' 72 | 'February', 'April', 'October' 73 | ) 74 | 75 | foreach ($template in $templates) { 76 | $template | ForEach-Object { 77 | [PSCustomObject]@{ 78 | Template = $_ 79 | Result = Invoke-Generate "$_" 80 | } 81 | } 82 | } 83 | ``` 84 | 85 | ## Prints 86 | 87 | Generates these random dates. 88 | ``` 89 | Template Result 90 | -------- ------ 91 | ThisQuarter 10/23/2020 92 | q1 3/15/2020 93 | q3 7/12/2020 94 | q3 9/18/2020 95 | q4 10/12/2020 96 | Today 12/31/2020 97 | Tomorrow 1/1/2021 98 | Yesterday 12/30/2020 99 | February 2/15/2020 100 | April 4/13/2020 101 | October 10/8/2020 102 | ``` 103 | 104 | |Item|Description| 105 | |---|---| 106 | |January|Generate a random date for this month| 107 | |February|Generate a random date for this month| 108 | |March|Generate a random date for this month| 109 | |April|Generate a random date for this month| 110 | |May|Generate a random date for this month| 111 | |June|Generate a random date for this month| 112 | |July|Generate a random date for this month| 113 | |August|Generate a random date for this month| 114 | |September|Generate a random date for this month| 115 | |October|Generate a random date for this month| 116 | |November|Generate a random date for this month| 117 | |December|Generate a random date for this month| 118 | |ThisQuarter|Generate a random date for this quarter| 119 | |Q1|Generate a random date for Q1| 120 | |Q2|Generate a random date for Q2| 121 | |Q3|Generate a random date for Q3| 122 | |Q4|Generate a random date for Q4| 123 | |LastQuarter|Generate a random date for last quarter| 124 | |NextQuarter|Generate a random date for next quarter| 125 | |Today|Generate todays date| 126 | |Tomorrow|Generate tomorrows date| 127 | |Yesterday|Generate yesterdays date| 128 | 129 | 130 | ## April 2019 - 2.1.0 131 | Language/Culture can be passed directly to `Invoke-Generate`, which will apply to everything without an explicit override. 132 | 133 | ```powershell 134 | ig "[color][space][color en-GB]" -Culture ja-JP 135 | ``` 136 | 137 | This is especially easier when there's lots of arguments you have to get through to get to specify culture (last). 138 | 139 | ```powershell 140 | ig "[randomdate]" # implicitly uses culture short date format 141 | ig "[randomdate 1/1/1999 12/31/1999 'yyyy-MM-dd' ja-JP]" # can't use culture format this way, have to specify format explicitly 142 | ig "[randomdate]" -Culture ja-JP # lets the other arguments remain optional 143 | ``` 144 | 145 | * Fixed module auto-loading from a regression in 2.1.0, and includes some internal fixes and changes. 146 | * Internal refactor to individual files. 147 | * Support added for multiple languages and cultures. Tries to give you results based on your current culture, or a specific one you provide. 148 | 149 | ![image](https://raw.githubusercontent.com/dfinke/NameIT/master/images/MultipleLanguages.png) 150 | 151 | ```powershell 152 | ig "[color]" # your current culture 153 | ig "[color en-GB]" # choosing lang-CULTURE 154 | ig "[color ja]" # choosing lang only 155 | ``` 156 | 157 | Falls back to "something in your chosen language" if specific culture is not available. 158 | Falls back to US English (en-US) if your language is not available at all. 159 | 160 | ```powershell 161 | ig "[color en-CA]" # returns US English color because no Canadian English colors are defined (as of this writing) 162 | ig "[noun en-GB]" # returns US English noun because even though British English exists, there's no nouns file 163 | ig "[color es]" # returns US English because no Spanish language files exist yet 164 | ``` 165 | 166 | `randomdate` can now take a lower and upper bound on time and a format string. 167 | By default uses chosen culture's short date format. 168 | 169 | ```powershell 170 | ig "[randomdate]" # a random date in my culture format 171 | ig "[randomdate '1/1/2000']" # a random date from 1 Jan 2000 onward 172 | ig "[randomdate '1/1/2000' '12/31/2000']" # a random date in the year 2000 173 | ig "[randomdate '1/1/2000' '12/31/2000' 'dd MMM yyyy']" # a random date in 2000 with a custom format 174 | ``` 175 | 176 | More information coming soon for contributors on how to deal (or not) with culture stuff. 177 | 178 | ## September 2018 179 | 180 | Added `New-NameItTemplate`. Pass an object with properties and it will generate a `NameIT` template. 181 | 182 | If a property name has has the value `name`, `zip`, `address`, or `state` the appropriate `NameIT` template is applied, otherwise the type is inferred as numeric or alpha. 183 | 184 | ```powershell 185 | New-NameItTemplate {[PSCustomObject]@{Company="";Name=""}} 186 | ``` 187 | 188 | ``` 189 | Company=[alpha 6] 190 | Name=[person] 191 | ``` 192 | 193 | ### OR 194 | 195 | Pass it to `Invoke-Generate` directly. 196 | 197 | ```powershell 198 | Invoke-Generate (New-NameItTemplate {[PSCustomObject]@{Company="";Name=""}}) -Count 5 -AsPSObject 199 | ``` 200 | 201 | ## Output 202 | 203 | ``` 204 | Name Company 205 | ---- ------- 206 | Elvis Potts cuajwj 207 | Janae Herring kyzfgb 208 | Cecelia Cruz slseam 209 | Akira Kelly bltamv 210 | Bella Bean wfhats 211 | ``` 212 | 213 | 214 | ## In Action 215 | 216 | ![image](https://raw.githubusercontent.com/dfinke/NameIT/master/images/nameit.gif) 217 | 218 | ![image1](https://github.com/dfinke/NameIT/blob/master/images/nameitAddressVerbNounAdjective.gif?raw=true) 219 | 220 | 221 | ## 7/10/2018 222 | - Added badges 223 | - Added first|last for `person` address issue https://github.com/dfinke/NameIT/issues/16 224 | 225 | ``` 226 | [person female first] 227 | [person female last] 228 | [person male first] 229 | [person male last] 230 | [person both first] 231 | [person both last] 232 | ``` 233 | 234 | ## Release 1.8.5 : 6/18/2018 235 | Added `RandomDate` 236 | 237 | ```powershell 238 | ig "[person] [randomdate]" -Count 5 239 | ``` 240 | 241 | ``` 242 | Austin Jones 06/04/2007 243 | Kristin Hernandez 06/04/2007 244 | Lindsay Richardson 06/04/2007 245 | Alex Morales 06/04/2007 246 | Nicholas Sanders 06/04/2007 247 | ``` 248 | 249 | ## Release 1.8.2 : 03/5/2017 250 | Added more adjectives and stored them randomly, suggested by [Joel Bennett](https://twitter.com/Jaykul). 251 | 252 | Added `guid` to the template. *Chris Hunt* suggested and then delegated the implementation to me after I showed him I was randomly generating guid parts. 253 | 254 | ```powershell 255 | Invoke-Generate "[guid]" 256 | Invoke-Generate "[guid 0]" 257 | Invoke-Generate "[guid 3]" 258 | ``` 259 | 260 | ``` 261 | 690dcb11-a5b5-462a-a860-8de11626f5fd 262 | eeb507b0 263 | 9873 264 | ``` 265 | 266 | ## Release 1.7.0 : 10/3/2016 267 | * Generate random cmdlet names (verb-noun) and limit it to approved verbs 268 | 269 | ```powershell 270 | PS C:\> Invoke-Generate "[cmdlet]" -c 3 271 | Boat-Other 272 | Lawyer-South 273 | Loose-Trip 274 | PS C:\> Invoke-Generate "[cmdlet]" -c 3 -ApprovedVerb 275 | Request-Purchase 276 | Push-Grocery 277 | Format-River 278 | ``` 279 | 280 | * Thank you [Chris Hunt](https://github.com/cdhunt) for: 281 | * Adding the `address` feature (and more) 282 | * Suggesting of adding adjective, noun and verb 283 | 284 | ## Manage Your PowerShell Window Titles 285 | Put this line in your `$Profile`. 286 | 287 | `$Host.UI.RawUI.WindowTitle = Invoke-Generate "PowerShell[space]-[space][Adjective][Noun]"` 288 | 289 | Or [try this gist snippet](https://gist.github.com/cdhunt/00a6f98b9d7773b2610bdc6d490ad217). 290 | 291 | ![](https://raw.githubusercontent.com/dfinke/NameIT/master/images/nameitConsoleTitle.png) 292 | 293 | ```PowerShell 294 | PS C:\> Invoke-Generate "[person],[space][address][space]" -c 5 295 | Derrick Cox, 1 Yicxizehpuw Av 296 | Bethany Jones, 237 Tataqe Keys 297 | Courtney Lewis, 162 Goyinu Ranch 298 | Stacy Davis, 127 Odwus Lgt 299 | Shane Carter, 308 Qeep Harb 300 | ``` 301 | ## Release 1.04: 1/16/2016 302 | 303 | * Thank you [Wojciech Sciesinski](https://github.com/it-praktyk) for adding the NameIT `person` feature 304 | 305 | ``` 306 | PS C:\> Invoke-Generate "[person]" -c 3 307 | Meghan Cruz 308 | Cassandra Smith 309 | Luis Flores 310 | PS C:\> Invoke-Generate "[person female]" -c 3 311 | Heather Rogers 312 | Meghan Bailey 313 | Julia Perez 314 | PS C:\> Invoke-Generate "[person male]" -c 3 315 | Chad Bailey 316 | Jordan Gray 317 | Matthew Jackson 318 | ``` 319 | 320 | 321 | ## Examples 322 | 323 | ```powershell 324 | Invoke-Generate 325 | # Output: 326 | lhcqalmf 327 | ``` 328 | Will generate an eight character name with a random set of characters in the A-Z alphabet. You can change which alphabet is being used by using the `-alphabet` parameter. 329 | 330 | ```powershell 331 | Invoke-Generate -alphabet abc 332 | # Output: 333 | cabccbca 334 | ``` 335 | 336 | This is just a default template, most users will have some idea of what they want to generate, but want to randomly splice in other characters to make it unique or come up with some other ideas. For this you can provide a template string. 337 | 338 | ```powershell 339 | Invoke-Generate "cafe###" 340 | # Output: 341 | cafe176 342 | ``` 343 | 344 | Using the `?` symbol injects a random letter, the `#` symbol injects a random number. 345 | 346 | ```powershell 347 | Invoke-Generate "???###" 348 | # Output: 349 | yhj561 350 | ``` 351 | 352 | ## Template Functions 353 | The ```?``` and ```#``` characters in a template are just shorthand for functions that you can use in a template, so the previous example could also be written as: 354 | 355 | ```powershell 356 | Invoke-Generate "[alpha][alpha][alpha][numeric][numeric][numeric]" 357 | # Output: 358 | voe336 359 | ``` 360 | 361 | NameIT exposes a bunch of useful functions to help create more useful (and pronouncable names). Here is the current list that is supported: 362 | 363 | - `[alpha]`; selects a random character (constrained by the ```-alphabet` parameter). 364 | - `[numeric]`; selects a random numeric (constrained by the `-numbers` parameter). 365 | - `[vowel]`; selects a vowel from *a*, *e*, *i*, *o* or *u*. 366 | - `[phoneticVowel]`; selects a vowel sound, for example *ou*. 367 | - `[consonant]`; selects a consonant from the entire alphabet. 368 | - `[syllable]`; generates (usually) a pronouncable single syllable. 369 | - `[synonym word]`; finds a synonym to match the provided word. 370 | - `[person]`; generate random name of female or male based on provided culture like <FirstName><Space><LastName>. 371 | - `[person female]`;generate random name of female based on provided culture like <FirstName><Space><LastName>. 372 | - `[person male]`;generate random name of male based on provided culture like <FirstName><Space><LastName>. 373 | - `[address]`; generate a random street address. Formatting is biased to US currently. 374 | - `[space]`; inserts a literal space. Spaces are striped from the templates string by default. 375 | 376 | One of the most common functions you'll use is `[syllable()]` because it generally produces something that you can pronounce. For example, if we take our earlier cafe naming example, you might do something like this: 377 | 378 | ```powershell 379 | Invoke-Generate "cafe_[syllable][syllable]" 380 | # Output: 381 | cafe_amoy 382 | ``` 383 | 384 | You can combine the tempalate functions to produce some interesting results, for example here we use the `[synonym]` function with the `[syllable]` function to also replace the word *cafe*. 385 | 386 | ```powershell 387 | Invoke-Generate "[synonym cafe]_[syllable][syllable]" 388 | # Output: 389 | coffeehouse_iqza 390 | ``` 391 | 392 | You can also get the tool to generate a bunch of names at a time using the ```--count``` switch. Here is an example: 393 | 394 | ```powershell 395 | Invoke-Generate -count 5 "[synonym cafe]_[syllable][syllable]" 396 | # Output: 397 | restaurant_owkub 398 | coffeebar_otqo 399 | eatingplace_umit 400 | coffeeshop_fexuz 401 | coffeebar_zuvpe 402 | ``` 403 | 404 | You can generate also names of people like <FirstName><Space><LastName> based on provided sex (female/male/both) and culture (currently only en-US). 405 | The cultures can be added by putting csv files with the last/first names in the subfoders "cultures", in the module directory - please see en-US.csv for the file structure. 406 | 407 | ```powershell 408 | Invoke-Generate "[person female]" -count 3 409 | # Output: 410 | Jacqueline Walker 411 | Julie Richardson 412 | Stacey Powell 413 | ``` 414 | 415 | ## Stay tuned for additional capability 416 | -------------------------------------------------------------------------------- /__tests__/city.tests.ps1: -------------------------------------------------------------------------------- 1 | BeforeDiscovery { 2 | Import-Module "$PSScriptRoot\..\NameIT.psd1" -Force 3 | } 4 | 5 | 6 | Describe "City Generation Test (culture en)" -Tag City, CultureEn { 7 | 8 | BeforeEach { 9 | $null = Get-Random -SetSeed 1 10 | } 11 | 12 | It "Tests returning a city (en culture)" { 13 | $actual = Invoke-Generate '[city]' -Count 5 -Culture en 14 | 15 | $actual.Count | Should -Be 5 16 | 17 | $actual[0] | Should -BeExactly 'Tryon' 18 | $actual[1] | Should -BeExactly 'Pamplin' 19 | $actual[2] | Should -BeExactly 'Columbia' 20 | $actual[3] | Should -BeExactly 'Conover' 21 | $actual[4] | Should -BeExactly 'Tunkhannock' 22 | } 23 | 24 | It "Tests returning a county (en culture)" { 25 | $actual = Invoke-Generate '[city county]' -Count 5 -Culture en 26 | 27 | $actual.Count | Should -Be 5 28 | 29 | $actual[0] | Should -BeExactly 'POLK' 30 | $actual[1] | Should -BeExactly 'APPOMATTOX' 31 | $actual[2] | Should -BeExactly 'RICHLAND' 32 | $actual[3] | Should -BeExactly 'CATAWBA' 33 | $actual[4] | Should -BeExactly 'WYOMING' 34 | } 35 | } 36 | 37 | Describe "City Generation Test (culture sv)" -Tag City, CultureSv { 38 | BeforeEach { 39 | $null = Get-Random -SetSeed 1 40 | } 41 | 42 | It "Tests returning a city (sv culture)" -Tag City, CultureSv { 43 | $actual = Invoke-Generate '[city]' -Count 5 -Culture sv 44 | 45 | $actual.Count | Should -Be 5 46 | 47 | $actual[0] | Should -BeExactly 'Duvesjön' 48 | $actual[1] | Should -BeExactly 'Piperskärr' 49 | $actual[2] | Should -BeExactly 'Sälen' 50 | $actual[3] | Should -BeExactly 'Vedevåg' 51 | $actual[4] | Should -BeExactly 'Hjortkvarn' 52 | } 53 | 54 | It "Tests returning a county (sv culture)" -Tag City, CultureSv { 55 | $actual = Invoke-Generate '[city county]' -Count 5 -Culture sv 56 | 57 | $actual.Count | Should -Be 5 58 | 59 | $actual[0] | Should -BeExactly 'Kungälv' 60 | $actual[1] | Should -BeExactly 'Västervik' 61 | $actual[2] | Should -BeExactly 'Malung-Sälen' 62 | $actual[3] | Should -BeExactly 'Lindesberg' 63 | $actual[4] | Should -BeExactly 'Hallsberg' 64 | } 65 | } -------------------------------------------------------------------------------- /__tests__/cmdlet.tests.ps1: -------------------------------------------------------------------------------- 1 | Import-Module "$PSScriptRoot\..\NameIT.psd1" -Force 2 | 3 | Describe "Cmdlet Generation Test (en culture)" -Tag Cmdlet { 4 | 5 | BeforeEach { 6 | # Get-Random generates different numbers for PS 5.1 or PS 7*. Values based on 7's implementation. 7 | $null = Get-Random -SetSeed 1 8 | } 9 | 10 | It "Generates a cmdlet-like name" { 11 | $actual = Invoke-Generate '[cmdlet]' -Count 5 -Culture en 12 | 13 | $actual.Count | Should -Be 5 14 | 15 | $actual[0] | Should -BeExactly 'Pace-Panic' 16 | $actual[1] | Should -BeExactly 'Bus-Model' 17 | $actual[2] | Should -BeExactly 'Line-Principle' 18 | $actual[3] | Should -BeExactly 'Skin-Gear' 19 | $actual[4] | Should -BeExactly 'Kid-Top' 20 | } 21 | It "Generates a cmdlet-like name with an approved verb" { 22 | $actual = Invoke-Generate '[cmdlet approved]' -Count 5 -Culture en 23 | 24 | $actual.Count | Should -Be 5 25 | 26 | $actual[0] | Should -BeExactly 'Skip-Question' 27 | $actual[1] | Should -BeExactly 'Submit-Library' 28 | $actual[2] | Should -BeExactly 'Search-Primary' 29 | $actual[3] | Should -BeExactly 'Wait-Guy' 30 | $actual[4] | Should -BeExactly 'Undo-Suggestion' 31 | } 32 | } 33 | Describe "Cmdlet Generation Test (sv culture)" -Tag Cmdlet, CultureSv { 34 | 35 | BeforeEach { 36 | # Get-Random generates different numbers for PS 5.1 or PS 7*. Values based on 7's implementation. 37 | $null = Get-Random -SetSeed 1 38 | } 39 | 40 | It "Generates a cmdlet-like name" { 41 | $actual = Invoke-Generate '[cmdlet]' -Count 5 -Culture sv 42 | 43 | $actual.Count | Should -Be 5 44 | 45 | $actual[0] | Should -BeExactly 'Placerar-Brev' 46 | $actual[1] | Should -BeExactly 'Överraskar-Arbetsplats' 47 | $actual[2] | Should -BeExactly 'Vänjer-Make' 48 | $actual[3] | Should -BeExactly 'Klipper-Fjärrkontroll' 49 | $actual[4] | Should -BeExactly 'Dör-Förmiddag' 50 | } 51 | It "Generates a cmdlet-like name with an approved verb" { 52 | $actual = Invoke-Generate '[cmdlet approved]' -Count 5 -Culture sv 53 | 54 | $actual.Count | Should -Be 5 55 | 56 | $actual[0] | Should -BeExactly 'Skip-Kapitel' 57 | $actual[1] | Should -BeExactly 'Invoke-Fotboll' 58 | $actual[2] | Should -BeExactly 'Search-Banan' 59 | $actual[3] | Should -BeExactly 'Clear-Tulpan' 60 | $actual[4] | Should -BeExactly 'Deny-Päron' 61 | } 62 | } -------------------------------------------------------------------------------- /__tests__/color.tests.ps1: -------------------------------------------------------------------------------- 1 | BeforeDiscovery { 2 | Import-Module "$PSScriptRoot\..\NameIT.psd1" -Force 3 | } 4 | 5 | Describe "color Generation Test (en culture)" -Tag color, CultureEn { 6 | 7 | BeforeEach { 8 | $null = Get-Random -SetSeed 1 9 | } 10 | 11 | It "Generates a color (en culture)" { 12 | $actual = Invoke-Generate '[color]' -Count 5 -Culture en 13 | 14 | $actual.Count | Should -Be 5 15 | 16 | $actual[0] | Should -BeExactly 'purple' 17 | $actual[1] | Should -BeExactly 'cyan' 18 | $actual[2] | Should -BeExactly 'purple' 19 | $actual[3] | Should -BeExactly 'white' 20 | $actual[4] | Should -BeExactly 'violet' 21 | } 22 | } 23 | Describe "color Generation Test (sv culture)" -Tag color, CultureSv { 24 | 25 | BeforeEach { 26 | $null = Get-Random -SetSeed 1 27 | } 28 | 29 | It "Generates a color (sv culture)" { 30 | $actual = Invoke-Generate '[color]' -Count 5 -Culture sv 31 | 32 | $actual.Count | Should -Be 5 33 | 34 | $actual[0] | Should -BeExactly 'röd' 35 | $actual[1] | Should -BeExactly 'indigo' 36 | $actual[2] | Should -BeExactly 'rosa' 37 | $actual[3] | Should -BeExactly 'blå' 38 | $actual[4] | Should -BeExactly 'cyan' 39 | } 40 | } -------------------------------------------------------------------------------- /__tests__/company.tests.ps1: -------------------------------------------------------------------------------- 1 | Import-Module "$PSScriptRoot\..\NameIT.psd1" -Force 2 | 3 | Describe "company Generation Test" { 4 | 5 | BeforeEach { 6 | $null = Get-Random -SetSeed 1 7 | } 8 | 9 | It "Tests returning a company title" { 10 | $actual = Invoke-Generate '[company]' -Count 5 11 | 12 | $actual[0] | Should -BeExactly 'Jefferson-Hernandez' 13 | $actual[1] | Should -BeExactly 'Wells Inc' 14 | $actual[2] | Should -BeExactly 'Carter, Arnold and Bass' 15 | $actual[3] | Should -BeExactly 'Dougherty-Haynes' 16 | $actual[4] | Should -BeExactly 'Briggs-Forbes' 17 | } 18 | 19 | It "Tests returning a company suffix" { 20 | $actual = Invoke-Generate '[company suffix]' -Count 5 21 | 22 | $actual[0] | Should -BeExactly 'and Sons' 23 | $actual[1] | Should -BeExactly 'and Sons' 24 | $actual[2] | Should -BeExactly 'LLC' 25 | $actual[3] | Should -BeExactly 'PLC' 26 | $actual[4] | Should -BeExactly 'Ltd' 27 | } 28 | 29 | It "Tests returning a fluff word" { 30 | $actual = Invoke-Generate '[company fluff]' -Count 5 31 | 32 | $actual[0] | Should -BeExactly 'experiences' 33 | $actual[1] | Should -BeExactly 'eyeballs' 34 | $actual[2] | Should -BeExactly 'relationships' 35 | $actual[3] | Should -BeExactly 'global' 36 | $actual[4] | Should -BeExactly 'reinvent' 37 | } 38 | 39 | It "Tests returning a catch word" { 40 | $actual = Invoke-Generate '[company catch]' -Count 5 41 | 42 | $actual[0] | Should -BeExactly 'database' 43 | $actual[1] | Should -BeExactly 'collaboration' 44 | $actual[2] | Should -BeExactly 'Stand-alone' 45 | $actual[3] | Should -BeExactly 'User-friendly' 46 | $actual[4] | Should -BeExactly 'empowering' 47 | } 48 | } -------------------------------------------------------------------------------- /__tests__/date.tests.ps1: -------------------------------------------------------------------------------- 1 | # $manifestPath = $PSScriptRoot | Join-Path -ChildPath '..' | Join-Path -ChildPath 'NameIT.psd1' | Resolve-Path 2 | Import-Module "$PSScriptRoot\..\NameIT.psd1" -Force 3 | 4 | Describe "NameIT Tests" { 5 | BeforeAll { 6 | $map = @{ 7 | 1 = 1, 2, 3 8 | 2 = 4, 5, 6 9 | 3 = 7, 8, 9 10 | 4 = 10, 11, 12 11 | } 12 | } 13 | 14 | Context "Date tests" { 15 | It "Test Month of January" { 16 | $actual = Invoke-Generate '[January]' 17 | (Get-Date $actual).Month | Should -Be 1 18 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 19 | } 20 | 21 | It "Test Month of February" { 22 | $actual = Invoke-Generate '[February]' 23 | (Get-Date $actual).Month | Should -Be 2 24 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 25 | } 26 | 27 | It "Test Month of March" { 28 | $actual = Invoke-Generate '[March]' 29 | (Get-Date $actual).Month | Should -Be 3 30 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 31 | } 32 | 33 | It "Test Month of April" { 34 | $actual = Invoke-Generate '[April]' 35 | (Get-Date $actual).Month | Should -Be 4 36 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 37 | } 38 | 39 | It "Test Month of May" { 40 | $actual = Invoke-Generate '[May]' 41 | (Get-Date $actual).Month | Should -Be 5 42 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 43 | } 44 | 45 | It "Test Month of June" { 46 | $actual = Invoke-Generate '[June]' 47 | (Get-Date $actual).Month | Should -Be 6 48 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 49 | } 50 | 51 | It "Test Month of July" { 52 | $actual = Invoke-Generate '[July]' 53 | (Get-Date $actual).Month | Should -Be 7 54 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 55 | } 56 | 57 | It "Test Month of August" { 58 | $actual = Invoke-Generate '[August]' 59 | (Get-Date $actual).Month | Should -Be 8 60 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 61 | } 62 | 63 | It "Test Month of September" { 64 | $actual = Invoke-Generate '[September]' 65 | (Get-Date $actual).Month | Should -Be 9 66 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 67 | } 68 | 69 | It "Test Month of October" { 70 | $actual = Invoke-Generate '[October]' 71 | (Get-Date $actual).Month | Should -Be 10 72 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 73 | } 74 | 75 | It "Test Month of November" { 76 | $actual = Invoke-Generate '[November]' 77 | (Get-Date $actual).Month | Should -Be 11 78 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 79 | } 80 | 81 | It "Test Month of 12" { 82 | $actual = Invoke-Generate '[December]' 83 | (Get-Date $actual).Month | Should -Be 12 84 | (Get-Date $actual).Year | Should -Be (Get-Date).Year 85 | } 86 | 87 | It "Test ThisYear" { 88 | $actual = Invoke-Generate '[ThisYear]' 89 | $actual | Should -Be (Get-Date).Year 90 | } 91 | 92 | It "Test ThisMonth" { 93 | $actual = Invoke-Generate '[ThisMonth]' 94 | $actual | Should -Be (Get-Date).Month 95 | } 96 | 97 | It "Test Today" { 98 | $actual = Invoke-Generate '[Today]' 99 | $actual | Should -Be (Get-Date).ToShortDateString() 100 | } 101 | 102 | It "Test Tomorrow" { 103 | $actual = Invoke-Generate '[Tomorrow]' 104 | $actual | Should -Be (Get-Date).AddDays(1).ToShortDateString() 105 | } 106 | 107 | It "Test Yesterday" { 108 | $actual = Invoke-Generate '[Yesterday]' 109 | $actual | Should -Be (Get-Date).AddDays(-1).ToShortDateString() 110 | } 111 | 112 | It "Test ThisQuarter" { 113 | $actual = Invoke-Generate '[ThisQuarter]' 114 | 115 | $month = (Get-Date).Month 116 | [int]$qtr = [math]::Floor(($month + 2) / 3) 117 | 118 | (Get-Date $actual).Month | Should -BeIn $map.$qtr 119 | } 120 | 121 | It "Test ThisWeek" { 122 | Get-Date -UFormat %V | Should -Be (Invoke-Generate [ThisWeek]) 123 | } 124 | 125 | It "Test LastYear" { 126 | Invoke-Generate '[LastYear]' | Should -Be (Get-Date).AddYears(-1).ToShortDateString() 127 | } 128 | 129 | It "Test NextYear" { 130 | Invoke-Generate '[NextYear]' | Should -Be (Get-Date).AddYears(-1).ToShortDateString() 131 | } 132 | 133 | It "Test LastMonth" { 134 | Invoke-Generate '[LastMonth]' | Should -Be (Get-Date).AddMonths(-1).ToShortDateString() 135 | } 136 | 137 | It "Test NextMonth" { 138 | Invoke-Generate '[NextMonth]' | Should -Be (Get-Date).AddMonths(-1).ToShortDateString() 139 | } 140 | 141 | It "Test Q1" { 142 | $actual = Invoke-Generate '[Q1]' 143 | 144 | $actualQtr = [math]::Floor(((get-date $actual).Month + 2) / 3) 145 | $actualQtr | Should -Be 1 146 | } 147 | 148 | It "Test Q2" { 149 | $actual = Invoke-Generate '[Q2]' 150 | 151 | $actualQtr = [math]::Floor(((get-date $actual).Month + 2) / 3) 152 | $actualQtr | Should -Be 2 153 | } 154 | 155 | It "Test Q3" { 156 | $actual = Invoke-Generate '[Q3]' 157 | 158 | $actualQtr = [math]::Floor(((get-date $actual).Month + 2) / 3) 159 | $actualQtr | Should -Be 3 160 | } 161 | 162 | It "Test Q4" { 163 | $actual = Invoke-Generate '[Q4]' 164 | 165 | $actualQtr = [math]::Floor(((get-date $actual).Month + 2) / 3) 166 | $actualQtr | Should -Be 4 167 | } 168 | } 169 | } -------------------------------------------------------------------------------- /__tests__/email.tests.ps1: -------------------------------------------------------------------------------- 1 | Import-Module "$PSScriptRoot\..\NameIT.psd1" -Force 2 | 3 | Describe "email Generation Test (en culture)" -Tag Email, CultureEn { 4 | 5 | BeforeEach { 6 | $null = Get-Random -SetSeed 1 7 | } 8 | 9 | It "Tests returning a email title" { 10 | $actual = Invoke-Generate '[email]' -Count 5 -Culture en 11 | 12 | $actual[0] | Should -BeExactly 'holly.faulkner@hotmail.com' 13 | $actual[1] | Should -BeExactly 'raina.keith@hotmail.com' 14 | $actual[2] | Should -BeExactly 'henry.hernandez@yahoo.com' 15 | $actual[3] | Should -BeExactly 'rory.figueroa@yahoo.com' 16 | $actual[4] | Should -BeExactly 'leon.tapia@gmail.com' 17 | } 18 | } 19 | 20 | Describe "email Generation Test (sv culture)" -Tag Email, CultureSv { 21 | 22 | BeforeEach { 23 | $null = Get-Random -SetSeed 1 24 | } 25 | 26 | It "Tests returning a email title" { 27 | 28 | $actual = Invoke-Generate '[email]' -Count 5 -Culture sv 29 | 30 | $actual[0] | Should -BeExactly 'hanna.falk@hotmail.com' 31 | $actual[1] | Should -BeExactly 'rebecca.johansson@hotmail.com' 32 | $actual[2] | Should -BeExactly 'jan.holm@yahoo.com' 33 | $actual[3] | Should -BeExactly 'rut.falk@yahoo.com' 34 | $actual[4] | Should -BeExactly 'marcus.ström@gmail.com' 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /__tests__/job.tests.ps1: -------------------------------------------------------------------------------- 1 | Import-Module "$PSScriptRoot\..\NameIT.psd1" -Force 2 | 3 | Describe "Job Generation Test" { 4 | 5 | BeforeEach { 6 | $null = Get-Random -SetSeed 1 7 | } 8 | 9 | It "Tests returning a job title" { 10 | $actual = Invoke-Generate '[job]' -Count 5 11 | 12 | $actual[0] | Should -BeExactly 'Superintendent' 13 | $actual[1] | Should -BeExactly 'Tutor' 14 | $actual[2] | Should -BeExactly 'Veterinary assistant' 15 | $actual[3] | Should -BeExactly 'English teacher' 16 | $actual[4] | Should -BeExactly 'Software developer' 17 | } 18 | } -------------------------------------------------------------------------------- /__tests__/nameit.tests.ps1: -------------------------------------------------------------------------------- 1 | Import-Module "$PSScriptRoot\..\NameIT.psd1" -Force 2 | 3 | Describe "City Generation Test" { 4 | 5 | BeforeEach { 6 | $null = Get-Random -SetSeed 1 7 | } 8 | 9 | It "Tests returning a company title" { 10 | $actual = Invoke-Generate '[company]' -Count 5 11 | 12 | $actual[0] | Should -BeExactly 'Jefferson-Hernandez' 13 | $actual[1] | Should -BeExactly 'Wells Inc' 14 | $actual[2] | Should -BeExactly 'Carter, Arnold and Bass' 15 | $actual[3] | Should -BeExactly 'Dougherty-Haynes' 16 | $actual[4] | Should -BeExactly 'Briggs-Forbes' 17 | } 18 | 19 | It "Tests returning a company suffix" { 20 | $actual = Invoke-Generate '[company suffix]' -Count 5 21 | 22 | $actual[0] | Should -BeExactly 'and Sons' 23 | $actual[1] | Should -BeExactly 'and Sons' 24 | $actual[2] | Should -BeExactly 'LLC' 25 | $actual[3] | Should -BeExactly 'PLC' 26 | $actual[4] | Should -BeExactly 'Ltd' 27 | } 28 | 29 | It "Tests returning a fluff word" { 30 | $actual = Invoke-Generate '[company fluff]' -Count 5 31 | 32 | $actual[0] | Should -BeExactly 'experiences' 33 | $actual[1] | Should -BeExactly 'eyeballs' 34 | $actual[2] | Should -BeExactly 'relationships' 35 | $actual[3] | Should -BeExactly 'global' 36 | $actual[4] | Should -BeExactly 'reinvent' 37 | } 38 | 39 | It "Tests returning a catch word" { 40 | $actual = Invoke-Generate '[company catch]' -Count 5 41 | 42 | $actual[0] | Should -BeExactly 'database' 43 | $actual[1] | Should -BeExactly 'collaboration' 44 | $actual[2] | Should -BeExactly 'Stand-alone' 45 | $actual[3] | Should -BeExactly 'User-friendly' 46 | $actual[4] | Should -BeExactly 'empowering' 47 | } 48 | } -------------------------------------------------------------------------------- /__tests__/postalCode.tests.ps1: -------------------------------------------------------------------------------- 1 | Import-Module "$PSScriptRoot\..\NameIT.psd1" -Force 2 | 3 | Describe "postalCode Generation Test" { 4 | 5 | BeforeEach { 6 | $null = Get-Random -SetSeed 1 7 | } 8 | 9 | It "Tests returning a postalCode title" { 10 | $actual = Invoke-Generate '[postalCode]' -Count 5 11 | 12 | $actual[0] | Should -BeExactly '67218' 13 | $actual[1] | Should -BeExactly '44164' 14 | $actual[2] | Should -BeExactly '30353' 15 | $actual[3] | Should -BeExactly '72211' 16 | $actual[4] | Should -BeExactly '37205' 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /__tests__/test.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /changelog.md: -------------------------------------------------------------------------------- 1 | # v2.3.5 2 | 3 | - Thank you [Göran Hanell](https://github.com/imaginetobe) - Added Swedish cities, colors, and email. 4 | 5 | # v2.3.4 6 | 7 | - Thank you [Göran Hanell](https://github.com/imaginetobe) - Changed the city generator to use , as separator in the datafile, regardless of culture. 8 | 9 | # v2.3.3 10 | 11 | - Added generators, see [Examples](./Examples) 12 | - [Invoke-Generator '[city]'](./Examples/CityTemplate.ps1) 13 | - [Invoke-Generator '[company]'](./Examples/CompanyTemplate.ps1) 14 | - [Invoke-Generator '[country]'](./Examples/countryTemplate.ps1) 15 | - [Invoke-Generator '[postalcode]'](./Examples/postalcodeTemplate.ps1) 16 | - [Invoke-Generator '[email]'](./Examples/emailTemplate.ps1) -------------------------------------------------------------------------------- /cultures/en/GB/colors.txt: -------------------------------------------------------------------------------- 1 | amber 2 | beige 3 | black 4 | blue 5 | brown 6 | crimson 7 | cyan 8 | grey 9 | green 10 | indigo 11 | khaki 12 | magenta 13 | orange 14 | pink 15 | purple 16 | red 17 | violet 18 | white 19 | yellow 20 | -------------------------------------------------------------------------------- /cultures/en/adjectives.txt: -------------------------------------------------------------------------------- 1 | Abject 2 | Able 3 | Abnormal 4 | Aboard 5 | Abrupt 6 | Absurd 7 | Abusive 8 | Accurate 9 | Acid 10 | Acoustic 11 | Acrid 12 | Adamant 13 | Addicted 14 | Adhesive 15 | Adorable 16 | Adventurous 17 | Afraid 18 | Aggressive 19 | Agreeable 20 | Ahead 21 | Alert 22 | Alike 23 | Alive 24 | Alleged 25 | Aloof 26 | Amuck 27 | Amused 28 | Ancient 29 | Angry 30 | Animated 31 | Annoyed 32 | Annoying 33 | Anxious 34 | Aquatic 35 | Aromatic 36 | Arrogant 37 | Ashamed 38 | Aspiring 39 | Assorted 40 | Attractive 41 | Average 42 | Aware 43 | Awful 44 | Bad 45 | Bashful 46 | Bawdy 47 | Beautiful 48 | Berserk 49 | Better 50 | Bewildered 51 | Big 52 | Billowy 53 | Binary 54 | Bitter 55 | Bizarre 56 | Black 57 | Bloody 58 | Blue 59 | Blue-eyed 60 | Blushing 61 | Boiling 62 | Boorish 63 | Bored 64 | Brainy 65 | Brave 66 | Breakable 67 | Breezy 68 | Brief 69 | Bright 70 | Broad 71 | Bumpy 72 | Burly 73 | Busy 74 | Cagey 75 | Calm 76 | Capable 77 | Careful 78 | Cautious 79 | Charming 80 | Cheap 81 | Cheerful 82 | Chief 83 | Chunky 84 | Classy 85 | Clean 86 | Clear 87 | Clever 88 | Close 89 | Cloudy 90 | Clumsy 91 | Coherent 92 | Cold 93 | Colorful 94 | Combative 95 | Comfortable 96 | Common 97 | Concerned 98 | Condemned 99 | Confused 100 | Cool 101 | Cooperative 102 | Courageous 103 | Cowardly 104 | Crazy 105 | Creepy 106 | Crowded 107 | Cruel 108 | Cuddly 109 | Cultured 110 | Curious 111 | Curly 112 | Cute 113 | Cynical 114 | Daily 115 | Damp 116 | Dangerous 117 | Dapper 118 | Dark 119 | Darling 120 | Dashing 121 | Dazzling 122 | Dead 123 | Debonair 124 | Decorous 125 | Deep 126 | Defeated 127 | Defiant 128 | Delightful 129 | Demonic 130 | Depressed 131 | Deranged 132 | Deserted 133 | Detailed 134 | Determined 135 | Devilish 136 | Different 137 | Difficult 138 | Diligent 139 | Dirty 140 | Disgusted 141 | Distinct 142 | Disturbed 143 | Dizzy 144 | Doubtful 145 | Drab 146 | Drunk 147 | Dry 148 | Dull 149 | Dusty 150 | Dynamic 151 | Eager 152 | Early 153 | Easy 154 | Economic 155 | Educated 156 | Elated 157 | Elderly 158 | Elegant 159 | Elite 160 | Embarrassed 161 | Eminent 162 | Empty 163 | Enchanting 164 | Encouraging 165 | Energetic 166 | Enthusiastic 167 | Envious 168 | Equal 169 | Erect 170 | Erratic 171 | Ethereal 172 | Evasive 173 | Evil 174 | Excited 175 | Exotic 176 | Expensive 177 | Exuberant 178 | Exultant 179 | Fabulous 180 | Faded 181 | Fair 182 | Faithful 183 | Famous 184 | Fancy 185 | Fantastic 186 | Far 187 | Fast 188 | Fat 189 | Faulty 190 | Fearless 191 | Fertile 192 | Festive 193 | Few 194 | Fierce 195 | Filthy 196 | Fine 197 | First 198 | Fixed 199 | Flat 200 | Flippant 201 | Flowery 202 | Fluffy 203 | Foamy 204 | Foolish 205 | Fragile 206 | Frail 207 | Frantic 208 | Free 209 | Friendly 210 | Frightened 211 | Full 212 | Funny 213 | Furtive 214 | Fuzzy 215 | Gainful 216 | Gamy 217 | Gaping 218 | Gaudy 219 | Gentle 220 | Giant 221 | Giddy 222 | Gifted 223 | Gigantic 224 | Glamorous 225 | Gleaming 226 | Glib 227 | Glorious 228 | Glossy 229 | Godly 230 | Good 231 | Gorgeous 232 | Graceful 233 | Gray 234 | Great 235 | Grieving 236 | Groovy 237 | Grotesque 238 | Grubby 239 | Grumpy 240 | Guarded 241 | Gullible 242 | Gusty 243 | Guttural 244 | Habitual 245 | Half 246 | Handsome 247 | Hanging 248 | Happy 249 | Hard 250 | Healthy 251 | Heavy 252 | Hellish 253 | Helpful 254 | Helpless 255 | Hesitant 256 | High 257 | Hilarious 258 | Hissing 259 | Hollow 260 | Homeless 261 | Homely 262 | Horrible 263 | Hot 264 | Huge 265 | Hulking 266 | Hungry 267 | Hurt 268 | Husky 269 | Hypnotic 270 | Icky 271 | Icy 272 | Idiotic 273 | Ignorant 274 | Ill 275 | Immense 276 | Important 277 | Imported 278 | Impossible 279 | Inexpensive 280 | Innate 281 | Innocent 282 | Inquisitive 283 | Internal 284 | Irate 285 | Itchy 286 | Jaded 287 | Jagged 288 | Jazzy 289 | Jealous 290 | Jittery 291 | Jobless 292 | Jolly 293 | Joyous 294 | Juicy 295 | Jumpy 296 | Juvenile 297 | Kind 298 | Known 299 | Labored 300 | Lacking 301 | Languid 302 | Large 303 | Late 304 | Lavish 305 | Lazy 306 | Lean 307 | Legal 308 | Lethal 309 | Level 310 | Lewd 311 | Light 312 | Like 313 | Little 314 | Lively 315 | Lonely 316 | Long 317 | Loose 318 | Lopsided 319 | Loud 320 | Lovely 321 | Loving 322 | Low 323 | Lucky 324 | Lush 325 | Lying 326 | Lyrical 327 | Macho 328 | Madly 329 | Magenta 330 | Magnificent 331 | Majestic 332 | Mammoth 333 | Many 334 | Marked 335 | Massive 336 | Mature 337 | Medical 338 | Meek 339 | Melted 340 | Mere 341 | Mighty 342 | Minor 343 | Misty 344 | Moaning 345 | Modern 346 | Motionless 347 | Muddy 348 | Mundane 349 | Murky 350 | Mushy 351 | Mute 352 | Mysterious 353 | Naive 354 | Narrow 355 | Nasty 356 | Natural 357 | Naughty 358 | Near 359 | Nebulous 360 | Needy 361 | Nervous 362 | New 363 | Nice 364 | Nifty 365 | Noisy 366 | Nonstop 367 | Normal 368 | Nosy 369 | Noxious 370 | Numerous 371 | Nutty 372 | Oafish 373 | Obedient 374 | Obnoxious 375 | Obscene 376 | Oceanic 377 | Odd 378 | Offbeat 379 | Old 380 | Old-fashioned 381 | Onerous 382 | Open 383 | Optimal 384 | Orange 385 | Ordinary 386 | Organic 387 | Ossified 388 | Outrageous 389 | Outstanding 390 | Oval 391 | Overt 392 | Painful 393 | Panicky 394 | Parched 395 | Past 396 | Pathetic 397 | Peaceful 398 | Perfect 399 | Petite 400 | Phobic 401 | Physical 402 | Plain 403 | Pleasant 404 | Plucky 405 | Poised 406 | Polite 407 | Poor 408 | Possible 409 | Powerful 410 | Precious 411 | Pretty 412 | Prickly 413 | Proud 414 | Puffy 415 | Pumped 416 | Puny 417 | Purple 418 | Puzzled 419 | Quack 420 | Quaint 421 | Quick 422 | Rabid 423 | Racial 424 | Ragged 425 | Rainy 426 | Rampant 427 | Rapid 428 | Rare 429 | Raspy 430 | Ratty 431 | Real 432 | Red 433 | Regular 434 | Relieved 435 | Repulsive 436 | Resonant 437 | Rich 438 | Right 439 | Ripe 440 | Ritzy 441 | Roasted 442 | Robust 443 | Romantic 444 | Roomy 445 | Rotten 446 | Round 447 | Royal 448 | Ruddy 449 | Rural 450 | Rustic 451 | Ruthless 452 | Sad 453 | Salty 454 | Same 455 | Sassy 456 | Scary 457 | Scrawny 458 | Second 459 | Sedate 460 | Seemly 461 | Selfish 462 | Separate 463 | Serious 464 | Severe 465 | Sharp 466 | Shiny 467 | Short 468 | Shrill 469 | Shy 470 | Silly 471 | Sincere 472 | Skinny 473 | Sleepy 474 | Slimy 475 | Slow 476 | Small 477 | Smelly 478 | Smiling 479 | Smoggy 480 | Sneaky 481 | Snotty 482 | Soft 483 | Soggy 484 | Solid 485 | Somber 486 | Sore 487 | Sour 488 | Sparkling 489 | Spicy 490 | Splendid 491 | Spooky 492 | Spotless 493 | Spurious 494 | Square 495 | Stale 496 | Steep 497 | Stiff 498 | Stormy 499 | Strange 500 | Strong 501 | Stupid 502 | Subdued 503 | Successful 504 | Succinct 505 | Sudden 506 | Sulky 507 | Super 508 | Swanky 509 | Sweet 510 | Swift 511 | Taboo 512 | Tacky 513 | Talented 514 | Tall 515 | Tame 516 | Tan 517 | Tart 518 | Tasty 519 | Tawdry 520 | Tearful 521 | Teeny 522 | Telling 523 | Tender 524 | Tense 525 | Terrible 526 | Testy 527 | Thankful 528 | Thick 529 | Thoughtful 530 | Thoughtless 531 | Tidy 532 | Tight 533 | Tiny 534 | Tired 535 | Toasty 536 | Tough 537 | Towering 538 | Trashy 539 | Trite 540 | Troubled 541 | True 542 | Typical 543 | Ugliest 544 | Ugly 545 | Ultra 546 | Unable 547 | Unbiased 548 | Uneven 549 | Uninterested 550 | Unsightly 551 | Unusual 552 | Upbeat 553 | Uppity 554 | Upset 555 | Uptight 556 | Used 557 | Utopian 558 | Utter 559 | Vague 560 | Various 561 | Vast 562 | Vengeful 563 | Versed 564 | Victorious 565 | Vigorous 566 | Violent 567 | Vivacious 568 | Volatile 569 | Vulgar 570 | Wacky 571 | Waggish 572 | Waiting 573 | Wakeful 574 | Wandering 575 | Wanting 576 | Wary 577 | Wasteful 578 | Watery 579 | Weak 580 | Weary 581 | Wee 582 | Wet 583 | Whole 584 | Wicked 585 | Wide 586 | Wide-eyed 587 | Wild 588 | Windy 589 | Wiry 590 | Wise 591 | Witty 592 | Womanly 593 | Woozy 594 | Worried 595 | Worrisome 596 | Wrathful 597 | Wretched 598 | Wrong 599 | Wry 600 | Xanthic 601 | Xyloid 602 | Yellow 603 | Yielding 604 | Young 605 | Yummy 606 | Zany 607 | Zealous 608 | Zippy 609 | Zonked 610 | -------------------------------------------------------------------------------- /cultures/en/colors.txt: -------------------------------------------------------------------------------- 1 | amber 2 | beige 3 | black 4 | blue 5 | brown 6 | crimson 7 | cyan 8 | gray 9 | green 10 | indigo 11 | khaki 12 | magenta 13 | orange 14 | pink 15 | purple 16 | red 17 | violet 18 | white 19 | yellow 20 | -------------------------------------------------------------------------------- /cultures/en/daves.txt: -------------------------------------------------------------------------------- 1 | Bodkin Van Horn 2 | Hoos-Foos 3 | Snimm 4 | Hot-Shot 5 | Sunny Jim 6 | Shadrack 7 | Blinkey 8 | Stuffy 9 | Stinkey 10 | Putt-Putt 11 | Moon Face 12 | Marvin O'Gravel Balloon Face 13 | Ziggy 14 | Soggy Muff 15 | Buffalo Bill 16 | Biffalo Buff 17 | Sneepy 18 | Weepy Weed 19 | Paris Garters 20 | Harris Tweed 21 | Sir Michael Carmichael Zutt 22 | Oliver Boliver Butt 23 | Zanzibar Buck-Buck McFate -------------------------------------------------------------------------------- /cultures/en/nouns.txt: -------------------------------------------------------------------------------- 1 | Ability 2 | Abroad 3 | Abuse 4 | Access 5 | Accident 6 | Account 7 | Act 8 | Action 9 | Active 10 | Activity 11 | Actor 12 | Ad 13 | Addition 14 | Address 15 | Administration 16 | Adult 17 | Advance 18 | Advantage 19 | Advertising 20 | Advice 21 | Affair 22 | Affect 23 | Afternoon 24 | Age 25 | Agency 26 | Agent 27 | Agreement 28 | Air 29 | Airline 30 | Airport 31 | Alarm 32 | Alcohol 33 | Alternative 34 | Ambition 35 | Amount 36 | Analysis 37 | Analyst 38 | Anger 39 | Angle 40 | Animal 41 | Annual 42 | Answer 43 | Anxiety 44 | Anybody 45 | Anything 46 | Anywhere 47 | Apartment 48 | Appeal 49 | Appearance 50 | Apple 51 | Application 52 | Appointment 53 | Area 54 | Argument 55 | Arm 56 | Army 57 | Arrival 58 | Art 59 | Article 60 | Aside 61 | Ask 62 | Aspect 63 | Assignment 64 | Assist 65 | Assistance 66 | Assistant 67 | Associate 68 | Association 69 | Assumption 70 | Atmosphere 71 | Attack 72 | Attempt 73 | Attention 74 | Attitude 75 | Audience 76 | Author 77 | Average 78 | Award 79 | Awareness 80 | Baby 81 | Back 82 | Background 83 | Bad 84 | Bag 85 | Bake 86 | Balance 87 | Ball 88 | Band 89 | Bank 90 | Bar 91 | Base 92 | Baseball 93 | Basis 94 | Basket 95 | Bat 96 | Bath 97 | Bathroom 98 | Battle 99 | Beach 100 | Bear 101 | Beat 102 | Beautiful 103 | Bed 104 | Bedroom 105 | Beer 106 | Beginning 107 | Being 108 | Bell 109 | Belt 110 | Bench 111 | Bend 112 | Benefit 113 | Bet 114 | Beyond 115 | Bicycle 116 | Bid 117 | Big 118 | Bike 119 | Bill 120 | Bird 121 | Birth 122 | Birthday 123 | Bit 124 | Bite 125 | Bitter 126 | Black 127 | Blame 128 | Blank 129 | Blind 130 | Block 131 | Blood 132 | Blow 133 | Blue 134 | Board 135 | Boat 136 | Body 137 | Bone 138 | Bonus 139 | Book 140 | Boot 141 | Border 142 | Boss 143 | Bother 144 | Bottle 145 | Bottom 146 | Bowl 147 | Box 148 | Boy 149 | Boyfriend 150 | Brain 151 | Branch 152 | Brave 153 | Bread 154 | Break 155 | Breakfast 156 | Breast 157 | Breath 158 | Brick 159 | Bridge 160 | Brief 161 | Brilliant 162 | Broad 163 | Brother 164 | Brown 165 | Brush 166 | Buddy 167 | Budget 168 | Bug 169 | Building 170 | Bunch 171 | Burn 172 | Bus 173 | Business 174 | Button 175 | Buy 176 | Buyer 177 | Cabinet 178 | Cable 179 | Cake 180 | Calendar 181 | Call 182 | Calm 183 | Camera 184 | Camp 185 | Campaign 186 | Can 187 | Cancel 188 | Cancer 189 | Candidate 190 | Candle 191 | Candy 192 | Cap 193 | Capital 194 | Car 195 | Card 196 | Care 197 | Career 198 | Carpet 199 | Carry 200 | Case 201 | Cash 202 | Cat 203 | Catch 204 | Category 205 | Cause 206 | Celebration 207 | Cell 208 | Chain 209 | Chair 210 | Challenge 211 | Champion 212 | Championship 213 | Chance 214 | Change 215 | Channel 216 | Chapter 217 | Character 218 | Charge 219 | Charity 220 | Chart 221 | Check 222 | Cheek 223 | Chemical 224 | Chemistry 225 | Chest 226 | Chicken 227 | Child 228 | Childhood 229 | Chip 230 | Chocolate 231 | Choice 232 | Church 233 | Cigarette 234 | City 235 | Claim 236 | Class 237 | Classic 238 | Classroom 239 | Clerk 240 | Click 241 | Client 242 | Climate 243 | Clock 244 | Closet 245 | Clothes 246 | Cloud 247 | Club 248 | Clue 249 | Coach 250 | Coast 251 | Coat 252 | Code 253 | Coffee 254 | Cold 255 | Collar 256 | Collection 257 | College 258 | Combination 259 | Combine 260 | Comfort 261 | Comfortable 262 | Command 263 | Comment 264 | Commercial 265 | Commission 266 | Committee 267 | Common 268 | Communication 269 | Community 270 | Company 271 | Comparison 272 | Competition 273 | Complaint 274 | Complex 275 | Computer 276 | Concentrate 277 | Concept 278 | Concern 279 | Concert 280 | Conclusion 281 | Condition 282 | Conference 283 | Confidence 284 | Conflict 285 | Confusion 286 | Connection 287 | Consequence 288 | Consideration 289 | Consist 290 | Constant 291 | Construction 292 | Contact 293 | Contest 294 | Context 295 | Contract 296 | Contribution 297 | Control 298 | Conversation 299 | Convert 300 | Cook 301 | Cookie 302 | Copy 303 | Corner 304 | Cost 305 | Count 306 | Counter 307 | Country 308 | County 309 | Couple 310 | Courage 311 | Course 312 | Court 313 | Cousin 314 | Cover 315 | Cow 316 | Crack 317 | Craft 318 | Crash 319 | Crazy 320 | Cream 321 | Creative 322 | Credit 323 | Crew 324 | Criticism 325 | Cross 326 | Cry 327 | Culture 328 | Cup 329 | Currency 330 | Current 331 | Curve 332 | Customer 333 | Cut 334 | Cycle 335 | Dad 336 | Damage 337 | Dance 338 | Dare 339 | Dark 340 | Data 341 | Database 342 | Date 343 | Daughter 344 | Day 345 | Dead 346 | Deal 347 | Dealer 348 | Dear 349 | Death 350 | Debate 351 | Debt 352 | Decision 353 | Deep 354 | Definition 355 | Degree 356 | Delay 357 | Delivery 358 | Demand 359 | Department 360 | Departure 361 | Dependent 362 | Deposit 363 | Depression 364 | Depth 365 | Description 366 | Design 367 | Designer 368 | Desire 369 | Desk 370 | Detail 371 | Development 372 | Device 373 | Devil 374 | Diamond 375 | Diet 376 | Difference 377 | Difficulty 378 | Dig 379 | Dimension 380 | Dinner 381 | Direction 382 | Director 383 | Dirt 384 | Disaster 385 | Discipline 386 | Discount 387 | Discussion 388 | Disease 389 | Dish 390 | Disk 391 | Display 392 | Distance 393 | Distribution 394 | District 395 | Divide 396 | Doctor 397 | Document 398 | Dog 399 | Door 400 | Dot 401 | Double 402 | Doubt 403 | Draft 404 | Drag 405 | Drama 406 | Draw 407 | Drawer 408 | Drawing 409 | Dream 410 | Dress 411 | Drink 412 | Drive 413 | Driver 414 | Drop 415 | Drunk 416 | Due 417 | Dump 418 | Dust 419 | Duty 420 | Ear 421 | Earth 422 | Ease 423 | East 424 | Eat 425 | Economics 426 | Economy 427 | Edge 428 | Editor 429 | Education 430 | Effect 431 | Effective 432 | Efficiency 433 | Effort 434 | Egg 435 | Election 436 | Elevator 437 | Emergency 438 | Emotion 439 | Emphasis 440 | Employ 441 | Employee 442 | Employer 443 | Employment 444 | End 445 | Energy 446 | Engine 447 | Engineer 448 | Engineering 449 | Entertainment 450 | Enthusiasm 451 | Entrance 452 | Entry 453 | Environment 454 | Equal 455 | Equipment 456 | Equivalent 457 | Error 458 | Escape 459 | Essay 460 | Establishment 461 | Estate 462 | Estimate 463 | Evening 464 | Event 465 | Evidence 466 | Exam 467 | Examination 468 | Example 469 | Exchange 470 | Excitement 471 | Excuse 472 | Exercise 473 | Exit 474 | Experience 475 | Expert 476 | Explanation 477 | Expression 478 | Extension 479 | Extent 480 | External 481 | Extreme 482 | Eye 483 | Face 484 | Fact 485 | Factor 486 | Fail 487 | Failure 488 | Fall 489 | Familiar 490 | Family 491 | Fan 492 | Farm 493 | Farmer 494 | Fat 495 | Father 496 | Fault 497 | Fear 498 | Feature 499 | Fee 500 | Feed 501 | Feedback 502 | Feel 503 | Feeling 504 | Female 505 | Few 506 | Field 507 | Fight 508 | Figure 509 | File 510 | Fill 511 | Film 512 | Final 513 | Finance 514 | Finding 515 | Finger 516 | Finish 517 | Fire 518 | Fish 519 | Fishing 520 | Fix 521 | Flight 522 | Floor 523 | Flow 524 | Flower 525 | Fly 526 | Focus 527 | Fold 528 | Following 529 | Food 530 | Foot 531 | Football 532 | Force 533 | Forever 534 | Form 535 | Formal 536 | Fortune 537 | Foundation 538 | Frame 539 | Freedom 540 | Friend 541 | Friendship 542 | Front 543 | Fruit 544 | Fuel 545 | Fun 546 | Function 547 | Funeral 548 | Funny 549 | Future 550 | Gain 551 | Game 552 | Gap 553 | Garage 554 | Garbage 555 | Garden 556 | Gas 557 | Gate 558 | Gather 559 | Gear 560 | Gene 561 | General 562 | Gift 563 | Girl 564 | Girlfriend 565 | Give 566 | Glad 567 | Glass 568 | Glove 569 | Go 570 | Goal 571 | God 572 | Gold 573 | Golf 574 | Good 575 | Government 576 | Grab 577 | Grade 578 | Grand 579 | Grandfather 580 | Grandmother 581 | Grass 582 | Great 583 | Green 584 | Grocery 585 | Ground 586 | Group 587 | Growth 588 | Guarantee 589 | Guard 590 | Guess 591 | Guest 592 | Guidance 593 | Guide 594 | Guitar 595 | Guy 596 | Habit 597 | Hair 598 | Half 599 | Hall 600 | Hand 601 | Handle 602 | Hang 603 | Harm 604 | Hat 605 | Hate 606 | Head 607 | Health 608 | Hearing 609 | Heart 610 | Heat 611 | Heavy 612 | Height 613 | Hell 614 | Hello 615 | Help 616 | Hide 617 | High 618 | Highlight 619 | Highway 620 | Hire 621 | Historian 622 | History 623 | Hit 624 | Hold 625 | Hole 626 | Holiday 627 | Home 628 | Homework 629 | Honey 630 | Hook 631 | Hope 632 | Horror 633 | Horse 634 | Hospital 635 | Host 636 | Hotel 637 | Hour 638 | House 639 | Housing 640 | Human 641 | Hunt 642 | Hurry 643 | Hurt 644 | Husband 645 | Ice 646 | Idea 647 | Ideal 648 | If 649 | Illegal 650 | Image 651 | Imagination 652 | Impact 653 | Implement 654 | Importance 655 | Impress 656 | Impression 657 | Improvement 658 | Incident 659 | Income 660 | Increase 661 | Independence 662 | Independent 663 | Indication 664 | Individual 665 | Industry 666 | Inevitable 667 | Inflation 668 | Influence 669 | Information 670 | Initial 671 | Initiative 672 | Injury 673 | Insect 674 | Inside 675 | Inspection 676 | Inspector 677 | Instance 678 | Instruction 679 | Insurance 680 | Intention 681 | Interaction 682 | Interest 683 | Internal 684 | International 685 | Internet 686 | Interview 687 | Introduction 688 | Investment 689 | Invite 690 | Iron 691 | Island 692 | Issue 693 | It 694 | Item 695 | Jacket 696 | Job 697 | Join 698 | Joint 699 | Joke 700 | Judge 701 | Judgment 702 | Juice 703 | Jump 704 | Junior 705 | Jury 706 | Keep 707 | Key 708 | Kick 709 | Kid 710 | Kill 711 | Kind 712 | King 713 | Kiss 714 | Kitchen 715 | Knee 716 | Knife 717 | Knowledge 718 | Lab 719 | Lack 720 | Ladder 721 | Lady 722 | Lake 723 | Land 724 | Landscape 725 | Language 726 | Laugh 727 | Law 728 | Lawyer 729 | Lay 730 | Layer 731 | Lead 732 | Leader 733 | Leadership 734 | Leading 735 | League 736 | Leather 737 | Leave 738 | Lecture 739 | Leg 740 | Length 741 | Lesson 742 | Let 743 | Letter 744 | Level 745 | Library 746 | Lie 747 | Life 748 | Lift 749 | Light 750 | Limit 751 | Line 752 | Link 753 | Lip 754 | List 755 | Listen 756 | Literature 757 | Living 758 | Load 759 | Loan 760 | Local 761 | Location 762 | Lock 763 | Log 764 | Long 765 | Look 766 | Loss 767 | Love 768 | Low 769 | Luck 770 | Lunch 771 | Machine 772 | Magazine 773 | Mail 774 | Main 775 | Maintenance 776 | Major 777 | Make 778 | Male 779 | Mall 780 | Man 781 | Management 782 | Manager 783 | Manner 784 | Manufacturer 785 | Many 786 | Map 787 | March 788 | Mark 789 | Market 790 | Marketing 791 | Marriage 792 | Master 793 | Match 794 | Mate 795 | Material 796 | Math 797 | Matter 798 | Maximum 799 | Maybe 800 | Meal 801 | Meaning 802 | Measurement 803 | Meat 804 | Media 805 | Medicine 806 | Medium 807 | Meet 808 | Meeting 809 | Member 810 | Membership 811 | Memory 812 | Mention 813 | Menu 814 | Mess 815 | Message 816 | Metal 817 | Method 818 | Middle 819 | Midnight 820 | Might 821 | Milk 822 | Mind 823 | Mine 824 | Minimum 825 | Minor 826 | Minute 827 | Mirror 828 | Miss 829 | Mission 830 | Mistake 831 | Mix 832 | Mixture 833 | Mobile 834 | Mode 835 | Model 836 | Mom 837 | Moment 838 | Money 839 | Monitor 840 | Month 841 | Mood 842 | Morning 843 | Mortgage 844 | Most 845 | Mother 846 | Motor 847 | Mountain 848 | Mouse 849 | Mouth 850 | Move 851 | Movie 852 | Mud 853 | Muscle 854 | Music 855 | Nail 856 | Name 857 | Nasty 858 | Nation 859 | National 860 | Native 861 | Natural 862 | Nature 863 | Neat 864 | Necessary 865 | Neck 866 | Negative 867 | Negotiation 868 | Nerve 869 | Net 870 | Network 871 | News 872 | Newspaper 873 | Night 874 | Nobody 875 | Noise 876 | Normal 877 | North 878 | Nose 879 | Note 880 | Nothing 881 | Notice 882 | Novel 883 | Number 884 | Nurse 885 | Object 886 | Objective 887 | Obligation 888 | Occasion 889 | Offer 890 | Office 891 | Officer 892 | Official 893 | Oil 894 | One 895 | Opening 896 | Operation 897 | Opinion 898 | Opportunity 899 | Opposite 900 | Option 901 | Orange 902 | Order 903 | Ordinary 904 | Organization 905 | Original 906 | Other 907 | Outcome 908 | Outside 909 | Oven 910 | Owner 911 | Pace 912 | Pack 913 | Package 914 | Page 915 | Pain 916 | Paint 917 | Painting 918 | Pair 919 | Panic 920 | Paper 921 | Parent 922 | Park 923 | Parking 924 | Part 925 | Particular 926 | Partner 927 | Party 928 | Pass 929 | Passage 930 | Passenger 931 | Passion 932 | Past 933 | Path 934 | Patience 935 | Patient 936 | Pattern 937 | Pause 938 | Pay 939 | Payment 940 | Peace 941 | Peak 942 | Pen 943 | Penalty 944 | Pension 945 | People 946 | Percentage 947 | Perception 948 | Performance 949 | Period 950 | Permission 951 | Permit 952 | Person 953 | Personal 954 | Personality 955 | Perspective 956 | Phase 957 | Philosophy 958 | Phone 959 | Photo 960 | Phrase 961 | Physical 962 | Physics 963 | Piano 964 | Pick 965 | Picture 966 | Pie 967 | Piece 968 | Pin 969 | Pipe 970 | Pitch 971 | Pizza 972 | Place 973 | Plan 974 | Plane 975 | Plant 976 | Plastic 977 | Plate 978 | Platform 979 | Play 980 | Player 981 | Pleasure 982 | Plenty 983 | Poem 984 | Poet 985 | Poetry 986 | Point 987 | Police 988 | Policy 989 | Politics 990 | Pollution 991 | Pool 992 | Pop 993 | Population 994 | Position 995 | Positive 996 | Possession 997 | Possibility 998 | Possible 999 | Post 1000 | Pot 1001 | Potato 1002 | Potential 1003 | Pound 1004 | Power 1005 | Practice 1006 | Preference 1007 | Preparation 1008 | Presence 1009 | Present 1010 | Presentation 1011 | President 1012 | Press 1013 | Pressure 1014 | Price 1015 | Pride 1016 | Priest 1017 | Primary 1018 | Principle 1019 | Print 1020 | Prior 1021 | Priority 1022 | Private 1023 | Prize 1024 | Problem 1025 | Procedure 1026 | Process 1027 | Produce 1028 | Product 1029 | Profession 1030 | Professional 1031 | Professor 1032 | Profile 1033 | Profit 1034 | Program 1035 | Progress 1036 | Project 1037 | Promise 1038 | Promotion 1039 | Prompt 1040 | Proof 1041 | Property 1042 | Proposal 1043 | Protection 1044 | Psychology 1045 | Public 1046 | Pull 1047 | Punch 1048 | Purchase 1049 | Purple 1050 | Purpose 1051 | Push 1052 | Put 1053 | Quality 1054 | Quantity 1055 | Quarter 1056 | Queen 1057 | Question 1058 | Quiet 1059 | Quit 1060 | Quote 1061 | Race 1062 | Radio 1063 | Rain 1064 | Raise 1065 | Range 1066 | Rate 1067 | Ratio 1068 | Raw 1069 | Reach 1070 | Reaction 1071 | Read 1072 | Reading 1073 | Reality 1074 | Reason 1075 | Reception 1076 | Recipe 1077 | Recognition 1078 | Recommendation 1079 | Record 1080 | Recording 1081 | Recover 1082 | Red 1083 | Reference 1084 | Reflection 1085 | Refrigerator 1086 | Refuse 1087 | Region 1088 | Register 1089 | Regret 1090 | Regular 1091 | Relation 1092 | Relationship 1093 | Relative 1094 | Release 1095 | Relief 1096 | Remote 1097 | Remove 1098 | Rent 1099 | Repair 1100 | Repeat 1101 | Replacement 1102 | Reply 1103 | Report 1104 | Representative 1105 | Republic 1106 | Reputation 1107 | Request 1108 | Requirement 1109 | Research 1110 | Reserve 1111 | Resident 1112 | Resist 1113 | Resolution 1114 | Resolve 1115 | Resort 1116 | Resource 1117 | Respect 1118 | Respond 1119 | Response 1120 | Responsibility 1121 | Rest 1122 | Restaurant 1123 | Result 1124 | Return 1125 | Reveal 1126 | Revenue 1127 | Review 1128 | Revolution 1129 | Reward 1130 | Rice 1131 | Rich 1132 | Ride 1133 | Ring 1134 | Rip 1135 | Rise 1136 | Risk 1137 | River 1138 | Road 1139 | Rock 1140 | Role 1141 | Roll 1142 | Roof 1143 | Room 1144 | Rope 1145 | Rough 1146 | Round 1147 | Routine 1148 | Row 1149 | Royal 1150 | Rub 1151 | Ruin 1152 | Rule 1153 | Run 1154 | Rush 1155 | Sad 1156 | Safe 1157 | Safety 1158 | Sail 1159 | Salad 1160 | Salary 1161 | Sale 1162 | Salt 1163 | Sample 1164 | Sand 1165 | Sandwich 1166 | Satisfaction 1167 | Save 1168 | Savings 1169 | Scale 1170 | Scene 1171 | Schedule 1172 | Scheme 1173 | School 1174 | Science 1175 | Score 1176 | Scratch 1177 | Screen 1178 | Screw 1179 | Script 1180 | Sea 1181 | Search 1182 | Season 1183 | Seat 1184 | Second 1185 | Secret 1186 | Secretary 1187 | Section 1188 | Sector 1189 | Security 1190 | Selection 1191 | Self 1192 | Sell 1193 | Senior 1194 | Sense 1195 | Sensitive 1196 | Sentence 1197 | Series 1198 | Serve 1199 | Service 1200 | Session 1201 | Set 1202 | Setting 1203 | Sex 1204 | Shake 1205 | Shame 1206 | Shape 1207 | Share 1208 | She 1209 | Shelter 1210 | Shift 1211 | Shine 1212 | Ship 1213 | Shirt 1214 | Shock 1215 | Shoe 1216 | Shoot 1217 | Shop 1218 | Shopping 1219 | Shot 1220 | Shoulder 1221 | Show 1222 | Shower 1223 | Sick 1224 | Side 1225 | Sign 1226 | Signal 1227 | Signature 1228 | Significance 1229 | Silly 1230 | Silver 1231 | Simple 1232 | Sing 1233 | Singer 1234 | Single 1235 | Sink 1236 | Sir 1237 | Sister 1238 | Site 1239 | Situation 1240 | Size 1241 | Skill 1242 | Skin 1243 | Skirt 1244 | Sky 1245 | Sleep 1246 | Slice 1247 | Slide 1248 | Slip 1249 | Smell 1250 | Smile 1251 | Smoke 1252 | Snow 1253 | Society 1254 | Sock 1255 | Soft 1256 | Software 1257 | Soil 1258 | Solid 1259 | Solution 1260 | Somewhere 1261 | Son 1262 | Song 1263 | Sort 1264 | Sound 1265 | Soup 1266 | Source 1267 | South 1268 | Space 1269 | Spare 1270 | Speaker 1271 | Special 1272 | Specialist 1273 | Specific 1274 | Speech 1275 | Speed 1276 | Spell 1277 | Spend 1278 | Spirit 1279 | Spiritual 1280 | Spite 1281 | Split 1282 | Sport 1283 | Spot 1284 | Spray 1285 | Spread 1286 | Spring 1287 | Square 1288 | Stable 1289 | Staff 1290 | Stage 1291 | Stand 1292 | Standard 1293 | Star 1294 | Start 1295 | State 1296 | Statement 1297 | Station 1298 | Status 1299 | Stay 1300 | Steak 1301 | Steal 1302 | Step 1303 | Stick 1304 | Still 1305 | Stock 1306 | Stomach 1307 | Stop 1308 | Storage 1309 | Store 1310 | Storm 1311 | Story 1312 | Strain 1313 | Stranger 1314 | Strategy 1315 | Street 1316 | Strength 1317 | Stress 1318 | Stretch 1319 | Strike 1320 | String 1321 | Strip 1322 | Stroke 1323 | Structure 1324 | Struggle 1325 | Student 1326 | Studio 1327 | Study 1328 | Stuff 1329 | Stupid 1330 | Style 1331 | Subject 1332 | Substance 1333 | Success 1334 | Suck 1335 | Sugar 1336 | Suggestion 1337 | Suit 1338 | Summer 1339 | Sun 1340 | Supermarket 1341 | Support 1342 | Surgery 1343 | Surprise 1344 | Surround 1345 | Survey 1346 | Suspect 1347 | Sweet 1348 | Swim 1349 | Swimming 1350 | Swing 1351 | Switch 1352 | Sympathy 1353 | System 1354 | Table 1355 | Tackle 1356 | Tale 1357 | Talk 1358 | Tank 1359 | Tap 1360 | Target 1361 | Task 1362 | Taste 1363 | Tax 1364 | Tea 1365 | Teach 1366 | Teacher 1367 | Teaching 1368 | Team 1369 | Tear 1370 | Technology 1371 | Telephone 1372 | Television 1373 | Tell 1374 | Temperature 1375 | Temporary 1376 | Tennis 1377 | Tension 1378 | Term 1379 | Test 1380 | Text 1381 | Thanks 1382 | Theme 1383 | Theory 1384 | Thing 1385 | Thought 1386 | Throat 1387 | Ticket 1388 | Tie 1389 | Till 1390 | Time 1391 | Tip 1392 | Title 1393 | Today 1394 | Toe 1395 | Tomorrow 1396 | Tone 1397 | Tongue 1398 | Tonight 1399 | Tool 1400 | Tooth 1401 | Top 1402 | Topic 1403 | Total 1404 | Touch 1405 | Tough 1406 | Tour 1407 | Tourist 1408 | Towel 1409 | Tower 1410 | Town 1411 | Track 1412 | Trade 1413 | Tradition 1414 | Traffic 1415 | Train 1416 | Trainer 1417 | Training 1418 | Transition 1419 | Transportation 1420 | Trash 1421 | Travel 1422 | Treat 1423 | Tree 1424 | Trick 1425 | Trip 1426 | Trouble 1427 | Truck 1428 | Trust 1429 | Truth 1430 | Try 1431 | Tune 1432 | Turn 1433 | Twist 1434 | Two 1435 | Type 1436 | Uncle 1437 | Understanding 1438 | Union 1439 | Unique 1440 | Unit 1441 | University 1442 | Upper 1443 | Upstairs 1444 | Use 1445 | User 1446 | Usual 1447 | Vacation 1448 | Valuable 1449 | Value 1450 | Variation 1451 | Variety 1452 | Vast 1453 | Vegetable 1454 | Vehicle 1455 | Version 1456 | Video 1457 | View 1458 | Village 1459 | Virus 1460 | Visit 1461 | Visual 1462 | Voice 1463 | Volume 1464 | Wait 1465 | Wake 1466 | Walk 1467 | Wall 1468 | War 1469 | Warning 1470 | Wash 1471 | Watch 1472 | Water 1473 | Wave 1474 | Way 1475 | Weakness 1476 | Wealth 1477 | Wear 1478 | Weather 1479 | Web 1480 | Wedding 1481 | Week 1482 | Weekend 1483 | Weight 1484 | Weird 1485 | Welcome 1486 | West 1487 | Western 1488 | Wheel 1489 | Whereas 1490 | While 1491 | White 1492 | Whole 1493 | Wife 1494 | Will 1495 | Win 1496 | Wind 1497 | Window 1498 | Wine 1499 | Wing 1500 | Winner 1501 | Winter 1502 | Wish 1503 | Witness 1504 | Woman 1505 | Wonder 1506 | Wood 1507 | Word 1508 | Work 1509 | Worker 1510 | Working 1511 | World 1512 | Worry 1513 | Worth 1514 | Wrap 1515 | Writer 1516 | Writing 1517 | Xenolith 1518 | Xylophone 1519 | Yard 1520 | Year 1521 | Yellow 1522 | You 1523 | Young 1524 | Youth 1525 | Zebra 1526 | Zealot 1527 | Zombie 1528 | Zone 1529 | -------------------------------------------------------------------------------- /cultures/en/space.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cultures/en/states.csv: -------------------------------------------------------------------------------- 1 | "StateName","Abbreviation","Capital","Zip" 2 | "Alabama","AL","Montgomery","36101" 3 | "Alaska","AK","Juneau","99801" 4 | "Arizona","AZ","Phoenix","85001" 5 | "Arkansas","AR","Little Rock","72201" 6 | "California","CA","Sacramento","94203" 7 | "Colorado","CO","Denver","80201" 8 | "Connecticut","CT","Hartford","06101" 9 | "Delaware","DE","Dover","19901" 10 | "Florida","FL","Tallahassee","32301" 11 | "Georgia","GA","Atlanta","30301" 12 | "Hawaii","HI","Honolulu","96801" 13 | "Idaho","ID","Boise","83701" 14 | "Illinois","IL","Springfield","62701" 15 | "Indiana","IN","Indianapolis","46201" 16 | "Iowa","IA","Des Moines","50301" 17 | "Kansas","KS","Topeka","66601" 18 | "Kentucky","KY","Frankfort","40601" 19 | "Louisiana","LA","Baton Rouge","70801" 20 | "Maine","ME","Augusta","04330" 21 | "Maryland","MD","Annapolis","21401" 22 | "Massachusetts","MA","Boston","02108" 23 | "Michigan","MI","Lansing","48901" 24 | "Minnesota","MN","St. Paul","55101" 25 | "Mississippi","MS","Jackson","39201" 26 | "Missouri","MO","Jefferson City","65101" 27 | "Montana","MT","Helena","59601" 28 | "Nebraska","NE","Lincoln","68501" 29 | "Nevada","NV","Carson City","89701" 30 | "New Hampshire","NH","Concord","03301" 31 | "New Jersey","NJ","Trenton","08601" 32 | "New Mexico","NM","Santa Fe","87501" 33 | "New York","NY","Albany","12201" 34 | "North Carolina","NC","Raleigh","27601" 35 | "North Dakota","ND","Bismarck","58501" 36 | "Ohio","OH","Columbus","43201" 37 | "Oklahoma","OK","Oklahoma City","73101" 38 | "Oregon","OR","Salem","97301" 39 | "Pennsylvania","PA","Harrisburg","17101" 40 | "Rhode Island","RI","Providence","02901" 41 | "South Carolina","SC","Columbia","29201" 42 | "South Dakota","SD","Pierre","57501" 43 | "Tennessee","TN","Nashville","37201" 44 | "Texas","TX","Austin","73301" 45 | "Utah","UT","Salt Lake City","84101" 46 | "Vermont","VT","Montpelier","05601" 47 | "Virginia","VA","Richmond","23218" 48 | "Washington","WA","Olympia","98501" 49 | "West Virginia","WV","Charleston","25301" 50 | "Wisconsin","WI","Madison","53701" 51 | "Wyoming","WY","Cheyenne","82001" 52 | -------------------------------------------------------------------------------- /cultures/en/streetsuffix.txt: -------------------------------------------------------------------------------- 1 | allee 2 | anex 3 | arc 4 | av 5 | bayoo 6 | bch 7 | bend 8 | blf 9 | bluffs 10 | bot 11 | blvd 12 | br 13 | brdge 14 | brk 15 | brooks 16 | burg 17 | burgs 18 | byp 19 | camp 20 | canyn 21 | cape 22 | causeway 23 | cen 24 | centers 25 | cir 26 | circles 27 | clf 28 | clfs 29 | clb 30 | common 31 | commons 32 | cor 33 | corners 34 | course 35 | court 36 | courts 37 | cove 38 | coves 39 | creek 40 | crescent 41 | crest 42 | crossing 43 | crossroad 44 | crossroads 45 | curve 46 | dale 47 | dam 48 | div 49 | dr 50 | drives 51 | est 52 | estates 53 | exp 54 | ext 55 | exts 56 | fall 57 | falls 58 | ferry 59 | field 60 | fields 61 | flat 62 | flats 63 | ford 64 | fords 65 | forest 66 | forg 67 | forges 68 | fork 69 | forks 70 | fort 71 | freeway 72 | garden 73 | gardens 74 | gateway 75 | glen 76 | glens 77 | green 78 | greens 79 | grov 80 | groves 81 | harb 82 | harbors 83 | haven 84 | ht 85 | highway 86 | hill 87 | hills 88 | hllw 89 | inlt 90 | is 91 | islands 92 | isle 93 | jct 94 | jctns 95 | key 96 | keys 97 | knl 98 | knls 99 | lk 100 | lks 101 | land 102 | landing 103 | lane 104 | lgt 105 | lights 106 | lf 107 | lck 108 | lcks 109 | ldg 110 | loop 111 | mall 112 | mnr 113 | manors 114 | meadow 115 | mdw 116 | mews 117 | mill 118 | mills 119 | missn 120 | motorway 121 | mnt 122 | mntain 123 | mntns 124 | nck 125 | orch 126 | oval 127 | overpass 128 | park 129 | parks 130 | parkway 131 | parkways 132 | pass 133 | passage 134 | path 135 | pike 136 | pine 137 | pines 138 | pl 139 | plain 140 | plains 141 | plaza 142 | point 143 | points 144 | port 145 | ports 146 | pr 147 | rad 148 | ramp 149 | ranch 150 | rapid 151 | rapids 152 | rest 153 | rdg 154 | rdgs 155 | riv 156 | rd 157 | roads 158 | route 159 | row 160 | rue 161 | run 162 | shl 163 | shls 164 | shoar 165 | shoars 166 | skyway 167 | spg 168 | spgs 169 | spur 170 | spurs 171 | sq 172 | sqrs 173 | sta 174 | stra 175 | stream 176 | street 177 | streets 178 | smt 179 | ter 180 | throughway 181 | trace 182 | track 183 | trafficway 184 | trail 185 | trailer 186 | tunel 187 | trnpk 188 | underpass 189 | un 190 | unions 191 | valley 192 | valleys 193 | vdct 194 | view 195 | views 196 | vill 197 | villages 198 | ville 199 | vis 200 | walk 201 | walks 202 | wall 203 | wy 204 | ways 205 | well 206 | wells -------------------------------------------------------------------------------- /cultures/en/verbs.txt: -------------------------------------------------------------------------------- 1 | Abuse 2 | Accept 3 | Access 4 | According 5 | Account 6 | Accuse 7 | Achieve 8 | Acquire 9 | Act 10 | Adapt 11 | Add 12 | Address 13 | Adjust 14 | Admire 15 | Admit 16 | Adopt 17 | Advance 18 | Advanced 19 | Advantage 20 | Affect 21 | Afford 22 | Age 23 | Agree 24 | Air 25 | Alarm 26 | Allow 27 | Amazing 28 | Amount 29 | Anger 30 | Angle 31 | Announce 32 | Answer 33 | Anticipate 34 | Apologize 35 | Appeal 36 | Appear 37 | Apply 38 | Appreciate 39 | Approach 40 | Appropriate 41 | Approve 42 | Are 43 | Argue 44 | Arise 45 | Arm 46 | Arrive 47 | Ask 48 | Assist 49 | Associate 50 | Assume 51 | Assure 52 | Attach 53 | Attack 54 | Attempt 55 | Attend 56 | Attract 57 | Author 58 | Average 59 | Avoid 60 | Award 61 | Baby 62 | Bag 63 | Bake 64 | Balance 65 | Ball 66 | Band 67 | Bank 68 | Bar 69 | Base 70 | Bat 71 | Battle 72 | Be 73 | Beach 74 | Bear 75 | Beat 76 | Become 77 | Bed 78 | Been 79 | Begin 80 | Behave 81 | Being 82 | Believe 83 | Bell 84 | Belong 85 | Belt 86 | Bench 87 | Bend 88 | Benefit 89 | Bet 90 | Bicycle 91 | Bid 92 | Bike 93 | Bill 94 | Birth 95 | Bit 96 | Bite 97 | Black 98 | Blame 99 | Blank 100 | Blind 101 | Block 102 | Blow 103 | Blue 104 | Board 105 | Boat 106 | Body 107 | Bone 108 | Book 109 | Boot 110 | Border 111 | Born 112 | Borrow 113 | Boss 114 | Bother 115 | Bottle 116 | Bottom 117 | Bowl 118 | Box 119 | Brain 120 | Branch 121 | Break 122 | Breakfast 123 | Breast 124 | Brick 125 | Bridge 126 | Bring 127 | Brush 128 | Buddy 129 | Bug 130 | Build 131 | Building 132 | Bunch 133 | Burn 134 | Bus 135 | Busy 136 | Button 137 | Buy 138 | Cable 139 | Cake 140 | Calculate 141 | Calendar 142 | Call 143 | Camp 144 | Campaign 145 | Cancel 146 | Candle 147 | Candy 148 | Cap 149 | Card 150 | Care 151 | Career 152 | Carpet 153 | Carry 154 | Case 155 | Cash 156 | Cat 157 | Catch 158 | Cause 159 | Celebrate 160 | Chain 161 | Chair 162 | Challenge 163 | Champion 164 | Change 165 | Channel 166 | Charge 167 | Chart 168 | Check 169 | Chip 170 | Choose 171 | Claim 172 | Class 173 | Clerk 174 | Click 175 | Clock 176 | Closed 177 | Closet 178 | Cloud 179 | Club 180 | Clue 181 | Coach 182 | Coast 183 | Coat 184 | Code 185 | Collar 186 | Collect 187 | Combine 188 | Come 189 | Comfort 190 | Command 191 | Comment 192 | Commission 193 | Commit 194 | Communicate 195 | Company 196 | Compare 197 | Compete 198 | Complain 199 | Complete 200 | Complicated 201 | Concentrate 202 | Concern 203 | Concerned 204 | Concert 205 | Condition 206 | Conference 207 | Confirm 208 | Conflict 209 | Connect 210 | Consider 211 | Consist 212 | Consult 213 | Contact 214 | Contain 215 | Content 216 | Contest 217 | Continue 218 | Contribute 219 | Convert 220 | Convince 221 | Cook 222 | Copy 223 | Correct 224 | Cost 225 | Count 226 | Counter 227 | Couple 228 | Course 229 | Court 230 | Cover 231 | Cow 232 | Crack 233 | Craft 234 | Crash 235 | Cream 236 | Create 237 | Credit 238 | Crew 239 | Criticize 240 | Cross 241 | Cry 242 | Culture 243 | Cup 244 | Curve 245 | Cut 246 | Cycle 247 | Damage 248 | Dance 249 | Dare 250 | Date 251 | Deal 252 | Debate 253 | Decide 254 | Delay 255 | Deliver 256 | Demand 257 | Depend 258 | Deposit 259 | Describe 260 | Deserve 261 | Design 262 | Desire 263 | Destroy 264 | Detail 265 | Detailed 266 | Determine 267 | Develop 268 | Devil 269 | Die 270 | Diet 271 | Differ 272 | Dig 273 | Dimension 274 | Dirty 275 | Disagree 276 | Disappointed 277 | Discipline 278 | Discount 279 | Discover 280 | Discuss 281 | Dish 282 | Display 283 | Distance 284 | Distribute 285 | District 286 | Divide 287 | Doctor 288 | Document 289 | Does 290 | Dog 291 | Dot 292 | Doubt 293 | Draft 294 | Drag 295 | Draw 296 | Dream 297 | Drink 298 | Drive 299 | Drop 300 | Dry 301 | Dump 302 | Dust 303 | Earn 304 | Earth 305 | Ease 306 | Eat 307 | Edge 308 | Effect 309 | Egg 310 | Emphasize 311 | Employ 312 | Empty 313 | Enable 314 | Encourage 315 | Encouraging 316 | End 317 | Engage 318 | Engineer 319 | Enhance 320 | Enjoy 321 | Ensure 322 | Enter 323 | Entrance 324 | Escape 325 | Essay 326 | Establish 327 | Estimate 328 | Even 329 | Evidence 330 | Exact 331 | Examine 332 | Example 333 | Exchange 334 | Excuse 335 | Exercise 336 | Exist 337 | Exit 338 | Expand 339 | Expect 340 | Experience 341 | Experienced 342 | Explain 343 | Explore 344 | Expose 345 | Express 346 | Extend 347 | Eye 348 | Face 349 | Factor 350 | Fail 351 | Fall 352 | Fan 353 | Farm 354 | Father 355 | Fault 356 | Fear 357 | Feature 358 | Fee 359 | Feed 360 | Feel 361 | Field 362 | Fight 363 | Figure 364 | File 365 | Fill 366 | Film 367 | Finance 368 | Find 369 | Finger 370 | Finish 371 | Fire 372 | Firm 373 | Fish 374 | Fit 375 | Fix 376 | Fixed 377 | Floor 378 | Flow 379 | Flower 380 | Fly 381 | Focus 382 | Fold 383 | Follow 384 | Foot 385 | Force 386 | Forget 387 | Form 388 | Frame 389 | Frequent 390 | Friend 391 | Fruit 392 | Fuel 393 | Function 394 | Gain 395 | Gap 396 | Garage 397 | Garden 398 | Gas 399 | Gather 400 | Gear 401 | Generate 402 | Get 403 | Gift 404 | Give 405 | Glove 406 | Go 407 | Golf 408 | Grab 409 | Grade 410 | Grandfather 411 | Grass 412 | Ground 413 | Group 414 | Grow 415 | Guarantee 416 | Guard 417 | Guess 418 | Guide 419 | Guy 420 | Habit 421 | Hand 422 | Handle 423 | Hang 424 | Happen 425 | Harm 426 | Has 427 | Hate 428 | Have 429 | Hear 430 | Heat 431 | Help 432 | Hesitate 433 | Hide 434 | Highlight 435 | Hire 436 | Hit 437 | Hold 438 | Hole 439 | Hook 440 | Hope 441 | Horse 442 | Host 443 | Hunt 444 | Hurry 445 | Hurt 446 | Husband 447 | Ice 448 | Identify 449 | Ignore 450 | Illustrate 451 | Image 452 | Imagine 453 | Impact 454 | Implement 455 | Imply 456 | Impress 457 | Improve 458 | Include 459 | Incorporate 460 | Increase 461 | Indicate 462 | Influence 463 | Inform 464 | Insist 465 | Install 466 | Intend 467 | Interest 468 | Interested 469 | Interview 470 | Introduce 471 | Invest 472 | Investigate 473 | Invite 474 | Involve 475 | Involved 476 | Iron 477 | Is 478 | Island 479 | Issue 480 | Jacket 481 | Job 482 | Join 483 | Joke 484 | Judge 485 | Juice 486 | Jump 487 | Jury 488 | Justify 489 | Keep 490 | Kick 491 | Kid 492 | Kill 493 | Kiss 494 | Knee 495 | Knife 496 | Know 497 | Lack 498 | Land 499 | Landscape 500 | Laugh 501 | Lawyer 502 | Lay 503 | Layer 504 | Lead 505 | League 506 | Learn 507 | Leave 508 | Lecture 509 | Leg 510 | Lesson 511 | Let 512 | Letter 513 | Lie 514 | Lift 515 | Light 516 | Like 517 | Limit 518 | Limited 519 | Line 520 | Link 521 | Lip 522 | List 523 | Listen 524 | Live 525 | Load 526 | Loan 527 | Lock 528 | Log 529 | Look 530 | Loose 531 | Lose 532 | Lost 533 | Luck 534 | Lunch 535 | Machine 536 | Mail 537 | Maintain 538 | Make 539 | Man 540 | Manage 541 | Manufacturing 542 | March 543 | Mark 544 | Market 545 | Married 546 | Marry 547 | Match 548 | Mate 549 | Matter 550 | Mean 551 | Meet 552 | Mention 553 | Mess 554 | Metal 555 | Milk 556 | Mind 557 | Mirror 558 | Miss 559 | Mistake 560 | Mix 561 | Mixed 562 | Model 563 | Monitor 564 | Mortgage 565 | Mouse 566 | Mouth 567 | Move 568 | Muscle 569 | Must 570 | Nail 571 | Name 572 | Narrow 573 | Neck 574 | Need 575 | Negotiate 576 | Nerve 577 | Net 578 | Network 579 | Noise 580 | Nose 581 | Note 582 | Notice 583 | Number 584 | Nurse 585 | Object 586 | Obtain 587 | Occasion 588 | Occur 589 | Offer 590 | Officer 591 | Oil 592 | Open 593 | Operate 594 | Option 595 | Order 596 | Organize 597 | Organized 598 | Ought 599 | Overcome 600 | Owe 601 | Own 602 | Pace 603 | Pack 604 | Package 605 | Page 606 | Pain 607 | Paint 608 | Pair 609 | Panic 610 | Parent 611 | Park 612 | Part 613 | Participate 614 | Partner 615 | Pass 616 | Passage 617 | Pattern 618 | Pause 619 | Pay 620 | Peak 621 | Pen 622 | Pension 623 | Perfect 624 | Perform 625 | Permit 626 | Persuade 627 | Phase 628 | Phrase 629 | Pick 630 | Picture 631 | Piece 632 | Pin 633 | Pipe 634 | Pitch 635 | Place 636 | Plan 637 | Plant 638 | Plate 639 | Play 640 | Please 641 | Pleased 642 | Pleasure 643 | Point 644 | Pool 645 | Pop 646 | Position 647 | Possess 648 | Post 649 | Pot 650 | Pound 651 | Pour 652 | Practice 653 | Pray 654 | Prefer 655 | Prepare 656 | Press 657 | Pressure 658 | Pretend 659 | Prevent 660 | Price 661 | Pride 662 | Priest 663 | Print 664 | Process 665 | Produce 666 | Profile 667 | Profit 668 | Program 669 | Progress 670 | Project 671 | Promise 672 | Prompt 673 | Propose 674 | Proposed 675 | Protect 676 | Prove 677 | Provide 678 | Provided 679 | Pull 680 | Punch 681 | Purchase 682 | Purpose 683 | Pursue 684 | Push 685 | Put 686 | Qualify 687 | Quarter 688 | Question 689 | Quit 690 | Quote 691 | Race 692 | Radio 693 | Rain 694 | Raise 695 | Range 696 | Rate 697 | Reach 698 | React 699 | Read 700 | Ready 701 | Realize 702 | Reason 703 | Receive 704 | Recognize 705 | Recommend 706 | Record 707 | Recover 708 | Reduce 709 | Refer 710 | Reference 711 | Reflect 712 | Refuse 713 | Register 714 | Regret 715 | Relate 716 | Related 717 | Relax 718 | Release 719 | Relieve 720 | Rely 721 | Remain 722 | Remaining 723 | Remember 724 | Remind 725 | Remove 726 | Rent 727 | Repair 728 | Repeat 729 | Replace 730 | Reply 731 | Report 732 | Represent 733 | Request 734 | Require 735 | Research 736 | Reserve 737 | Resist 738 | Resolve 739 | Resort 740 | Respect 741 | Respond 742 | Rest 743 | Result 744 | Retain 745 | Retire 746 | Return 747 | Reveal 748 | Review 749 | Reward 750 | Rice 751 | Rid 752 | Ride 753 | Ring 754 | Rip 755 | Rise 756 | Risk 757 | Rock 758 | Roll 759 | Roof 760 | Room 761 | Rope 762 | Row 763 | Rub 764 | Ruin 765 | Rule 766 | Run 767 | Rush 768 | Sail 769 | Salary 770 | Sand 771 | Sandwich 772 | Save 773 | Say 774 | Scale 775 | Schedule 776 | Scheme 777 | School 778 | Score 779 | Scratch 780 | Screen 781 | Screw 782 | Script 783 | Search 784 | Season 785 | Seat 786 | Section 787 | Secure 788 | See 789 | Seek 790 | Seem 791 | Select 792 | Sell 793 | Send 794 | Sense 795 | Sentence 796 | Separate 797 | Serve 798 | Service 799 | Set 800 | Settle 801 | Sex 802 | Shake 803 | Shall 804 | Shame 805 | Shape 806 | Share 807 | Sharp 808 | Shelter 809 | Shift 810 | Shine 811 | Ship 812 | Shock 813 | Shoe 814 | Shoot 815 | Shop 816 | Shoulder 817 | Show 818 | Shower 819 | Shut 820 | Side 821 | Sign 822 | Sing 823 | Sink 824 | Sit 825 | Site 826 | Size 827 | Skin 828 | Skirt 829 | Sky 830 | Sleep 831 | Slice 832 | Slide 833 | Slight 834 | Slip 835 | Smart 836 | Smell 837 | Smile 838 | Smoke 839 | Snow 840 | Sock 841 | Soil 842 | Solve 843 | Sort 844 | Sound 845 | Source 846 | Space 847 | Speak 848 | Specify 849 | Speed 850 | Spell 851 | Spend 852 | Spirit 853 | Spite 854 | Split 855 | Sport 856 | Spot 857 | Spray 858 | Spread 859 | Spring 860 | Stable 861 | Staff 862 | Stage 863 | Stand 864 | Star 865 | Start 866 | State 867 | Station 868 | Stay 869 | Steal 870 | Step 871 | Stick 872 | Stomach 873 | Stop 874 | Store 875 | Storm 876 | Strain 877 | Stress 878 | Stretch 879 | Strike 880 | String 881 | Strip 882 | Stroke 883 | Structure 884 | Struggle 885 | Study 886 | Stuff 887 | Style 888 | Submit 889 | Succeed 890 | Suck 891 | Suffer 892 | Sugar 893 | Suggest 894 | Suit 895 | Summer 896 | Sun 897 | Supply 898 | Support 899 | Suppose 900 | Surprise 901 | Surprised 902 | Surround 903 | Survey 904 | Survive 905 | Suspect 906 | Swim 907 | Swing 908 | Switch 909 | Table 910 | Tackle 911 | Take 912 | Talk 913 | Tank 914 | Tap 915 | Target 916 | Task 917 | Taste 918 | Tax 919 | Teach 920 | Team 921 | Tear 922 | Telephone 923 | Tell 924 | Tend 925 | Term 926 | Test 927 | Text 928 | Thank 929 | Theme 930 | Think 931 | Throw 932 | Ticket 933 | Tie 934 | Till 935 | Tip 936 | Tired 937 | Title 938 | Toe 939 | Tone 940 | Tool 941 | Touch 942 | Tour 943 | Towel 944 | Tower 945 | Track 946 | Trade 947 | Traffic 948 | Train 949 | Transition 950 | Translate 951 | Trash 952 | Travel 953 | Treat 954 | Tree 955 | Trip 956 | Trouble 957 | Truck 958 | Trust 959 | Try 960 | Tune 961 | Turn 962 | Twist 963 | Type 964 | Understand 965 | Upset 966 | Use 967 | Vacation 968 | Value 969 | Vary 970 | View 971 | Visit 972 | Voice 973 | Wait 974 | Wake 975 | Walk 976 | Wall 977 | Want 978 | War 979 | Warm 980 | Warn 981 | Was 982 | Wash 983 | Waste 984 | Watch 985 | Water 986 | Wave 987 | Wear 988 | Weather 989 | Web 990 | Weekend 991 | Weigh 992 | Weight 993 | Well 994 | Were 995 | Wheel 996 | Win 997 | Wind 998 | Window 999 | Wing 1000 | Wise 1001 | Wish 1002 | Wonder 1003 | Word 1004 | Worried 1005 | Worry 1006 | Would 1007 | Wrap 1008 | Write 1009 | Yard 1010 | Zone 1011 | -------------------------------------------------------------------------------- /cultures/ja/colors.txt: -------------------------------------------------------------------------------- 1 | 黒 2 | 白 3 | 赤 4 | 黄色 5 | 青 6 | 緑 7 | 茶色 8 | 桃色 9 | 橙色 10 | 灰色 11 | 紫 12 | ブラック 13 | 丹色 14 | ブリュ 15 | 褐色 16 | 淡紅色 17 | ピンク 18 | オレンジ 19 | 鼠色 20 | パープル 21 | -------------------------------------------------------------------------------- /cultures/ja/space.txt: -------------------------------------------------------------------------------- 1 |   -------------------------------------------------------------------------------- /cultures/sv/colors.txt: -------------------------------------------------------------------------------- 1 | umbra 2 | beige 3 | svart 4 | blå 5 | brun 6 | cyan 7 | grå 8 | grön 9 | indigo 10 | kaki 11 | magenta 12 | orange 13 | rosa 14 | lila 15 | röd 16 | vit 17 | gul 18 | -------------------------------------------------------------------------------- /cultures/sv/names.csv: -------------------------------------------------------------------------------- 1 | LastName,FemaleFirstName,MaleFirstName 2 | Abrahamsson,Agnes,Adam 3 | Ahmed,Agneta,Albin 4 | Ali,Alexandra,Alexander 5 | Andersson,Alice,Ali 6 | Andreasson,Amanda ,Anders 7 | Arvidsson,Anette,Andreas 8 | Axelsson,Anita,Anton 9 | Bengtsson,Ann,Arne 10 | Berg,Anna,Arvid 11 | Berggren,Ann-Christin,Axel 12 | Berglund,Anneli,Bengt 13 | Bergman,Annika,Bertil 14 | Bergqvist,Ann-Marie,Björn 15 | Bergström,Astrid,Bo 16 | Björk,Barbro,Christer 17 | Björklund,Berit,Christian 18 | Blom,Birgitta,Christoffer 19 | Blomqvist,Britt,Claes 20 | Claesson,Camilla,Dan 21 | Dahl,Carina,Daniel 22 | Dahlberg,Caroline,David 23 | Danielsson,Cecilia,Edvin 24 | Ek,Charlotta,Elias 25 | Eklund,Charlotte,Emanuel 26 | Ekström,Ebba,Emil 27 | Eliasson,Elin ,Erik 28 | Engström,Elisabeth,Filip 29 | Eriksson,Ella ,Fredrik 30 | Falk,Ellen,Georg 31 | Forsberg,Ellinor,Gunnar 32 | Fransson,Elsa,Gustav 33 | Fredriksson,Emelie,Göran 34 | Gunnarsson,Emilia,Gösta 35 | Gustafsson,Emma,Hans 36 | Hansen,Erika,Henrik 37 | Hansson,Eva,Hugo 38 | Hassan,Felicia,Håkan 39 | Hedlund,Frida,Ingemar 40 | Hellström,Gun,Ingvar 41 | Henriksson,Gunilla,Isak 42 | Hermansson,Hanna,Jakob 43 | Holm,Helen,Jan 44 | Holmberg,Helena,Joakim 45 | Holmgren,Ida ,Johan 46 | Håkansson,Inga,Johannes 47 | Isaksson,Ingeborg,John 48 | Jakobsson,Ingegerd,Johnny 49 | Jansson,Inger,Jonas 50 | Johansson,Ingrid,Jonathan 51 | Jonasson,Irene,Josef 52 | Jonsson,Isabelle ,Jörgen 53 | Jönsson,Jenny,Karl 54 | Karlsson,Jessica,Kenneth 55 | Larsson,Johanna,Kent 56 | Lind,Josefin,Kjell 57 | Lindberg,Julia,Kurt 58 | Lindgren,Karin,Lars 59 | Lindholm,Karolina,Leif 60 | Lindqvist,Katarina,Lennart 61 | Lindström,Kerstin,Linus 62 | Lund,Klara,Lucas 63 | Lundberg,Kristin,Ludvig 64 | Lundgren,Kristina,Magnus 65 | Lundin,Lena,Marcus 66 | Lundqvist,Linda,Martin 67 | Lundström,Linnéa,Mats 68 | Löfgren,Lisa,Mattias 69 | Magnusson,Louise,Mikael 70 | Martinsson,Lovisa,Mohamed 71 | Mattsson,Madeleine,Niklas 72 | Mohamed,Maj,Nils 73 | Månsson,Maja,Oliver 74 | Mårtensson,Malin,Olof 75 | Nilsson,Margareta,Oskar 76 | Norberg,Maria,Ove 77 | Nordin,Marianne,Patrik 78 | Nordström,Marie,Per 79 | Nyberg,Matilda,Peter 80 | Nyström,Mona,Rickard 81 | Olofsson,Monica,Robert 82 | Olsson,Märta,Robin 83 | Persson,Nathalie,Roger 84 | Pettersson,Olivia,Roland 85 | Pålsson,Pia,Rolf 86 | Samuelsson,Rebecca,Rune 87 | Sandberg,Rut,Sebastian 88 | Sandström,Sandra,Simon 89 | Sjöberg,Sara,Stefan 90 | Sjögren,Siv,Sten 91 | Ström,Sofia,Stig 92 | Strömberg,Sofie,Sven 93 | Sundberg,Sonja,Thomas 94 | Svensson,Susanne,Tobias 95 | Söderberg,Therese,Tommy 96 | Viklund,Ulla,Torbjörn 97 | Wallin,Ulrika,Ulf 98 | Wikström,Viktoria,Viktor 99 | Åberg,Viola,Wilhelm 100 | Åkesson,Yvonne,William 101 | Öberg,Åsa,Åke 102 | -------------------------------------------------------------------------------- /cultures/sv/nouns.txt: -------------------------------------------------------------------------------- 1 | Björk 2 | Gran 3 | Tall 4 | Mo 5 | Asp 6 | Ide 7 | adress 8 | advokat 9 | affär 10 | afton 11 | apelsin 12 | apparat 13 | arbetsplats 14 | arm 15 | ask 16 | askkopp 17 | avdelning 18 | axel 19 | ändelse 20 | åker 21 | öken 22 | övning 23 | bagare 24 | bakelse 25 | balkong 26 | bana 27 | banan 28 | bandspelare 29 | bar 30 | barnskötare 31 | bänk 32 | båt 33 | berättelse 34 | bil 35 | bild 36 | biljett 37 | blomma 38 | blus 39 | bok 40 | boll 41 | brandman 42 | brevlåda 43 | bro 44 | bulle 45 | buss 46 | bussförare 47 | butik 48 | chaufför 49 | check 50 | cigarrett 51 | citron 52 | cykel 53 | dag 54 | dator 55 | dörr 56 | deltagare 57 | diskbänk 58 | diskmaskin 59 | dotter 60 | dräkt 61 | duk 62 | dusch 63 | elefant 64 | elev 65 | expedit 66 | fabrik 67 | familj 68 | far 69 | farbror 70 | fax 71 | färg 72 | fågel 73 | fåtölj 74 | förälder 75 | förman 76 | förmiddag 77 | film 78 | fisk 79 | fjärrkontroll 80 | flaska 81 | fläkt 82 | flicka 83 | fluga 84 | flygplats 85 | fot 86 | fotboll 87 | fotbollspelare 88 | frisör 89 | fru 90 | frukost 91 | frukt 92 | frys 93 | fysiker 94 | gaffel 95 | gardin 96 | gata 97 | glass 98 | gran 99 | grönsak 100 | gurka 101 | hall 102 | hamn 103 | hand 104 | handduk 105 | handske 106 | hatt 107 | händelse 108 | häst 109 | hållplats 110 | högtalare 111 | hund 112 | hustru 113 | hylla 114 | idé 115 | idiot 116 | iranier 117 | italienare 118 | jacka 119 | järnvägsstation 120 | jordgubbe 121 | journalist 122 | jumper 123 | kaka 124 | kalender 125 | kam 126 | kamera 127 | kamrat 128 | karta 129 | kassa 130 | kassörska 131 | kasse 132 | katt 133 | källare 134 | kille 135 | kiosk 136 | kjol 137 | klädhängare 138 | klänning 139 | klocka 140 | kniv 141 | ko 142 | kokbok 143 | kompis 144 | kopp 145 | kostym 146 | kran 147 | krona 148 | kropp 149 | kudde 150 | kund 151 | kurs 152 | kusin 153 | kvinna 154 | kyl 155 | lampa 156 | lapp 157 | lägenhet 158 | läkare 159 | lärare 160 | läxa 161 | låda 162 | lök 163 | lucka 164 | lunch 165 | madrass 166 | maka 167 | make 168 | mamma 169 | man 170 | mangel 171 | maskin 172 | matta 173 | människa 174 | målare 175 | månad 176 | möbel 177 | mössa 178 | medicin 179 | mekaniker 180 | mening 181 | minut 182 | moder 183 | moder 184 | morbror 185 | morgon 186 | morot 187 | moster 188 | mugg 189 | mun 190 | musiker 191 | nagel 192 | natt 193 | nyckel 194 | ordningsman 195 | ort 196 | pappa 197 | paprika 198 | park 199 | pärm 200 | påse 201 | påve 202 | peng 203 | penna 204 | pennvässare 205 | person 206 | personuppgift 207 | pipa 208 | plånbok 209 | pojke 210 | polis 211 | post 212 | rad 213 | radio 214 | rand 215 | räkning 216 | restaurang 217 | ring 218 | rock 219 | ros 220 | rot 221 | sak 222 | sand 223 | säng 224 | servitör 225 | servitris 226 | sida 227 | signal 228 | sjöman 229 | skådespelare 230 | sked 231 | skillnad 232 | sko 233 | skog 234 | skola 235 | skomakare 236 | släkting 237 | soffa 238 | sol 239 | somalier 240 | sommar 241 | son 242 | soppa 243 | sotare 244 | spegel 245 | spis 246 | stad 247 | stam 248 | station 249 | stereo 250 | stol 251 | strand 252 | strumpa 253 | svärson 254 | syster 255 | tabell 256 | tand 257 | tandborste 258 | tandkräm 259 | tanke 260 | tavla 261 | taxichaufför 262 | tändare 263 | tå 264 | tårta 265 | te 266 | teater 267 | tekniker 268 | telefon 269 | telefonsvarare 270 | teve 271 | text 272 | tid 273 | tidning 274 | timme 275 | tjej 276 | toalett 277 | toalettstol 278 | tomat 279 | tomte 280 | torktumlare 281 | trappa 282 | tröja 283 | triangel 284 | tulpan 285 | turist 286 | tvättfat 287 | tvättmaskin 288 | tvättstuga 289 | tvål 290 | vante 291 | vara 292 | vägg 293 | vän 294 | väska 295 | våning 296 | vår 297 | vårdcentral 298 | vecka 299 | verkstad 300 | video 301 | villa 302 | vinter 303 | ansikte 304 | apotek 305 | arbete 306 | armband 307 | askfat 308 | ägg 309 | äpple 310 | ärende 311 | år 312 | öga 313 | öra 314 | badkar 315 | badrum 316 | barn 317 | bälte 318 | ben 319 | berg 320 | besök 321 | bibliotek 322 | bilmärke 323 | block 324 | bord 325 | bröd 326 | brev 327 | café 328 | checkhäfte 329 | dagis 330 | datum 331 | element 332 | exempel 333 | fängelse 334 | fönster 335 | flerfamiljhus 336 | foto 337 | frimärke 338 | glas 339 | golv 340 | guld 341 | hallon 342 | halsband 343 | hav 344 | häfte 345 | hårstrå 346 | hem 347 | hjärta 348 | huss 349 | huvud 350 | intresse 351 | jobb 352 | kafé 353 | kapitel 354 | kök 355 | knä 356 | konto 357 | kvitto 358 | land 359 | lexikon 360 | meddelande 361 | namn 362 | nummer 363 | område 364 | ord 365 | paket 366 | papper 367 | par 368 | pass 369 | päron 370 | piano 371 | plommon 372 | porto 373 | pris 374 | problem 375 | program 376 | radergummi 377 | rum 378 | salt 379 | samtal 380 | schampo 381 | schema 382 | skåp 383 | snöre 384 | sovrum 385 | spel 386 | språk 387 | ställe 388 | strykbräde 389 | strykjärn 390 | suddgummi 391 | svar 392 | syskon 393 | system 394 | tak 395 | täcke 396 | tåg 397 | toaletpapper 398 | torg 399 | torkskåp 400 | träd 401 | tuggummi 402 | tvättställ 403 | tyg 404 | universitet 405 | vardagsrum 406 | vatten 407 | väder -------------------------------------------------------------------------------- /cultures/sv/verbs.txt: -------------------------------------------------------------------------------- 1 | Adresserar 2 | Agerar 3 | Aktar 4 | Anar 5 | Analyserar 6 | Andas 7 | Anlitar 8 | Anländer 9 | Anmäler 10 | Antecknar 11 | Använder 12 | Avundas 13 | Backar 14 | Badar 15 | Bakar 16 | Bandar 17 | Bantar 18 | Ber 19 | Befaller 20 | Begraver 21 | Behöver 22 | Beror 23 | Berättar 24 | Berömmer 25 | Beskattar 26 | Beställer 27 | Bestämmer 28 | Betyder 29 | Beundrar 30 | Bevarar 31 | Beviljar 32 | Bevisar 33 | Binder 34 | Biter 35 | Bjuder 36 | Blandar 37 | Blinkar 38 | Blir 39 | Blixtrar 40 | Blåser 41 | Bor 42 | Borstar 43 | Botar 44 | Brer 45 | Brinner 46 | Brister 47 | Bromsar 48 | Brukar 49 | Bryter 50 | Bråkar 51 | Bygger 52 | Byter 53 | Bäddar 54 | Bär 55 | Bör 56 | Börjar 57 | Chockar 58 | Cyklar 59 | Dammar 60 | Darrar 61 | Dekorerar 62 | Delar 63 | Diktar 64 | Dikterar 65 | Diskar 66 | Diskuterar 67 | Doppar 68 | Drar 69 | Dricker 70 | Driver 71 | Dröjer 72 | Drömmer 73 | Duger 74 | Dukar 75 | Duschar 76 | Dyker 77 | Dör 78 | Döljer 79 | Döper 80 | Eldar 81 | Enar 82 | Faller 83 | Far 84 | Fastar 85 | Fastnar 86 | Filmar 87 | Finner 88 | Finns 89 | Firar 90 | Fiskar 91 | Flyger 92 | Flyter 93 | Flyttar 94 | Formar 95 | Forskar 96 | Fortsätter 97 | Friar 98 | Frossar 99 | Fryser 100 | Fyller 101 | Får 102 | Fångar 103 | Fäller 104 | Färdas 105 | Färgar 106 | Följer 107 | Fördärvar 108 | Förhandlar 109 | Förklarar 110 | Förmår 111 | Försvinner 112 | Försöker 113 | Förvarar 114 | Förändrar 115 | Gal 116 | Ger 117 | Gjuter 118 | Glider 119 | Gläder 120 | Glömmer 121 | Gnider 122 | Griper 123 | Gråter 124 | Grälar 125 | Gynnar 126 | Går 127 | Gäller 128 | Gör 129 | Har 130 | Handlar 131 | Hatar 132 | Heter 133 | Hinner 134 | Hittar 135 | Hjälper 136 | Hoppar 137 | Hugger 138 | Håller 139 | Häller 140 | Hälsar 141 | Hämtar 142 | Händer 143 | Hänger 144 | Härmar 145 | Hör 146 | Irriterar 147 | Kammar 148 | Kastar 149 | Klipper 150 | Klistrar 151 | Kliver 152 | Klyver 153 | Klär 154 | Knackar 155 | Knyter 156 | Kommer 157 | Kontrollerar 158 | Kostar 159 | Kryper 160 | Kan 161 | Känner 162 | Köper 163 | Kör 164 | Lagar 165 | Ler 166 | Leker 167 | Lever 168 | Lider 169 | Ligger 170 | Liknar 171 | Ljuder 172 | Ljuger 173 | Luktar 174 | Lyckas 175 | Lyfter 176 | Lyser 177 | Lyssnar 178 | Lånar 179 | Låser 180 | Låter 181 | Lägger 182 | Lämnar 183 | Längtar 184 | Lär 185 | Läser 186 | Löser 187 | Meddelar 188 | Menar 189 | Missar 190 | Mår 191 | Målar 192 | Måste 193 | Möter 194 | Niger 195 | Njuter 196 | Organiserar 197 | Orkar 198 | Packar 199 | Parkerar 200 | Passar 201 | Piper 202 | Placerar 203 | Plockar 204 | Pluggar 205 | Presenterar 206 | Promenerar 207 | Provar 208 | Påminner 209 | Regnar 210 | Reparerar 211 | Reser 212 | Rider 213 | Ringer 214 | Rinner 215 | River 216 | Ror 217 | Ropar 218 | Rullar 219 | Rusar 220 | Ryter 221 | Rånar 222 | Räcker 223 | Röker 224 | Röstar 225 | Saknar 226 | Samarbetar 227 | Samlar 228 | Ser 229 | Seglar 230 | Serverar 231 | Simmar 232 | Sitter 233 | Sjuder 234 | Sjunger 235 | Sjunker 236 | Skadar 237 | Skaffar 238 | Skalar 239 | Sker 240 | Skickar 241 | Skiner 242 | Skiljer 243 | Skjuter 244 | Ska 245 | Skrattar 246 | Skriker 247 | Skriver 248 | Skryter 249 | Skyndar 250 | Skär 251 | Sköter 252 | Slickar 253 | Slipper 254 | Sliter 255 | Slår 256 | Slåss 257 | Släcker 258 | Slänger 259 | Släpper 260 | Smakar 261 | Smyger 262 | Smälter 263 | Smörjer 264 | Snickrar 265 | Snyter 266 | Snöar 267 | Sopar 268 | Sorterar 269 | Sover 270 | Sparar 271 | Spelar 272 | Spricker 273 | Sprider 274 | Springer 275 | Stannar 276 | Steker 277 | Sticker 278 | Stiger 279 | Stjäl 280 | Stoppar 281 | Strider 282 | Stryker 283 | Strör 284 | Studerar 285 | Står 286 | Städar 287 | Ställer 288 | Stänger 289 | Stödjer 290 | Stör 291 | Suckar 292 | Super 293 | Svettas 294 | Svider 295 | Sviker 296 | Sväljer 297 | Svälter 298 | Svär 299 | Syr 300 | Säger 301 | Säljer 302 | Sätter 303 | Söker 304 | Tackar 305 | Tar 306 | Tiger 307 | Tillverkar 308 | Tjänar 309 | Torkar 310 | Trampar 311 | Trivs 312 | Tror 313 | Trycker 314 | Träffar 315 | Tröttnar 316 | Tvingar 317 | Tvättar 318 | Tyder 319 | Tål 320 | Tältar 321 | Tänker 322 | Töar 323 | Törs 324 | Undersöker 325 | Undervisar 326 | Undrar 327 | Upplever 328 | Upptäcker 329 | Vaknar 330 | Varar 331 | Är 332 | Vattnar 333 | Verkar 334 | Vet 335 | Viker 336 | Vilar 337 | Vill 338 | Viner 339 | Vinner 340 | Visar 341 | Vispar 342 | Vrider 343 | Vågar 344 | Väcker 345 | Väljer 346 | Vänjer 347 | Väntar 348 | Värker 349 | Växer 350 | Växlar 351 | Åker 352 | Ångrar 353 | Åtalar 354 | Återkallar 355 | Återkommer 356 | Återvinner 357 | Återvänder 358 | Åtgärdar 359 | Åskar 360 | Äger 361 | Älskar 362 | Ämnar 363 | Ändrar 364 | Ärver 365 | Äter 366 | Äventyrar 367 | Önskar 368 | Öppnar 369 | Övar 370 | Överraskar 371 | Övertalar 372 | Överträffar 373 | Övertygar 374 | Översätter 375 | Övervakar 376 | Övervinner 377 | Överväger 378 | -------------------------------------------------------------------------------- /customData/customData.ps1: -------------------------------------------------------------------------------- 1 | @{ 2 | Region = Write-Output North East South West 3 | 4 | Food = Write-Output Pizza Pancakes Chinese 5 | 6 | Fruit = Write-Output lemon lime peach apple banana 7 | 8 | Response = Write-Output Yes No Maybe "Not Sure" 9 | 10 | Ingredients = Write-Output Flour Sugar Salt Milk Eggs Butter 11 | 12 | Month = 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' 13 | 14 | USCapital = Write-Output Montgomery Juneau Phoenix Little Rock Sacramento Denver Hartford Dover Washington Tallahassee Atlanta Honolulu Boise Springfield Indianapolis Des Moines Topeka Frankfort Baton Rouge Augusta Annapolis Boston Lansing Saint Paul Jackson Jefferson City Helena Lincoln Carson City Concord Trenton Santa Fe Albany Raleigh Bismarck Columbus Oklahoma City Salem Harrisburg Providence Columbia Pierre Nashville Austin Salt Lake City Montpelier Richmond Olympia Charleston Madison Cheyenne 15 | 16 | President = Write-Output "George Washington", "John Adams", "Thomas Jefferson", "James Madison", "James Monroe", "John Quincy AdamsAndrew Jackson", "Martin Van Buren", "William Henry Harrison", "John Tyler", "James K. Polk", "Zachary Taylor", "Millard Fillmore", "Franklin Pierce", "James Buchanan", "Abraham Lincoln", "Andrew Johnson", "Ulysses S. Grant", "Rutherford B. Hayes", "James A. Garfield", "Chester Arthur", "Grover Cleveland", "Benjamin Harrison", "Grover Cleveland", "William McKinley", "Theodore Roosevelt", "William Howard Taft", "Woodrow Wilson", "Warren G. Harding", "Calvin Coolidge", "Herbert Hoover", "Franklin D. Roosevelt", "Harry S. Truman", "Dwight D. Eisenhower", "John F. Kennedy", "Lyndon B. Johnson", "Richard Nixon", "Gerald Ford", "Jimmy Carter", "Ronald Reagan", "George Bush", "Bill Clinton", "George W. Bush", "Barack Obama" 17 | 18 | # Louise Hay affirmations 19 | affirmation = $( 20 | "Life loves me!" 21 | "All is well in my world. Everything is working out for my highest good. Out of this situation only good will come. I am safe!" 22 | "It’s only a thought, and a thought can be changed." 23 | "The point of power is always in the present moment." 24 | "Every thought we think is creating our future." 25 | "I am in the process of positive change." 26 | "I am comfortable looking in the mirror, saying, 'I love you, I really love you.'" 27 | "It is safe to look within." 28 | "I forgive myself and set myself free." 29 | "As I say yes to life, life says yes to me." 30 | "I now go beyond other people’s fears and limitations." 31 | "I am Divinely guided and protected at all times." 32 | "I claim my power and move beyond all limitations." 33 | "I trust the process of life." 34 | "I am deeply fulfilled by all that I do." 35 | "We are all family, and the planet is our home." 36 | "As I forgive myself, it becomes easier to forgive others." 37 | "I am willing to let go." 38 | "Deep at the center of my being is an infinite well of love." 39 | "I prosper wherever I turn." 40 | "I welcome miracles into my life." 41 | "Whatever I need to know is revealed to me at exactly the right time." 42 | "I am loved, and I am at peace." 43 | "My happy thoughts help create my healthy body." 44 | "Life supports me in every possible way." 45 | "My day begins and ends with gratitude." 46 | "I listen with love to my body’s messages." 47 | "The past is over." 48 | "Only good can come to me." 49 | "I am beautiful, and everybody loves me." 50 | "Everyone I encounter today has my best interests at heart." 51 | "I always work with and for wonderful people. I love my job." 52 | "Filling my mind with pleasant thoughts is the quickest road to health." 53 | "I am healthy, whole, and complete." 54 | "I am at home in my body." 55 | "I devote a portion of my time to helping others. It is good for my own health." 56 | "I am greeted by love wherever I go." 57 | "Wellness is the natural state of my body. I am in perfect health." 58 | "I am pain free and totally in sync with life." 59 | "I am very thankful for all the love in my life. I find it everywhere." 60 | "I know that old, negative patterns no longer limit me. I let them go with ease." 61 | "In the infinity of life where I am, all is perfect, whole, and complete." 62 | "I trust my intuition. I am willing to listen to that still, small voice within." 63 | "I am willing to ask for help when I need it." 64 | "I forgive myself for not being perfect." 65 | "I honor who I am." 66 | "I attract only healthy relationships. I am always treated well." 67 | "I do not have to prove myself to anyone." 68 | "I come from the loving space of my heart, and I know that love opens all doors." 69 | "I am in harmony with nature." 70 | "I welcome new ideas." 71 | "Today, no person, place, or thing can irritate or annoy me. I choose to be at peace." 72 | "I am safe in the Universe and All Life loves and supports me." 73 | "I experience love wherever I go." 74 | "I am willing to change." 75 | "I drink lots of water to cleanse my body and mind." 76 | "I choose to see clearly with the eyes of love." 77 | "I cross all bridges with joy and ease." 78 | "I release all drama from my life." 79 | "Loving others is easy when I love and accept myself." 80 | "I balance my life between work, rest, and play." 81 | "I return to the basics of life: forgiveness, courage, gratitude, love, and humor." 82 | "I am in charge, I now take my own power back." 83 | "My body appreciates how I take care of it." 84 | "I spend time with positive, energetic people." 85 | "The more peaceful I am inside, the more peace I have to share with others." 86 | "Today is a sacred gift from Life." 87 | "I have the courage to live my dreams." 88 | "I release all negative thoughts of the past and all worries about the future." 89 | "I forgive everyone in my past for all perceived wrongs. I release them with love." 90 | "I only speak positively about those in my world. Negativity has no part in my life." 91 | "We are all eternal spirit." 92 | "I act as if I already have what I want - it's an excellent way to attract happiness in my life." 93 | "I enjoy the foods that are best for my body." 94 | "My life gets better all the time." 95 | "It is safe for me to speak up for myself." 96 | "I live in the paradise of my own creation." 97 | "Perfect health is my Divine right, and I claim it now." 98 | "I release all criticism." 99 | "I am on an ever-changing journey." 100 | "I am grateful for my healthy body. I love life." 101 | "Love flows through my body, healing all dis-ease." 102 | "My income is constantly increasing." 103 | "My healing is already in process." 104 | "There is always more to learn." 105 | "I now live in limitless love, light, and joy." 106 | "I become more lovable every day." 107 | "It is now safe for me to release all of my childhood traumas and move into love." 108 | "I deserve all that is good." 109 | "I am constantly discovering new ways to improve my health." 110 | "Love is all there is!" 111 | "My life gets more fabulous every day." 112 | "Today I am at peace." 113 | "Loving others is easy when I love and accept myself." 114 | "I have the perfect living space." 115 | "I have compassion for all." 116 | "I trust the Universe to help me see the good in everything and in everyone." 117 | "I love my family members just as they are. I do not try to change anyone." 118 | "There is plenty for everyone, and we bless and prosper each other." 119 | "I love and approve of myself." 120 | "Life is good, and so it is!" 121 | ) 122 | } -------------------------------------------------------------------------------- /demo.txt: -------------------------------------------------------------------------------- 1 | # name it 2 | Import-Module NameIT 3 | 4 | Invoke-Generate 5 | Invoke-Generate -c 5 6 | Invoke-Generate -c 5 "?#" 7 | Invoke-Generate -c 5 "[alpha][numeric]" 8 | Invoke-Generate -c 5 "[alpha 3][numeric 3]" 9 | Invoke-Generate -c 5 "[alpha 3][numeric 3]" -alphabet abcxyz -number 159 10 | Invoke-Generate "cafe###" -count 3 11 | Invoke-Generate "cafe[numeric 3]" -count 3 12 | Invoke-Generate "cafe_[syllable][syllable]" -count 3 13 | Invoke-Generate "[synonym cafe]_[syllable][syllable]" -count 5 14 | Invoke-Generate "[person]" -count 3 15 | Invoke-Generate "[person female]" -count 5 16 | Invoke-Generate "[person male]" -count 5 17 | 18 | Invoke-Generate "[guid]" 19 | Invoke-Generate "[guid 0]" 20 | Invoke-Generate "[guid 1]" 21 | Invoke-Generate "[guid 2]" 22 | Invoke-Generate "[guid 3]" 23 | Invoke-Generate "[guid 4]" 24 | -------------------------------------------------------------------------------- /demo/demo.txt: -------------------------------------------------------------------------------- 1 | # Find-Module NameIT 2 | # Find-Module NameIT | Install-Module 3 | '' 4 | Invoke-Generate 5 | Invoke-Generate -Count 3 6 | Invoke-Generate "?#" -Count 3 7 | Invoke-Generate "[alpha][numeric]" -Count 3 8 | Invoke-Generate "cafe###" -Count 3 9 | Invoke-Generate "cafe[numeric 3]" -Count 3 10 | Invoke-Generate "cafe_[syllable][syllable]" -Count 3 11 | 12 | # synonym 13 | Invoke-Generate "[synonym cafe]_[syllable][syllable]" -Count 3 14 | 15 | # adjective/noun 16 | Invoke-Generate "[adjective][noun]" -Count 3 17 | 18 | # VMs [Docker continer names] 19 | Invoke-Generate "VM_[adjective][noun]" -Count 3 20 | 21 | # PowerShell cmdlets 22 | Invoke-Generate "[cmdlet]" -Count 3 23 | Invoke-Generate "[cmdlet]" -Count 3 -ApprovedVerb 24 | 25 | # People 26 | Invoke-Generate "See [person][space][adjective][space][noun][space][verb]" -Count 3 27 | Invoke-Generate "See [person female]" -Count 3 28 | Invoke-Generate "See [person male]" -Count 3 29 | 30 | # Custom Data 31 | $data=@{} 32 | $data+=@{Region=echo North East South West} 33 | $data+=@{Food=echo Pizza Pancakes Sliders Steak Fish} 34 | $data+=@{Fruit=echo lemon lime peach apple banana} 35 | 36 | $data 37 | 38 | Invoke-Generate -Custom $data -Count 3 "[Food]" 39 | Invoke-Generate -Custom $data -Count 3 "[Fruit]" 40 | 41 | Invoke-Generate -Custom $data -Count 3 "[Region],[Fruit]" 42 | 43 | # Templates 44 | $Template="Region=[Region]`nFruit=[Fruit]" 45 | Invoke-Generate -Custom $data -Count 3 -Template $Template 46 | 47 | # PowerShell Objects 48 | $result=Invoke-Generate -Custom $data -Count 3 -Template $Template -AsPSObject 49 | $result 50 | $result.GetType() 51 | 52 | # 53 | $Template="Region=[Region]`nState=[State]`nFruit=[Fruit]" 54 | Invoke-Generate -Custom $data -Count 10 -Template $Template -AsPSObject 55 | 56 | # Play to the PS ecosystem 57 | $result=Invoke-Generate -Custom $data -Count 10 -Template $Template -AsPSObject 58 | $result|Export-Excel -Now -------------------------------------------------------------------------------- /demo/start-demo.ps1: -------------------------------------------------------------------------------- 1 | ## Start-Demo.ps1 2 | ################################################################################################## 3 | ## This is an overhaul of Jeffrey Snover's original Start-Demo script by Joel "Jaykul" Bennett 4 | ## 5 | ## I've switched it to using ReadKey instead of ReadLine (you don't have to hit Enter each time) 6 | ## As a result, I've changed the names and keys for a lot of the operations, so that they make 7 | ## sense with only a single letter to tell them apart (sorry if you had them memorized). 8 | ## 9 | ## I've also been adding features as I come across needs for them, and you'll contribute your 10 | ## improvements back to the PowerShell Script repository as well. 11 | ################################################################################################## 12 | ## Revision History (version 3.3) 13 | ## 3.3.3 Fixed: Script no longer says "unrecognized key" when you hit shift or ctrl, etc. 14 | ## Fixed: Blank lines in script were showing as errors (now printed like comments) 15 | ## 3.3.2 Fixed: Changed the "x" to match the "a" in the help text 16 | ## 3.3.1 Fixed: Added a missing bracket in the script 17 | ## 3.3 - Added: Added a "Clear Screen" option 18 | ## - Added: Added a "Rewind" function (which I'm not using much) 19 | ## 3.2 - Fixed: Put back the trap { continue; } 20 | ## 3.1 - Fixed: No Output when invoking Get-Member (and other cmdlets like it???) 21 | ## 3.0 - Fixed: Commands which set a variable, like: $files = ls 22 | ## - Fixed: Default action doesn't continue 23 | ## - Changed: Use ReadKey instead of ReadLine 24 | ## - Changed: Modified the option prompts (sorry if you had them memorized) 25 | ## - Changed: Various time and duration strings have better formatting 26 | ## - Enhance: Colors are settable: prompt, command, comment 27 | ## - Added: NoPauseAfterExecute switch removes the extra pause 28 | ## If you set this, the next command will be displayed immediately 29 | ## - Added: Auto Execute mode (FullAuto switch) runs the rest of the script 30 | ## at an automatic speed set by the AutoSpeed parameter (or manually) 31 | ## - Added: Automatically append an empty line to the end of the demo script 32 | ## so you have a chance to "go back" after the last line of you demo 33 | ################################################################################################## 34 | ## 35 | param( 36 | $file=".\demo.txt", 37 | [int]$command=0, 38 | [System.ConsoleColor]$promptColor="Yellow", 39 | [System.ConsoleColor]$commandColor="White", 40 | [System.ConsoleColor]$commentColor="Green", 41 | [switch]$FullAuto, 42 | [int]$AutoSpeed = 3, 43 | [switch]$NoPauseAfterExecute 44 | ) 45 | 46 | $RawUI = $Host.UI.RawUI 47 | $hostWidth = $RawUI.BufferSize.Width 48 | 49 | # A function for reading in a character 50 | function Read-Char() { 51 | $_OldColor = $RawUI.ForeGroundColor 52 | $RawUI.ForeGroundColor = "Red" 53 | $inChar=$RawUI.ReadKey("IncludeKeyUp") 54 | # loop until they press a character, so Shift or Ctrl, etc don't terminate us 55 | while($inChar.Character -eq 0){ 56 | $inChar=$RawUI.ReadKey("IncludeKeyUp") 57 | } 58 | $RawUI.ForeGroundColor = $_OldColor 59 | return $inChar.Character 60 | } 61 | 62 | function Rewind($lines, $index, $steps = 1) { 63 | $started = $index; 64 | $index -= $steps; 65 | while(($index -ge 0) -and ($lines[$index].Trim(" `t").StartsWith("#"))){ 66 | $index-- 67 | } 68 | if( $index -lt 0 ) { $index = $started } 69 | return $index 70 | } 71 | 72 | $file = Resolve-Path $file 73 | while(-not(Test-Path $file)) { 74 | $file = Read-Host "Please enter the path of your demo script (Crtl+C to cancel)" 75 | $file = Resolve-Path $file 76 | } 77 | 78 | Clear-Host 79 | 80 | $_lines = Get-Content $file 81 | # Append an extra (do nothing) line on the end so we can still go back after the last line. 82 | $_lines += "Write-Host 'The End'" 83 | $_starttime = [DateTime]::now 84 | $FullAuto = $false 85 | 86 | Write-Host -nonew -back black -fore $promptColor $(" " * $hostWidth) 87 | Write-Host -nonew -back black -fore $promptColor @" 88 | $(' ' * ($hostWidth -(18 + $(split-path $file -leaf).Length))) 89 | "@ 90 | Write-Host -nonew -back black -fore $promptColor "Press" 91 | Write-Host -nonew -back black -fore Red " ? " 92 | Write-Host -nonew -back black -fore $promptColor "for help.$(' ' * ($hostWidth -17))" 93 | Write-Host -nonew -back black -fore $promptColor $(" " * $hostWidth) 94 | 95 | # We use a FOR and an INDEX ($_i) instead of a FOREACH because 96 | # it is possible to start at a different location and/or jump 97 | # around in the order. 98 | for ($_i = $Command; $_i -lt $_lines.count; $_i++) 99 | { 100 | # Put the current command in the Window Title along with the demo duration 101 | $Dur = [DateTime]::Now - $_StartTime 102 | $RawUI.WindowTitle = "$(if($dur.Hours -gt 0){'{0}h '})$(if($dur.Minutes -gt 0){'{1}m '}){2}s {3}" -f 103 | $dur.Hours, $dur.Minutes, $dur.Seconds, $($_Lines[$_i]) 104 | 105 | # Echo out the commmand to the console with a prompt as though it were real 106 | Write-Host -nonew -fore $promptColor "[$_i]$([char]0x2265) " 107 | if ($_lines[$_i].Trim(" ").StartsWith("#") -or $_lines[$_i].Trim(" ").Length -le 0) { 108 | Write-Host -fore $commentColor "$($_Lines[$_i]) " 109 | continue 110 | } else { 111 | Write-Host -nonew -fore $commandColor "$($_Lines[$_i]) " 112 | } 113 | 114 | if( $FullAuto ) { Start-Sleep $autoSpeed; $ch = [char]13 } else { $ch = Read-Char } 115 | switch($ch) 116 | { 117 | "?" { 118 | Write-Host -Fore $promptColor @" 119 | 120 | Running demo: $file 121 | (n) Next (p) Previous 122 | (q) Quit (s) Suspend 123 | (t) Timecheck (v) View $(split-path $file -leaf) 124 | (g) Go to line by number 125 | (f) Find lines by string 126 | (a) Auto Execute mode 127 | (c) Clear Screen 128 | "@ 129 | $_i-- # back a line, we're gonna step forward when we loop 130 | } 131 | "n" { # Next (do nothing) 132 | Write-Host -Fore $promptColor "" 133 | } 134 | "p" { # Previous 135 | Write-Host -Fore $promptColor "" 136 | while ($_lines[--$_i].Trim(" ").StartsWith("#")){} 137 | $_i-- # back a line, we're gonna step forward when we loop 138 | } 139 | "a" { # EXECUTE (Go Faster) 140 | $AutoSpeed = [int](Read-Host "Pause (seconds)") 141 | $FullAuto = $true; 142 | Write-Host -Fore $promptColor "" 143 | $_i-- # Repeat this line, and then just blow through the rest 144 | } 145 | "q" { # Quit 146 | Write-Host -Fore $promptColor "" 147 | $_i = $_lines.count; 148 | break; 149 | } 150 | "v" { # View Source 151 | $lines[0..($_i-1)] | Write-Host -Fore Yellow 152 | $lines[$_i] | Write-Host -Fore Green 153 | $lines[($_i+1)..$lines.Count] | Write-Host -Fore Yellow 154 | $_i-- # back a line, we're gonna step forward when we loop 155 | } 156 | "t" { # Time Check 157 | $dur = [DateTime]::Now - $_StartTime 158 | Write-Host -Fore $promptColor $( 159 | "{3} -- $(if($dur.Hours -gt 0){'{0}h '})$(if($dur.Minutes -gt 0){'{1}m '}){2}s" -f 160 | $dur.Hours, $dur.Minutes, $dur.Seconds, ([DateTime]::Now.ToShortTimeString())) 161 | $_i-- # back a line, we're gonna step forward when we loop 162 | } 163 | "s" { # Suspend (Enter Nested Prompt) 164 | Write-Host -Fore $promptColor "" 165 | $Host.EnterNestedPrompt() 166 | $_i-- # back a line, we're gonna step forward when we loop 167 | } 168 | "g" { # GoTo Line Number 169 | $i = [int](Read-Host "line number") 170 | if($i -le $_lines.Count) { 171 | if($i -gt 0) { 172 | # extra line back because we're gonna step forward when we loop 173 | $_i = Rewind $_lines $_i (($_i-$i)+1) 174 | } else { 175 | $_i = -1 # Start negative, because we step forward when we loop 176 | } 177 | } 178 | } 179 | "f" { # Find by pattern 180 | $match = $_lines | Select-String (Read-Host "search string") 181 | if($match -eq $null) { 182 | Write-Host -Fore Red "Can't find a matching line" 183 | } else { 184 | $match | % { Write-Host -Fore $promptColor $("[{0,2}] {1}" -f ($_.LineNumber - 1), $_.Line) } 185 | if($match.Count -lt 1) { 186 | $_i = $match.lineNumber - 2 # back a line, we're gonna step forward when we loop 187 | } else { 188 | $_i-- # back a line, we're gonna step forward when we loop 189 | } 190 | } 191 | } 192 | "c" { 193 | Clear-Host 194 | $_i-- # back a line, we're gonna step forward when we loop 195 | } 196 | "$([char]13)" { # on enter 197 | Write-Host 198 | trap [System.Exception] {Write-Error $_; continue;} 199 | Invoke-Expression ($_lines[$_i]) | out-default 200 | if(-not $NoPauseAfterExecute -and -not $FullAuto) { 201 | $null = $RawUI.ReadKey("NoEcho,IncludeKeyUp") # Pause after output for no apparent reason... ;) 202 | } 203 | } 204 | default 205 | { 206 | Write-Host -Fore Green "`nKey not recognized. Press ? for help, or ENTER to execute the command." 207 | $_i-- # back a line, we're gonna step forward when we loop 208 | } 209 | } 210 | } 211 | $dur = [DateTime]::Now - $_StartTime 212 | Write-Host -Fore $promptColor $( 213 | "" -f 214 | $dur.Hours, $dur.Minutes, $dur.Seconds, [DateTime]::Now.ToLongTimeString()) 215 | Write-Host -Fore $promptColor $([DateTime]::now) 216 | Write-Host -------------------------------------------------------------------------------- /images/MultipleLanguages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfinke/NameIT/77f80de874adc658ae767cae64a56ef085792afa/images/MultipleLanguages.png -------------------------------------------------------------------------------- /images/nameit.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfinke/NameIT/77f80de874adc658ae767cae64a56ef085792afa/images/nameit.gif -------------------------------------------------------------------------------- /images/nameitAddressVerbNounAdjective.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfinke/NameIT/77f80de874adc658ae767cae64a56ef085792afa/images/nameitAddressVerbNounAdjective.gif -------------------------------------------------------------------------------- /images/nameitConsoleTitle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfinke/NameIT/77f80de874adc658ae767cae64a56ef085792afa/images/nameitConsoleTitle.png -------------------------------------------------------------------------------- /start-demo.ps1: -------------------------------------------------------------------------------- 1 | ## Start-Demo.ps1 2 | ################################################################################################## 3 | ## This is an overhaul of Jeffrey Snover's original Start-Demo script by Joel "Jaykul" Bennett 4 | ## 5 | ## I've switched it to using ReadKey instead of ReadLine (you don't have to hit Enter each time) 6 | ## As a result, I've changed the names and keys for a lot of the operations, so that they make 7 | ## sense with only a single letter to tell them apart (sorry if you had them memorized). 8 | ## 9 | ## I've also been adding features as I come across needs for them, and you'll contribute your 10 | ## improvements back to the PowerShell Script repository as well. 11 | ################################################################################################## 12 | ## Revision History (version 3.3) 13 | ## 3.3.3 Fixed: Script no longer says "unrecognized key" when you hit shift or ctrl, etc. 14 | ## Fixed: Blank lines in script were showing as errors (now printed like comments) 15 | ## 3.3.2 Fixed: Changed the "x" to match the "a" in the help text 16 | ## 3.3.1 Fixed: Added a missing bracket in the script 17 | ## 3.3 - Added: Added a "Clear Screen" option 18 | ## - Added: Added a "Rewind" function (which I'm not using much) 19 | ## 3.2 - Fixed: Put back the trap { continue; } 20 | ## 3.1 - Fixed: No Output when invoking Get-Member (and other cmdlets like it???) 21 | ## 3.0 - Fixed: Commands which set a variable, like: $files = ls 22 | ## - Fixed: Default action doesn't continue 23 | ## - Changed: Use ReadKey instead of ReadLine 24 | ## - Changed: Modified the option prompts (sorry if you had them memorized) 25 | ## - Changed: Various time and duration strings have better formatting 26 | ## - Enhance: Colors are settable: prompt, command, comment 27 | ## - Added: NoPauseAfterExecute switch removes the extra pause 28 | ## If you set this, the next command will be displayed immediately 29 | ## - Added: Auto Execute mode (FullAuto switch) runs the rest of the script 30 | ## at an automatic speed set by the AutoSpeed parameter (or manually) 31 | ## - Added: Automatically append an empty line to the end of the demo script 32 | ## so you have a chance to "go back" after the last line of you demo 33 | ################################################################################################## 34 | ## 35 | param( 36 | $file=".\demo.txt", 37 | [int]$command=0, 38 | [System.ConsoleColor]$promptColor="Yellow", 39 | [System.ConsoleColor]$commandColor="White", 40 | [System.ConsoleColor]$commentColor="Green", 41 | [switch]$FullAuto, 42 | [int]$AutoSpeed = 3, 43 | [switch]$NoPauseAfterExecute 44 | ) 45 | 46 | $RawUI = $Host.UI.RawUI 47 | $hostWidth = $RawUI.BufferSize.Width 48 | 49 | # A function for reading in a character 50 | function Read-Char() { 51 | $_OldColor = $RawUI.ForeGroundColor 52 | $RawUI.ForeGroundColor = "Red" 53 | $inChar=$RawUI.ReadKey("IncludeKeyUp") 54 | # loop until they press a character, so Shift or Ctrl, etc don't terminate us 55 | while($inChar.Character -eq 0){ 56 | $inChar=$RawUI.ReadKey("IncludeKeyUp") 57 | } 58 | $RawUI.ForeGroundColor = $_OldColor 59 | return $inChar.Character 60 | } 61 | 62 | function Rewind($lines, $index, $steps = 1) { 63 | $started = $index; 64 | $index -= $steps; 65 | while(($index -ge 0) -and ($lines[$index].Trim(" `t").StartsWith("#"))){ 66 | $index-- 67 | } 68 | if( $index -lt 0 ) { $index = $started } 69 | return $index 70 | } 71 | 72 | $file = Resolve-Path $file 73 | while(-not(Test-Path $file)) { 74 | $file = Read-Host "Please enter the path of your demo script (Crtl+C to cancel)" 75 | $file = Resolve-Path $file 76 | } 77 | 78 | Clear-Host 79 | 80 | $_lines = Get-Content $file 81 | # Append an extra (do nothing) line on the end so we can still go back after the last line. 82 | $_lines += "Write-Host 'The End'" 83 | $_starttime = [DateTime]::now 84 | $FullAuto = $false 85 | 86 | Write-Host -nonew -back black -fore $promptColor $(" " * $hostWidth) 87 | Write-Host -nonew -back black -fore $promptColor @" 88 | $(' ' * ($hostWidth -(18 + $(split-path $file -leaf).Length))) 89 | "@ 90 | Write-Host -nonew -back black -fore $promptColor "Press" 91 | Write-Host -nonew -back black -fore Red " ? " 92 | Write-Host -nonew -back black -fore $promptColor "for help.$(' ' * ($hostWidth -17))" 93 | Write-Host -nonew -back black -fore $promptColor $(" " * $hostWidth) 94 | 95 | # We use a FOR and an INDEX ($_i) instead of a FOREACH because 96 | # it is possible to start at a different location and/or jump 97 | # around in the order. 98 | for ($_i = $Command; $_i -lt $_lines.count; $_i++) 99 | { 100 | # Put the current command in the Window Title along with the demo duration 101 | $Dur = [DateTime]::Now - $_StartTime 102 | $RawUI.WindowTitle = "$(if($dur.Hours -gt 0){'{0}h '})$(if($dur.Minutes -gt 0){'{1}m '}){2}s {3}" -f 103 | $dur.Hours, $dur.Minutes, $dur.Seconds, $($_Lines[$_i]) 104 | 105 | # Echo out the commmand to the console with a prompt as though it were real 106 | Write-Host -nonew -fore $promptColor "[$_i]$([char]0x2265) " 107 | if ($_lines[$_i].Trim(" ").StartsWith("#") -or $_lines[$_i].Trim(" ").Length -le 0) { 108 | Write-Host -fore $commentColor "$($_Lines[$_i]) " 109 | continue 110 | } else { 111 | Write-Host -nonew -fore $commandColor "$($_Lines[$_i]) " 112 | } 113 | 114 | if( $FullAuto ) { Start-Sleep $autoSpeed; $ch = [char]13 } else { $ch = Read-Char } 115 | switch($ch) 116 | { 117 | "?" { 118 | Write-Host -Fore $promptColor @" 119 | 120 | Running demo: $file 121 | (n) Next (p) Previous 122 | (q) Quit (s) Suspend 123 | (t) Timecheck (v) View $(split-path $file -leaf) 124 | (g) Go to line by number 125 | (f) Find lines by string 126 | (a) Auto Execute mode 127 | (c) Clear Screen 128 | "@ 129 | $_i-- # back a line, we're gonna step forward when we loop 130 | } 131 | "n" { # Next (do nothing) 132 | Write-Host -Fore $promptColor "" 133 | } 134 | "p" { # Previous 135 | Write-Host -Fore $promptColor "" 136 | while ($_lines[--$_i].Trim(" ").StartsWith("#")){} 137 | $_i-- # back a line, we're gonna step forward when we loop 138 | } 139 | "a" { # EXECUTE (Go Faster) 140 | $AutoSpeed = [int](Read-Host "Pause (seconds)") 141 | $FullAuto = $true; 142 | Write-Host -Fore $promptColor "" 143 | $_i-- # Repeat this line, and then just blow through the rest 144 | } 145 | "q" { # Quit 146 | Write-Host -Fore $promptColor "" 147 | $_i = $_lines.count; 148 | break; 149 | } 150 | "v" { # View Source 151 | $lines[0..($_i-1)] | Write-Host -Fore Yellow 152 | $lines[$_i] | Write-Host -Fore Green 153 | $lines[($_i+1)..$lines.Count] | Write-Host -Fore Yellow 154 | $_i-- # back a line, we're gonna step forward when we loop 155 | } 156 | "t" { # Time Check 157 | $dur = [DateTime]::Now - $_StartTime 158 | Write-Host -Fore $promptColor $( 159 | "{3} -- $(if($dur.Hours -gt 0){'{0}h '})$(if($dur.Minutes -gt 0){'{1}m '}){2}s" -f 160 | $dur.Hours, $dur.Minutes, $dur.Seconds, ([DateTime]::Now.ToShortTimeString())) 161 | $_i-- # back a line, we're gonna step forward when we loop 162 | } 163 | "s" { # Suspend (Enter Nested Prompt) 164 | Write-Host -Fore $promptColor "" 165 | $Host.EnterNestedPrompt() 166 | $_i-- # back a line, we're gonna step forward when we loop 167 | } 168 | "g" { # GoTo Line Number 169 | $i = [int](Read-Host "line number") 170 | if($i -le $_lines.Count) { 171 | if($i -gt 0) { 172 | # extra line back because we're gonna step forward when we loop 173 | $_i = Rewind $_lines $_i (($_i-$i)+1) 174 | } else { 175 | $_i = -1 # Start negative, because we step forward when we loop 176 | } 177 | } 178 | } 179 | "f" { # Find by pattern 180 | $match = $_lines | Select-String (Read-Host "search string") 181 | if($match -eq $null) { 182 | Write-Host -Fore Red "Can't find a matching line" 183 | } else { 184 | $match | % { Write-Host -Fore $promptColor $("[{0,2}] {1}" -f ($_.LineNumber - 1), $_.Line) } 185 | if($match.Count -lt 1) { 186 | $_i = $match.lineNumber - 2 # back a line, we're gonna step forward when we loop 187 | } else { 188 | $_i-- # back a line, we're gonna step forward when we loop 189 | } 190 | } 191 | } 192 | "c" { 193 | Clear-Host 194 | $_i-- # back a line, we're gonna step forward when we loop 195 | } 196 | "$([char]13)" { # on enter 197 | Write-Host 198 | trap [System.Exception] {Write-Error $_; continue;} 199 | Invoke-Expression ($_lines[$_i]) | out-default 200 | if(-not $NoPauseAfterExecute -and -not $FullAuto) { 201 | $null = $RawUI.ReadKey("NoEcho,IncludeKeyUp") # Pause after output for no apparent reason... ;) 202 | } 203 | } 204 | default 205 | { 206 | Write-Host -Fore Green "`nKey not recognized. Press ? for help, or ENTER to execute the command." 207 | $_i-- # back a line, we're gonna step forward when we loop 208 | } 209 | } 210 | } 211 | $dur = [DateTime]::Now - $_StartTime 212 | Write-Host -Fore $promptColor $( 213 | "" -f 214 | $dur.Hours, $dur.Minutes, $dur.Seconds, [DateTime]::Now.ToLongTimeString()) 215 | Write-Host -Fore $promptColor $([DateTime]::now) 216 | Write-Host -------------------------------------------------------------------------------- /test.txt: -------------------------------------------------------------------------------- 1 | editing this from my Android using GitHub.dev --------------------------------------------------------------------------------