├── .cursor └── rules │ ├── gogen-api.mdc │ ├── ui-api.mdc │ ├── ui-component.mdc │ ├── ui-general.mdc │ ├── ui-styling.mdc │ └── ui-testing.mdc ├── .gitattributes ├── .gitconfig ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── Dockerfile ├── Makefile ├── README.md ├── README ├── Demoscript.md ├── Examples.md ├── Perf.md ├── Reference.md ├── TODO.md └── Tutorial.md ├── RELEASE_NOTES.md ├── VERSION ├── build └── .gitignore ├── docker-push.sh ├── entrypoint.sh ├── examples ├── common │ ├── every.yml │ ├── external_ips.sample │ ├── useragents.sample │ ├── webhosts.csv │ └── weblog.yml ├── csv │ ├── csv.yml │ ├── markets.csv │ └── usernames.sample ├── eventrating │ └── alwaysup.yml ├── generator │ ├── users.lua │ └── users.yml ├── nixOS │ ├── allhosts.csv │ ├── bandwidth.lua │ ├── bandwidth.yml │ ├── cpu.lua │ ├── cpu.yml │ ├── df.lua │ ├── df.yml │ ├── disks.csv │ ├── iostat.lua │ ├── iostat.yml │ ├── nix.yml │ ├── procs.csv │ ├── vmstat.lua │ └── vmstat.yml ├── tutorial │ ├── results.csv │ ├── tutorial1.yml │ ├── tutorial2.yml │ ├── tutorial3 │ │ ├── raters │ │ │ └── eventrater.yml │ │ └── samples │ │ │ ├── markets.csv │ │ │ ├── tutorial3.yml │ │ │ └── usernames.sample │ ├── tutorial4.yml │ ├── tutorial5.yml │ └── tutorial6.yml ├── weblog-regex │ └── weblog-regex.yml └── weblog │ └── weblog.yml ├── generator ├── generator.go ├── generator_test.go ├── lua.go ├── lua_test.go ├── primerater.go ├── primerater_test.go ├── sample.go └── sample_test.go ├── go.mod ├── go.sum ├── gogen-api ├── Dockerfile ├── README.md ├── api │ ├── cors_utils.py │ ├── db_utils.py │ ├── get.py │ ├── list.py │ ├── logger.py │ ├── s3_utils.py │ ├── search.py │ └── upsert.py ├── backup_restore.py ├── create_local_table.py ├── deploy_lambdas.sh ├── docker-compose.yml ├── get_schema.py ├── iam_policy.json ├── requirements.txt ├── setup_local_db.sh ├── start_dev.sh ├── stop_dev.sh ├── swagger.yml ├── table_schema.json ├── template.yaml ├── test_dynamodb.py └── test_s3.py ├── internal ├── cache.go ├── config.go ├── config_test.go ├── defaults.go ├── generator.go ├── generator_test.go ├── github.go ├── github_test.go ├── gogen.go ├── gogen_test.go ├── mix.go ├── mix_test.go ├── outputter.go ├── outputter_test.go ├── rater.go ├── rater_test.go ├── sample.go ├── sample_test.go ├── share.go ├── share_test.go └── template.go ├── llmcontext ├── bundle_examples.py ├── gogen_examples_bundle.json ├── requirements.txt └── setup_venv.sh ├── logger ├── logger.go └── logger_test.go ├── main.go ├── outputter ├── buf.go ├── devnull.go ├── file.go ├── http.go ├── kafka.go ├── network.go ├── outputter.go ├── outputter_test.go └── stdout.go ├── rater ├── config.go ├── config_test.go ├── default.go ├── default_test.go ├── kbps.go ├── kbps_test.go ├── rater.go ├── rater_test.go ├── script.go └── script_test.go ├── run ├── run.go ├── runOnce.go └── runonce_test.go ├── setup_venv.sh ├── template ├── template.go └── template_test.go ├── tests ├── concat_test.go ├── copy_test.go ├── devnull_test.go ├── file_test.go ├── fileoutput │ └── fileoutput.yml ├── flatten │ └── flatten.yml ├── generator │ ├── generator.lua │ ├── generator.yml │ ├── generatorFile.yml │ ├── luaapi.yml │ ├── realGenerator.yml │ └── realgen.lua ├── http_test.go ├── mix │ ├── mix1.yml │ ├── mix2.yml │ ├── sample1.yml │ ├── sample2.yml │ └── sample3.yml ├── network_test.go ├── outputcache_test.go ├── perf │ ├── weblog-splunk.yml │ └── weblog.yml ├── push_test.go ├── rater │ ├── configrater.yml │ ├── defaultconfigrater.yml │ ├── defaultrater.yml │ ├── fullraterconfig.yml │ ├── kbpsrater.yml │ └── luarater.yml ├── replay │ ├── bad-epoch-timestamp.yml │ ├── bad-go-timestamp.yml │ ├── bad-strptime-timestamp.yml │ ├── no-offsets-found.yml │ └── replay5.yml ├── replay_test.go ├── scripttokenrater_test.go ├── singlepass │ ├── missed-regex.yml │ ├── overlapping-regex.yml │ ├── test1.yml │ └── wide-regex.yml ├── stdout_test.go ├── strftime_test.go ├── testfuncs.go ├── testfuncs_test.go ├── timer │ ├── backfill.yml │ ├── backfillfutureend.yml │ ├── backfillrealtime.yml │ ├── cachetimer.yml │ └── realtimereplay.yml ├── tokens │ ├── lua.yml │ ├── token-regex.yml │ ├── token-static.yml │ ├── tokens-find.yml │ └── tokens.yml ├── transliterator │ ├── default │ │ └── eventgen.conf │ └── samples │ │ ├── apache_purchase_fail.sample │ │ ├── artIDs.sample │ │ ├── autoBillPayment.sample │ │ ├── categories.sample │ │ ├── customer_master_small.sample │ │ ├── dbhosts.sample │ │ ├── dbnoise.sample │ │ ├── dbnoise_fail.sample │ │ ├── external_ips.sample │ │ ├── internal_ips.sample │ │ ├── items.sample │ │ ├── markets.sample │ │ ├── orderType.sample │ │ ├── phones.sample │ │ ├── plans.sample │ │ ├── products.sample │ │ ├── purchase_failure_mysql.sample │ │ ├── purchase_failure_was.sample │ │ ├── radPIDs.sample │ │ ├── radhosts.sample │ │ ├── sample.businessevent │ │ ├── sample.mobilemusic.csv │ │ ├── sample.mobilemusicfailure.csv │ │ ├── sample.mobilemusicfailuresearch.csv │ │ ├── searchArtists.sample │ │ ├── shoppingactions.sample │ │ ├── shoppingapache.sample │ │ ├── trackIDs.sample │ │ ├── uris.sample │ │ ├── userName.sample │ │ ├── useragents.sample │ │ ├── webhosts.sample │ │ └── webserverstatus.sample └── validation │ ├── validate-badrandom.yml │ ├── validate-choice-items.yml │ ├── validate-earliest-latest.yml │ ├── validate-fieldchoice-badfield.yml │ ├── validate-fieldchoice-items.yml │ ├── validate-lower-upper.yml │ ├── validate-nolines.yml │ ├── validate-string-length.yml │ ├── validate-upper.yml │ └── validate-weightedchoice-items.yml ├── timer ├── timer.go └── timer_test.go ├── transliterator.py ├── ui ├── .env ├── .env.development ├── .env.production ├── .env.staging ├── README.md ├── REQUIREMENTS.md ├── SUMMARY.md ├── deploy_ui.sh ├── gogen-api-spec.yaml ├── index.html ├── jest.config.ts ├── package-lock.json ├── package.json ├── postcss.config.js ├── public │ ├── favicon.svg │ └── wasm_exec.js ├── src │ ├── App.test.tsx │ ├── App.tsx │ ├── api │ │ ├── __mocks__ │ │ │ └── api.ts │ │ ├── gogenApi.test.ts │ │ ├── gogenApi.ts │ │ ├── gogenWasm.test.ts │ │ └── gogenWasm.ts │ ├── components │ │ ├── ConfigurationList.test.tsx │ │ ├── ConfigurationList.tsx │ │ ├── ExecutionComponent.test.tsx │ │ ├── ExecutionComponent.tsx │ │ ├── Footer.test.tsx │ │ ├── Footer.tsx │ │ ├── Header.test.tsx │ │ ├── Header.tsx │ │ ├── Hero.test.tsx │ │ ├── Hero.tsx │ │ ├── Layout.test.tsx │ │ ├── Layout.tsx │ │ ├── LoadingSpinner.test.tsx │ │ └── LoadingSpinner.tsx │ ├── config.ts │ ├── index.css │ ├── main.tsx │ ├── pages │ │ ├── ConfigurationDetailPage.test.tsx │ │ ├── ConfigurationDetailPage.tsx │ │ ├── HomePage.test.tsx │ │ ├── HomePage.tsx │ │ ├── NotFoundPage.test.tsx │ │ └── NotFoundPage.tsx │ ├── setupTests.ts │ ├── utils │ │ └── test-utils.tsx │ └── vite-env.d.ts ├── tailwind.config.js ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts ├── vendor ├── github.com │ ├── cactus │ │ └── gostrftime │ │ │ ├── .gitignore │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ └── gostrftime.go │ ├── coccyx │ │ └── timeparser │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── README.md │ │ │ └── timeparser.go │ ├── davecgh │ │ └── go-spew │ │ │ ├── LICENSE │ │ │ └── spew │ │ │ ├── bypass.go │ │ │ ├── bypasssafe.go │ │ │ ├── common.go │ │ │ ├── config.go │ │ │ ├── doc.go │ │ │ ├── dump.go │ │ │ ├── format.go │ │ │ └── spew.go │ ├── felixge │ │ └── fgprof │ │ │ ├── BenchmarkProfilerGoroutines.txt │ │ │ ├── LICENSE.txt │ │ │ ├── README.md │ │ │ ├── fgprof.go │ │ │ └── handler.go │ ├── google │ │ ├── go-github │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ └── github │ │ │ │ ├── activity.go │ │ │ │ ├── activity_events.go │ │ │ │ ├── activity_notifications.go │ │ │ │ ├── activity_star.go │ │ │ │ ├── activity_watching.go │ │ │ │ ├── admin.go │ │ │ │ ├── admin_stats.go │ │ │ │ ├── apps.go │ │ │ │ ├── apps_installation.go │ │ │ │ ├── apps_marketplace.go │ │ │ │ ├── authorizations.go │ │ │ │ ├── checks.go │ │ │ │ ├── doc.go │ │ │ │ ├── event_types.go │ │ │ │ ├── gists.go │ │ │ │ ├── gists_comments.go │ │ │ │ ├── git.go │ │ │ │ ├── git_blobs.go │ │ │ │ ├── git_commits.go │ │ │ │ ├── git_refs.go │ │ │ │ ├── git_tags.go │ │ │ │ ├── git_trees.go │ │ │ │ ├── github-accessors.go │ │ │ │ ├── github.go │ │ │ │ ├── gitignore.go │ │ │ │ ├── issues.go │ │ │ │ ├── issues_assignees.go │ │ │ │ ├── issues_comments.go │ │ │ │ ├── issues_events.go │ │ │ │ ├── issues_labels.go │ │ │ │ ├── issues_milestones.go │ │ │ │ ├── issues_timeline.go │ │ │ │ ├── licenses.go │ │ │ │ ├── messages.go │ │ │ │ ├── migrations.go │ │ │ │ ├── migrations_source_import.go │ │ │ │ ├── migrations_user.go │ │ │ │ ├── misc.go │ │ │ │ ├── orgs.go │ │ │ │ ├── orgs_hooks.go │ │ │ │ ├── orgs_members.go │ │ │ │ ├── orgs_outside_collaborators.go │ │ │ │ ├── orgs_projects.go │ │ │ │ ├── orgs_users_blocking.go │ │ │ │ ├── projects.go │ │ │ │ ├── pulls.go │ │ │ │ ├── pulls_comments.go │ │ │ │ ├── pulls_reviewers.go │ │ │ │ ├── pulls_reviews.go │ │ │ │ ├── reactions.go │ │ │ │ ├── repos.go │ │ │ │ ├── repos_collaborators.go │ │ │ │ ├── repos_comments.go │ │ │ │ ├── repos_commits.go │ │ │ │ ├── repos_community_health.go │ │ │ │ ├── repos_contents.go │ │ │ │ ├── repos_deployments.go │ │ │ │ ├── repos_forks.go │ │ │ │ ├── repos_hooks.go │ │ │ │ ├── repos_invitations.go │ │ │ │ ├── repos_keys.go │ │ │ │ ├── repos_merging.go │ │ │ │ ├── repos_pages.go │ │ │ │ ├── repos_prereceive_hooks.go │ │ │ │ ├── repos_projects.go │ │ │ │ ├── repos_releases.go │ │ │ │ ├── repos_stats.go │ │ │ │ ├── repos_statuses.go │ │ │ │ ├── repos_traffic.go │ │ │ │ ├── search.go │ │ │ │ ├── strings.go │ │ │ │ ├── teams.go │ │ │ │ ├── teams_discussion_comments.go │ │ │ │ ├── teams_discussions.go │ │ │ │ ├── teams_members.go │ │ │ │ ├── timestamp.go │ │ │ │ ├── users.go │ │ │ │ ├── users_administration.go │ │ │ │ ├── users_blocking.go │ │ │ │ ├── users_emails.go │ │ │ │ ├── users_followers.go │ │ │ │ ├── users_gpg_keys.go │ │ │ │ ├── users_keys.go │ │ │ │ ├── with_appengine.go │ │ │ │ └── without_appengine.go │ │ ├── go-querystring │ │ │ ├── LICENSE │ │ │ └── query │ │ │ │ └── encode.go │ │ └── pprof │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ └── profile │ │ │ ├── encode.go │ │ │ ├── filter.go │ │ │ ├── index.go │ │ │ ├── legacy_java_profile.go │ │ │ ├── legacy_profile.go │ │ │ ├── merge.go │ │ │ ├── profile.go │ │ │ ├── proto.go │ │ │ └── prune.go │ ├── hhkbp2 │ │ └── go-strftime │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── strftime.go │ ├── jehiah │ │ └── go-strftime │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── strftime.go │ ├── joyt │ │ └── godate │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── godate.go │ ├── klauspost │ │ └── compress │ │ │ ├── .gitattributes │ │ │ ├── .gitignore │ │ │ ├── .goreleaser.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── SECURITY.md │ │ │ ├── compressible.go │ │ │ ├── flate │ │ │ ├── deflate.go │ │ │ ├── dict_decoder.go │ │ │ ├── fast_encoder.go │ │ │ ├── huffman_bit_writer.go │ │ │ ├── huffman_code.go │ │ │ ├── huffman_sortByFreq.go │ │ │ ├── huffman_sortByLiteral.go │ │ │ ├── inflate.go │ │ │ ├── inflate_gen.go │ │ │ ├── level1.go │ │ │ ├── level2.go │ │ │ ├── level3.go │ │ │ ├── level4.go │ │ │ ├── level5.go │ │ │ ├── level6.go │ │ │ ├── matchlen_amd64.go │ │ │ ├── matchlen_amd64.s │ │ │ ├── matchlen_generic.go │ │ │ ├── regmask_amd64.go │ │ │ ├── regmask_other.go │ │ │ ├── stateless.go │ │ │ └── token.go │ │ │ ├── fse │ │ │ ├── README.md │ │ │ ├── bitreader.go │ │ │ ├── bitwriter.go │ │ │ ├── bytereader.go │ │ │ ├── compress.go │ │ │ ├── decompress.go │ │ │ └── fse.go │ │ │ ├── gen.sh │ │ │ ├── gzip │ │ │ ├── gunzip.go │ │ │ └── gzip.go │ │ │ ├── huff0 │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── bitreader.go │ │ │ ├── bitwriter.go │ │ │ ├── compress.go │ │ │ ├── decompress.go │ │ │ ├── decompress_amd64.go │ │ │ ├── decompress_amd64.s │ │ │ ├── decompress_generic.go │ │ │ └── huff0.go │ │ │ ├── internal │ │ │ ├── cpuinfo │ │ │ │ ├── cpuinfo.go │ │ │ │ ├── cpuinfo_amd64.go │ │ │ │ └── cpuinfo_amd64.s │ │ │ ├── race │ │ │ │ ├── norace.go │ │ │ │ └── race.go │ │ │ └── snapref │ │ │ │ ├── LICENSE │ │ │ │ ├── decode.go │ │ │ │ ├── decode_other.go │ │ │ │ ├── encode.go │ │ │ │ ├── encode_other.go │ │ │ │ └── snappy.go │ │ │ ├── s2 │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── decode.go │ │ │ ├── decode_amd64.s │ │ │ ├── decode_arm64.s │ │ │ ├── decode_asm.go │ │ │ ├── decode_other.go │ │ │ ├── dict.go │ │ │ ├── encode.go │ │ │ ├── encode_all.go │ │ │ ├── encode_amd64.go │ │ │ ├── encode_best.go │ │ │ ├── encode_better.go │ │ │ ├── encode_go.go │ │ │ ├── encodeblock_amd64.go │ │ │ ├── encodeblock_amd64.s │ │ │ ├── index.go │ │ │ ├── lz4convert.go │ │ │ ├── lz4sconvert.go │ │ │ ├── reader.go │ │ │ ├── s2.go │ │ │ └── writer.go │ │ │ ├── s2sx.mod │ │ │ ├── s2sx.sum │ │ │ ├── snappy │ │ │ ├── .gitignore │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── decode.go │ │ │ ├── encode.go │ │ │ └── snappy.go │ │ │ └── zstd │ │ │ ├── README.md │ │ │ ├── bitreader.go │ │ │ ├── bitwriter.go │ │ │ ├── blockdec.go │ │ │ ├── blockenc.go │ │ │ ├── blocktype_string.go │ │ │ ├── bytebuf.go │ │ │ ├── bytereader.go │ │ │ ├── decodeheader.go │ │ │ ├── decoder.go │ │ │ ├── decoder_options.go │ │ │ ├── dict.go │ │ │ ├── enc_base.go │ │ │ ├── enc_best.go │ │ │ ├── enc_better.go │ │ │ ├── enc_dfast.go │ │ │ ├── enc_fast.go │ │ │ ├── encoder.go │ │ │ ├── encoder_options.go │ │ │ ├── framedec.go │ │ │ ├── frameenc.go │ │ │ ├── fse_decoder.go │ │ │ ├── fse_decoder_amd64.go │ │ │ ├── fse_decoder_amd64.s │ │ │ ├── fse_decoder_generic.go │ │ │ ├── fse_encoder.go │ │ │ ├── fse_predefined.go │ │ │ ├── hash.go │ │ │ ├── history.go │ │ │ ├── internal │ │ │ └── xxhash │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── README.md │ │ │ │ ├── xxhash.go │ │ │ │ ├── xxhash_amd64.s │ │ │ │ ├── xxhash_arm64.s │ │ │ │ ├── xxhash_asm.go │ │ │ │ ├── xxhash_other.go │ │ │ │ └── xxhash_safe.go │ │ │ ├── matchlen_amd64.go │ │ │ ├── matchlen_amd64.s │ │ │ ├── matchlen_generic.go │ │ │ ├── seqdec.go │ │ │ ├── seqdec_amd64.go │ │ │ ├── seqdec_amd64.s │ │ │ ├── seqdec_generic.go │ │ │ ├── seqenc.go │ │ │ ├── snappy.go │ │ │ ├── zip.go │ │ │ └── zstd.go │ ├── kr │ │ ├── pretty │ │ │ ├── .gitignore │ │ │ ├── License │ │ │ ├── Readme │ │ │ ├── diff.go │ │ │ ├── formatter.go │ │ │ ├── pretty.go │ │ │ └── zero.go │ │ └── text │ │ │ ├── License │ │ │ ├── Readme │ │ │ ├── doc.go │ │ │ ├── indent.go │ │ │ └── wrap.go │ ├── mattn │ │ └── go-runewidth │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── runewidth.go │ │ │ ├── runewidth_appengine.go │ │ │ ├── runewidth_js.go │ │ │ ├── runewidth_posix.go │ │ │ ├── runewidth_table.go │ │ │ └── runewidth_windows.go │ ├── mohae │ │ └── deepcopy │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── deepcopy.go │ ├── olekukonko │ │ └── tablewriter │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── csv.go │ │ │ ├── table.go │ │ │ ├── table_with_color.go │ │ │ ├── util.go │ │ │ └── wrap.go │ ├── pbnjay │ │ └── strptime │ │ │ ├── README.md │ │ │ └── strptime.go │ ├── pierrec │ │ └── lz4 │ │ │ └── v4 │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── compressing_reader.go │ │ │ ├── internal │ │ │ ├── lz4block │ │ │ │ ├── block.go │ │ │ │ ├── blocks.go │ │ │ │ ├── decode_amd64.s │ │ │ │ ├── decode_arm.s │ │ │ │ ├── decode_arm64.s │ │ │ │ ├── decode_asm.go │ │ │ │ └── decode_other.go │ │ │ ├── lz4errors │ │ │ │ └── errors.go │ │ │ ├── lz4stream │ │ │ │ ├── block.go │ │ │ │ ├── frame.go │ │ │ │ └── frame_gen.go │ │ │ └── xxh32 │ │ │ │ ├── xxh32zero.go │ │ │ │ ├── xxh32zero_arm.go │ │ │ │ ├── xxh32zero_arm.s │ │ │ │ └── xxh32zero_other.go │ │ │ ├── lz4.go │ │ │ ├── options.go │ │ │ ├── options_gen.go │ │ │ ├── reader.go │ │ │ ├── state.go │ │ │ ├── state_gen.go │ │ │ └── writer.go │ ├── pkg │ │ └── profile │ │ │ ├── .travis.yml │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ └── profile.go │ ├── pmezard │ │ └── go-difflib │ │ │ ├── LICENSE │ │ │ └── difflib │ │ │ └── difflib.go │ ├── rivo │ │ └── uniseg │ │ │ ├── LICENSE.txt │ │ │ ├── README.md │ │ │ ├── doc.go │ │ │ ├── eastasianwidth.go │ │ │ ├── emojipresentation.go │ │ │ ├── gen_breaktest.go │ │ │ ├── gen_properties.go │ │ │ ├── grapheme.go │ │ │ ├── graphemeproperties.go │ │ │ ├── graphemerules.go │ │ │ ├── line.go │ │ │ ├── lineproperties.go │ │ │ ├── linerules.go │ │ │ ├── properties.go │ │ │ ├── sentence.go │ │ │ ├── sentenceproperties.go │ │ │ ├── sentencerules.go │ │ │ ├── step.go │ │ │ ├── width.go │ │ │ ├── word.go │ │ │ ├── wordproperties.go │ │ │ └── wordrules.go │ ├── rogpeppe │ │ └── go-internal │ │ │ ├── LICENSE │ │ │ └── fmtsort │ │ │ ├── mapelem.go │ │ │ └── sort.go │ ├── satori │ │ └── go.uuid │ │ │ ├── .travis.yml │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── codec.go │ │ │ ├── generator.go │ │ │ ├── sql.go │ │ │ └── uuid.go │ ├── segmentio │ │ └── kafka-go │ │ │ ├── .gitattributes │ │ │ ├── .gitignore │ │ │ ├── .golangci.yml │ │ │ ├── CODE_OF_CONDUCT.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── LICENSE │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── addoffsetstotxn.go │ │ │ ├── addpartitionstotxn.go │ │ │ ├── address.go │ │ │ ├── alterclientquotas.go │ │ │ ├── alterconfigs.go │ │ │ ├── alterpartitionreassignments.go │ │ │ ├── alteruserscramcredentials.go │ │ │ ├── apiversions.go │ │ │ ├── balancer.go │ │ │ ├── batch.go │ │ │ ├── buffer.go │ │ │ ├── client.go │ │ │ ├── commit.go │ │ │ ├── compress │ │ │ ├── compress.go │ │ │ ├── gzip │ │ │ │ └── gzip.go │ │ │ ├── lz4 │ │ │ │ └── lz4.go │ │ │ ├── snappy │ │ │ │ ├── snappy.go │ │ │ │ └── xerial.go │ │ │ └── zstd │ │ │ │ └── zstd.go │ │ │ ├── compression.go │ │ │ ├── conn.go │ │ │ ├── consumergroup.go │ │ │ ├── crc32.go │ │ │ ├── createacls.go │ │ │ ├── createpartitions.go │ │ │ ├── createtopics.go │ │ │ ├── deleteacls.go │ │ │ ├── deletegroups.go │ │ │ ├── deletetopics.go │ │ │ ├── describeacls.go │ │ │ ├── describeclientquotas.go │ │ │ ├── describeconfigs.go │ │ │ ├── describegroups.go │ │ │ ├── describeuserscramcredentials.go │ │ │ ├── dialer.go │ │ │ ├── discard.go │ │ │ ├── docker-compose-241.yml │ │ │ ├── docker-compose.010.yml │ │ │ ├── docker-compose.yml │ │ │ ├── electleaders.go │ │ │ ├── endtxn.go │ │ │ ├── error.go │ │ │ ├── fetch.go │ │ │ ├── findcoordinator.go │ │ │ ├── groupbalancer.go │ │ │ ├── heartbeat.go │ │ │ ├── incrementalalterconfigs.go │ │ │ ├── initproducerid.go │ │ │ ├── joingroup.go │ │ │ ├── kafka.go │ │ │ ├── leavegroup.go │ │ │ ├── listgroups.go │ │ │ ├── listoffset.go │ │ │ ├── listpartitionreassignments.go │ │ │ ├── logger.go │ │ │ ├── message.go │ │ │ ├── message_reader.go │ │ │ ├── metadata.go │ │ │ ├── offsetcommit.go │ │ │ ├── offsetdelete.go │ │ │ ├── offsetfetch.go │ │ │ ├── produce.go │ │ │ ├── protocol.go │ │ │ ├── protocol │ │ │ ├── addoffsetstotxn │ │ │ │ └── addoffsetstotxn.go │ │ │ ├── addpartitionstotxn │ │ │ │ └── addpartitionstotxn.go │ │ │ ├── alterclientquotas │ │ │ │ └── alterclientquotas.go │ │ │ ├── alterconfigs │ │ │ │ └── alterconfigs.go │ │ │ ├── alterpartitionreassignments │ │ │ │ └── alterpartitionreassignments.go │ │ │ ├── alteruserscramcredentials │ │ │ │ └── alteruserscramcredentials.go │ │ │ ├── apiversions │ │ │ │ └── apiversions.go │ │ │ ├── buffer.go │ │ │ ├── cluster.go │ │ │ ├── conn.go │ │ │ ├── consumer │ │ │ │ └── consumer.go │ │ │ ├── createacls │ │ │ │ └── createacls.go │ │ │ ├── createpartitions │ │ │ │ └── createpartitions.go │ │ │ ├── createtopics │ │ │ │ └── createtopics.go │ │ │ ├── decode.go │ │ │ ├── deleteacls │ │ │ │ └── deleteacls.go │ │ │ ├── deletegroups │ │ │ │ └── deletegroups.go │ │ │ ├── deletetopics │ │ │ │ └── deletetopics.go │ │ │ ├── describeacls │ │ │ │ └── describeacls.go │ │ │ ├── describeclientquotas │ │ │ │ └── describeclientquotas.go │ │ │ ├── describeconfigs │ │ │ │ └── describeconfigs.go │ │ │ ├── describegroups │ │ │ │ └── describegroups.go │ │ │ ├── describeuserscramcredentials │ │ │ │ └── describeuserscramcredentials.go │ │ │ ├── electleaders │ │ │ │ └── electleaders.go │ │ │ ├── encode.go │ │ │ ├── endtxn │ │ │ │ └── endtxn.go │ │ │ ├── error.go │ │ │ ├── fetch │ │ │ │ └── fetch.go │ │ │ ├── findcoordinator │ │ │ │ └── findcoordinator.go │ │ │ ├── heartbeat │ │ │ │ └── heartbeat.go │ │ │ ├── incrementalalterconfigs │ │ │ │ └── incrementalalterconfigs.go │ │ │ ├── initproducerid │ │ │ │ └── initproducerid.go │ │ │ ├── joingroup │ │ │ │ └── joingroup.go │ │ │ ├── leavegroup │ │ │ │ └── leavegroup.go │ │ │ ├── listgroups │ │ │ │ └── listgroups.go │ │ │ ├── listoffsets │ │ │ │ └── listoffsets.go │ │ │ ├── listpartitionreassignments │ │ │ │ └── listpartitionreassignments.go │ │ │ ├── metadata │ │ │ │ └── metadata.go │ │ │ ├── offsetcommit │ │ │ │ └── offsetcommit.go │ │ │ ├── offsetdelete │ │ │ │ └── offsetdelete.go │ │ │ ├── offsetfetch │ │ │ │ └── offsetfetch.go │ │ │ ├── produce │ │ │ │ └── produce.go │ │ │ ├── protocol.go │ │ │ ├── rawproduce │ │ │ │ └── rawproduce.go │ │ │ ├── record.go │ │ │ ├── record_batch.go │ │ │ ├── record_v1.go │ │ │ ├── record_v2.go │ │ │ ├── reflect.go │ │ │ ├── reflect_unsafe.go │ │ │ ├── request.go │ │ │ ├── response.go │ │ │ ├── roundtrip.go │ │ │ ├── saslauthenticate │ │ │ │ └── saslauthenticate.go │ │ │ ├── saslhandshake │ │ │ │ └── saslhandshake.go │ │ │ ├── size.go │ │ │ ├── syncgroup │ │ │ │ └── syncgroup.go │ │ │ └── txnoffsetcommit │ │ │ │ └── txnoffsetcommit.go │ │ │ ├── rawproduce.go │ │ │ ├── read.go │ │ │ ├── reader.go │ │ │ ├── record.go │ │ │ ├── recordbatch.go │ │ │ ├── resolver.go │ │ │ ├── resource.go │ │ │ ├── sasl │ │ │ └── sasl.go │ │ │ ├── saslauthenticate.go │ │ │ ├── saslhandshake.go │ │ │ ├── sizeof.go │ │ │ ├── stats.go │ │ │ ├── syncgroup.go │ │ │ ├── time.go │ │ │ ├── transport.go │ │ │ ├── txnoffsetcommit.go │ │ │ ├── write.go │ │ │ └── writer.go │ ├── sirupsen │ │ └── logrus │ │ │ ├── .gitignore │ │ │ ├── .golangci.yml │ │ │ ├── .travis.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── alt_exit.go │ │ │ ├── appveyor.yml │ │ │ ├── buffer_pool.go │ │ │ ├── doc.go │ │ │ ├── entry.go │ │ │ ├── exported.go │ │ │ ├── formatter.go │ │ │ ├── hooks.go │ │ │ ├── json_formatter.go │ │ │ ├── logger.go │ │ │ ├── logrus.go │ │ │ ├── terminal_check_appengine.go │ │ │ ├── terminal_check_bsd.go │ │ │ ├── terminal_check_js.go │ │ │ ├── terminal_check_no_terminal.go │ │ │ ├── terminal_check_notappengine.go │ │ │ ├── terminal_check_solaris.go │ │ │ ├── terminal_check_unix.go │ │ │ ├── terminal_check_wasi.go │ │ │ ├── terminal_check_wasip1.go │ │ │ ├── terminal_check_windows.go │ │ │ ├── text_formatter.go │ │ │ └── writer.go │ ├── skratchdot │ │ └── open-golang │ │ │ ├── LICENSE │ │ │ └── open │ │ │ ├── exec.go │ │ │ ├── exec_darwin.go │ │ │ ├── exec_windows.go │ │ │ └── open.go │ ├── stretchr │ │ └── testify │ │ │ ├── LICENSE │ │ │ └── assert │ │ │ ├── assertion_compare.go │ │ │ ├── assertion_format.go │ │ │ ├── assertion_format.go.tmpl │ │ │ ├── assertion_forward.go │ │ │ ├── assertion_forward.go.tmpl │ │ │ ├── assertion_order.go │ │ │ ├── assertions.go │ │ │ ├── doc.go │ │ │ ├── errors.go │ │ │ ├── forward_assertions.go │ │ │ ├── http_assertions.go │ │ │ └── yaml │ │ │ ├── yaml_custom.go │ │ │ ├── yaml_default.go │ │ │ └── yaml_fail.go │ └── yuin │ │ └── gopher-lua │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.rst │ │ ├── _state.go │ │ ├── _vm.go │ │ ├── alloc.go │ │ ├── ast │ │ ├── ast.go │ │ ├── expr.go │ │ ├── misc.go │ │ ├── stmt.go │ │ └── token.go │ │ ├── auxlib.go │ │ ├── baselib.go │ │ ├── channellib.go │ │ ├── compile.go │ │ ├── config.go │ │ ├── coroutinelib.go │ │ ├── debuglib.go │ │ ├── function.go │ │ ├── iolib.go │ │ ├── linit.go │ │ ├── loadlib.go │ │ ├── mathlib.go │ │ ├── opcode.go │ │ ├── oslib.go │ │ ├── package.go │ │ ├── parse │ │ ├── Makefile │ │ ├── lexer.go │ │ ├── parser.go │ │ └── parser.go.y │ │ ├── pm │ │ └── pm.go │ │ ├── state.go │ │ ├── stringlib.go │ │ ├── table.go │ │ ├── tablelib.go │ │ ├── utils.go │ │ ├── value.go │ │ └── vm.go ├── golang.org │ └── x │ │ ├── oauth2 │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── deviceauth.go │ │ ├── endpoints │ │ │ └── endpoints.go │ │ ├── github │ │ │ └── github.go │ │ ├── internal │ │ │ ├── doc.go │ │ │ ├── oauth2.go │ │ │ ├── token.go │ │ │ └── transport.go │ │ ├── oauth2.go │ │ ├── pkce.go │ │ ├── token.go │ │ └── transport.go │ │ └── sys │ │ ├── LICENSE │ │ ├── PATENTS │ │ ├── unix │ │ ├── .gitignore │ │ ├── README.md │ │ ├── affinity_linux.go │ │ ├── aliases.go │ │ ├── asm_aix_ppc64.s │ │ ├── asm_bsd_386.s │ │ ├── asm_bsd_amd64.s │ │ ├── asm_bsd_arm.s │ │ ├── asm_bsd_arm64.s │ │ ├── asm_bsd_ppc64.s │ │ ├── asm_bsd_riscv64.s │ │ ├── asm_linux_386.s │ │ ├── asm_linux_amd64.s │ │ ├── asm_linux_arm.s │ │ ├── asm_linux_arm64.s │ │ ├── asm_linux_loong64.s │ │ ├── asm_linux_mips64x.s │ │ ├── asm_linux_mipsx.s │ │ ├── asm_linux_ppc64x.s │ │ ├── asm_linux_riscv64.s │ │ ├── asm_linux_s390x.s │ │ ├── asm_openbsd_mips64.s │ │ ├── asm_solaris_amd64.s │ │ ├── asm_zos_s390x.s │ │ ├── auxv.go │ │ ├── auxv_unsupported.go │ │ ├── bluetooth_linux.go │ │ ├── bpxsvc_zos.go │ │ ├── bpxsvc_zos.s │ │ ├── cap_freebsd.go │ │ ├── constants.go │ │ ├── dev_aix_ppc.go │ │ ├── dev_aix_ppc64.go │ │ ├── dev_darwin.go │ │ ├── dev_dragonfly.go │ │ ├── dev_freebsd.go │ │ ├── dev_linux.go │ │ ├── dev_netbsd.go │ │ ├── dev_openbsd.go │ │ ├── dev_zos.go │ │ ├── dirent.go │ │ ├── endian_big.go │ │ ├── endian_little.go │ │ ├── env_unix.go │ │ ├── fcntl.go │ │ ├── fcntl_darwin.go │ │ ├── fcntl_linux_32bit.go │ │ ├── fdset.go │ │ ├── gccgo.go │ │ ├── gccgo_c.c │ │ ├── gccgo_linux_amd64.go │ │ ├── ifreq_linux.go │ │ ├── ioctl_linux.go │ │ ├── ioctl_signed.go │ │ ├── ioctl_unsigned.go │ │ ├── ioctl_zos.go │ │ ├── mkall.sh │ │ ├── mkerrors.sh │ │ ├── mmap_nomremap.go │ │ ├── mremap.go │ │ ├── pagesize_unix.go │ │ ├── pledge_openbsd.go │ │ ├── ptrace_darwin.go │ │ ├── ptrace_ios.go │ │ ├── race.go │ │ ├── race0.go │ │ ├── readdirent_getdents.go │ │ ├── readdirent_getdirentries.go │ │ ├── sockcmsg_dragonfly.go │ │ ├── sockcmsg_linux.go │ │ ├── sockcmsg_unix.go │ │ ├── sockcmsg_unix_other.go │ │ ├── sockcmsg_zos.go │ │ ├── symaddr_zos_s390x.s │ │ ├── syscall.go │ │ ├── syscall_aix.go │ │ ├── syscall_aix_ppc.go │ │ ├── syscall_aix_ppc64.go │ │ ├── syscall_bsd.go │ │ ├── syscall_darwin.go │ │ ├── syscall_darwin_amd64.go │ │ ├── syscall_darwin_arm64.go │ │ ├── syscall_darwin_libSystem.go │ │ ├── syscall_dragonfly.go │ │ ├── syscall_dragonfly_amd64.go │ │ ├── syscall_freebsd.go │ │ ├── syscall_freebsd_386.go │ │ ├── syscall_freebsd_amd64.go │ │ ├── syscall_freebsd_arm.go │ │ ├── syscall_freebsd_arm64.go │ │ ├── syscall_freebsd_riscv64.go │ │ ├── syscall_hurd.go │ │ ├── syscall_hurd_386.go │ │ ├── syscall_illumos.go │ │ ├── syscall_linux.go │ │ ├── syscall_linux_386.go │ │ ├── syscall_linux_alarm.go │ │ ├── syscall_linux_amd64.go │ │ ├── syscall_linux_amd64_gc.go │ │ ├── syscall_linux_arm.go │ │ ├── syscall_linux_arm64.go │ │ ├── syscall_linux_gc.go │ │ ├── syscall_linux_gc_386.go │ │ ├── syscall_linux_gc_arm.go │ │ ├── syscall_linux_gccgo_386.go │ │ ├── syscall_linux_gccgo_arm.go │ │ ├── syscall_linux_loong64.go │ │ ├── syscall_linux_mips64x.go │ │ ├── syscall_linux_mipsx.go │ │ ├── syscall_linux_ppc.go │ │ ├── syscall_linux_ppc64x.go │ │ ├── syscall_linux_riscv64.go │ │ ├── syscall_linux_s390x.go │ │ ├── syscall_linux_sparc64.go │ │ ├── syscall_netbsd.go │ │ ├── syscall_netbsd_386.go │ │ ├── syscall_netbsd_amd64.go │ │ ├── syscall_netbsd_arm.go │ │ ├── syscall_netbsd_arm64.go │ │ ├── syscall_openbsd.go │ │ ├── syscall_openbsd_386.go │ │ ├── syscall_openbsd_amd64.go │ │ ├── syscall_openbsd_arm.go │ │ ├── syscall_openbsd_arm64.go │ │ ├── syscall_openbsd_libc.go │ │ ├── syscall_openbsd_mips64.go │ │ ├── syscall_openbsd_ppc64.go │ │ ├── syscall_openbsd_riscv64.go │ │ ├── syscall_solaris.go │ │ ├── syscall_solaris_amd64.go │ │ ├── syscall_unix.go │ │ ├── syscall_unix_gc.go │ │ ├── syscall_unix_gc_ppc64x.go │ │ ├── syscall_zos_s390x.go │ │ ├── sysvshm_linux.go │ │ ├── sysvshm_unix.go │ │ ├── sysvshm_unix_other.go │ │ ├── timestruct.go │ │ ├── unveil_openbsd.go │ │ ├── vgetrandom_linux.go │ │ ├── vgetrandom_unsupported.go │ │ ├── xattr_bsd.go │ │ ├── zerrors_aix_ppc.go │ │ ├── zerrors_aix_ppc64.go │ │ ├── zerrors_darwin_amd64.go │ │ ├── zerrors_darwin_arm64.go │ │ ├── zerrors_dragonfly_amd64.go │ │ ├── zerrors_freebsd_386.go │ │ ├── zerrors_freebsd_amd64.go │ │ ├── zerrors_freebsd_arm.go │ │ ├── zerrors_freebsd_arm64.go │ │ ├── zerrors_freebsd_riscv64.go │ │ ├── zerrors_linux.go │ │ ├── zerrors_linux_386.go │ │ ├── zerrors_linux_amd64.go │ │ ├── zerrors_linux_arm.go │ │ ├── zerrors_linux_arm64.go │ │ ├── zerrors_linux_loong64.go │ │ ├── zerrors_linux_mips.go │ │ ├── zerrors_linux_mips64.go │ │ ├── zerrors_linux_mips64le.go │ │ ├── zerrors_linux_mipsle.go │ │ ├── zerrors_linux_ppc.go │ │ ├── zerrors_linux_ppc64.go │ │ ├── zerrors_linux_ppc64le.go │ │ ├── zerrors_linux_riscv64.go │ │ ├── zerrors_linux_s390x.go │ │ ├── zerrors_linux_sparc64.go │ │ ├── zerrors_netbsd_386.go │ │ ├── zerrors_netbsd_amd64.go │ │ ├── zerrors_netbsd_arm.go │ │ ├── zerrors_netbsd_arm64.go │ │ ├── zerrors_openbsd_386.go │ │ ├── zerrors_openbsd_amd64.go │ │ ├── zerrors_openbsd_arm.go │ │ ├── zerrors_openbsd_arm64.go │ │ ├── zerrors_openbsd_mips64.go │ │ ├── zerrors_openbsd_ppc64.go │ │ ├── zerrors_openbsd_riscv64.go │ │ ├── zerrors_solaris_amd64.go │ │ ├── zerrors_zos_s390x.go │ │ ├── zptrace_armnn_linux.go │ │ ├── zptrace_linux_arm64.go │ │ ├── zptrace_mipsnn_linux.go │ │ ├── zptrace_mipsnnle_linux.go │ │ ├── zptrace_x86_linux.go │ │ ├── zsymaddr_zos_s390x.s │ │ ├── zsyscall_aix_ppc.go │ │ ├── zsyscall_aix_ppc64.go │ │ ├── zsyscall_aix_ppc64_gc.go │ │ ├── zsyscall_aix_ppc64_gccgo.go │ │ ├── zsyscall_darwin_amd64.go │ │ ├── zsyscall_darwin_amd64.s │ │ ├── zsyscall_darwin_arm64.go │ │ ├── zsyscall_darwin_arm64.s │ │ ├── zsyscall_dragonfly_amd64.go │ │ ├── zsyscall_freebsd_386.go │ │ ├── zsyscall_freebsd_amd64.go │ │ ├── zsyscall_freebsd_arm.go │ │ ├── zsyscall_freebsd_arm64.go │ │ ├── zsyscall_freebsd_riscv64.go │ │ ├── zsyscall_illumos_amd64.go │ │ ├── zsyscall_linux.go │ │ ├── zsyscall_linux_386.go │ │ ├── zsyscall_linux_amd64.go │ │ ├── zsyscall_linux_arm.go │ │ ├── zsyscall_linux_arm64.go │ │ ├── zsyscall_linux_loong64.go │ │ ├── zsyscall_linux_mips.go │ │ ├── zsyscall_linux_mips64.go │ │ ├── zsyscall_linux_mips64le.go │ │ ├── zsyscall_linux_mipsle.go │ │ ├── zsyscall_linux_ppc.go │ │ ├── zsyscall_linux_ppc64.go │ │ ├── zsyscall_linux_ppc64le.go │ │ ├── zsyscall_linux_riscv64.go │ │ ├── zsyscall_linux_s390x.go │ │ ├── zsyscall_linux_sparc64.go │ │ ├── zsyscall_netbsd_386.go │ │ ├── zsyscall_netbsd_amd64.go │ │ ├── zsyscall_netbsd_arm.go │ │ ├── zsyscall_netbsd_arm64.go │ │ ├── zsyscall_openbsd_386.go │ │ ├── zsyscall_openbsd_386.s │ │ ├── zsyscall_openbsd_amd64.go │ │ ├── zsyscall_openbsd_amd64.s │ │ ├── zsyscall_openbsd_arm.go │ │ ├── zsyscall_openbsd_arm.s │ │ ├── zsyscall_openbsd_arm64.go │ │ ├── zsyscall_openbsd_arm64.s │ │ ├── zsyscall_openbsd_mips64.go │ │ ├── zsyscall_openbsd_mips64.s │ │ ├── zsyscall_openbsd_ppc64.go │ │ ├── zsyscall_openbsd_ppc64.s │ │ ├── zsyscall_openbsd_riscv64.go │ │ ├── zsyscall_openbsd_riscv64.s │ │ ├── zsyscall_solaris_amd64.go │ │ ├── zsyscall_zos_s390x.go │ │ ├── zsysctl_openbsd_386.go │ │ ├── zsysctl_openbsd_amd64.go │ │ ├── zsysctl_openbsd_arm.go │ │ ├── zsysctl_openbsd_arm64.go │ │ ├── zsysctl_openbsd_mips64.go │ │ ├── zsysctl_openbsd_ppc64.go │ │ ├── zsysctl_openbsd_riscv64.go │ │ ├── zsysnum_darwin_amd64.go │ │ ├── zsysnum_darwin_arm64.go │ │ ├── zsysnum_dragonfly_amd64.go │ │ ├── zsysnum_freebsd_386.go │ │ ├── zsysnum_freebsd_amd64.go │ │ ├── zsysnum_freebsd_arm.go │ │ ├── zsysnum_freebsd_arm64.go │ │ ├── zsysnum_freebsd_riscv64.go │ │ ├── zsysnum_linux_386.go │ │ ├── zsysnum_linux_amd64.go │ │ ├── zsysnum_linux_arm.go │ │ ├── zsysnum_linux_arm64.go │ │ ├── zsysnum_linux_loong64.go │ │ ├── zsysnum_linux_mips.go │ │ ├── zsysnum_linux_mips64.go │ │ ├── zsysnum_linux_mips64le.go │ │ ├── zsysnum_linux_mipsle.go │ │ ├── zsysnum_linux_ppc.go │ │ ├── zsysnum_linux_ppc64.go │ │ ├── zsysnum_linux_ppc64le.go │ │ ├── zsysnum_linux_riscv64.go │ │ ├── zsysnum_linux_s390x.go │ │ ├── zsysnum_linux_sparc64.go │ │ ├── zsysnum_netbsd_386.go │ │ ├── zsysnum_netbsd_amd64.go │ │ ├── zsysnum_netbsd_arm.go │ │ ├── zsysnum_netbsd_arm64.go │ │ ├── zsysnum_openbsd_386.go │ │ ├── zsysnum_openbsd_amd64.go │ │ ├── zsysnum_openbsd_arm.go │ │ ├── zsysnum_openbsd_arm64.go │ │ ├── zsysnum_openbsd_mips64.go │ │ ├── zsysnum_openbsd_ppc64.go │ │ ├── zsysnum_openbsd_riscv64.go │ │ ├── zsysnum_zos_s390x.go │ │ ├── ztypes_aix_ppc.go │ │ ├── ztypes_aix_ppc64.go │ │ ├── ztypes_darwin_amd64.go │ │ ├── ztypes_darwin_arm64.go │ │ ├── ztypes_dragonfly_amd64.go │ │ ├── ztypes_freebsd_386.go │ │ ├── ztypes_freebsd_amd64.go │ │ ├── ztypes_freebsd_arm.go │ │ ├── ztypes_freebsd_arm64.go │ │ ├── ztypes_freebsd_riscv64.go │ │ ├── ztypes_linux.go │ │ ├── ztypes_linux_386.go │ │ ├── ztypes_linux_amd64.go │ │ ├── ztypes_linux_arm.go │ │ ├── ztypes_linux_arm64.go │ │ ├── ztypes_linux_loong64.go │ │ ├── ztypes_linux_mips.go │ │ ├── ztypes_linux_mips64.go │ │ ├── ztypes_linux_mips64le.go │ │ ├── ztypes_linux_mipsle.go │ │ ├── ztypes_linux_ppc.go │ │ ├── ztypes_linux_ppc64.go │ │ ├── ztypes_linux_ppc64le.go │ │ ├── ztypes_linux_riscv64.go │ │ ├── ztypes_linux_s390x.go │ │ ├── ztypes_linux_sparc64.go │ │ ├── ztypes_netbsd_386.go │ │ ├── ztypes_netbsd_amd64.go │ │ ├── ztypes_netbsd_arm.go │ │ ├── ztypes_netbsd_arm64.go │ │ ├── ztypes_openbsd_386.go │ │ ├── ztypes_openbsd_amd64.go │ │ ├── ztypes_openbsd_arm.go │ │ ├── ztypes_openbsd_arm64.go │ │ ├── ztypes_openbsd_mips64.go │ │ ├── ztypes_openbsd_ppc64.go │ │ ├── ztypes_openbsd_riscv64.go │ │ ├── ztypes_solaris_amd64.go │ │ └── ztypes_zos_s390x.go │ │ └── windows │ │ ├── aliases.go │ │ ├── dll_windows.go │ │ ├── env_windows.go │ │ ├── eventlog.go │ │ ├── exec_windows.go │ │ ├── memory_windows.go │ │ ├── mkerrors.bash │ │ ├── mkknownfolderids.bash │ │ ├── mksyscall.go │ │ ├── race.go │ │ ├── race0.go │ │ ├── security_windows.go │ │ ├── service.go │ │ ├── setupapi_windows.go │ │ ├── str.go │ │ ├── syscall.go │ │ ├── syscall_windows.go │ │ ├── types_windows.go │ │ ├── types_windows_386.go │ │ ├── types_windows_amd64.go │ │ ├── types_windows_arm.go │ │ ├── types_windows_arm64.go │ │ ├── zerrors_windows.go │ │ ├── zknownfolderids_windows.go │ │ └── zsyscall_windows.go ├── gopkg.in │ ├── urfave │ │ └── cli.v1 │ │ │ ├── .flake8 │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── app.go │ │ │ ├── appveyor.yml │ │ │ ├── category.go │ │ │ ├── cli.go │ │ │ ├── command.go │ │ │ ├── context.go │ │ │ ├── errors.go │ │ │ ├── flag-types.json │ │ │ ├── flag.go │ │ │ ├── flag_generated.go │ │ │ ├── funcs.go │ │ │ ├── generate-flag-types │ │ │ ├── help.go │ │ │ └── runtests │ ├── yaml.v2 │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── LICENSE.libyaml │ │ ├── NOTICE │ │ ├── README.md │ │ ├── apic.go │ │ ├── decode.go │ │ ├── emitterc.go │ │ ├── encode.go │ │ ├── parserc.go │ │ ├── readerc.go │ │ ├── resolve.go │ │ ├── scannerc.go │ │ ├── sorter.go │ │ ├── writerc.go │ │ ├── yaml.go │ │ ├── yamlh.go │ │ └── yamlprivateh.go │ └── yaml.v3 │ │ ├── LICENSE │ │ ├── NOTICE │ │ ├── README.md │ │ ├── apic.go │ │ ├── decode.go │ │ ├── emitterc.go │ │ ├── encode.go │ │ ├── parserc.go │ │ ├── readerc.go │ │ ├── resolve.go │ │ ├── scannerc.go │ │ ├── sorter.go │ │ ├── writerc.go │ │ ├── yaml.go │ │ ├── yamlh.go │ │ └── yamlprivateh.go ├── layeh.com │ └── gopher-luar │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── array.go │ │ ├── cache.go │ │ ├── chan.go │ │ ├── config.go │ │ ├── doc.go │ │ ├── func.go │ │ ├── luar.go │ │ ├── map.go │ │ ├── map_iter.go │ │ ├── map_iter_go112.go │ │ ├── metatable.go │ │ ├── ptr.go │ │ ├── slice.go │ │ ├── struct.go │ │ ├── type.go │ │ └── util.go └── modules.txt └── webserver └── webserver.go /.cursor/rules/gogen-api.mdc: -------------------------------------------------------------------------------- 1 | --- 2 | description: These rules govern work with the api 3 | globs: gogen-api/**/*.py 4 | alwaysApply: false 5 | --- 6 | # General Development Rules 7 | 8 | - Keep components modular and focused on a single responsibility 9 | - Document code with clear comments 10 | - Update gogen-api/SUMMARY.md after completing significant features 11 | 12 | ## File Organization 13 | 14 | - Each AWS Lambda function is a separate .py file in the `gogen-api` directory. 15 | - Files were originally written in python2.7 but need to be updated to python3. 16 | - APIs were originally implemented in 2017 and need to be updated to 2025 APIs. 17 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitconfig: -------------------------------------------------------------------------------- 1 | [color] 2 | diff = auto 3 | status = auto 4 | branch = auto 5 | interactive = auto 6 | ui = true 7 | pager = true 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | out.log 2 | *.pprof 3 | *.pdf 4 | gogen 5 | test.out 6 | .vscode 7 | build.sh 8 | .githubtoken 9 | linecount.sh 10 | gogen-api/getswagger.sh 11 | local/** 12 | .vim* 13 | .bash* 14 | .aws* 15 | .profile 16 | .screenrc 17 | splunk_app_gogen.spl 18 | .configcache* 19 | .versioncache* 20 | roveralls* 21 | .specstory 22 | .pyvenv 23 | gogen-api/__pycache__ 24 | gogen-api/build 25 | ui/node_modules/* 26 | ui/dist/* 27 | ui/build/* 28 | ui/coverage/* 29 | ui/public/gogen.wasm 30 | ui/.vite -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.04 2 | ADD build/linux/gogen /usr/bin/gogen 3 | RUN chmod 755 /usr/bin/gogen 4 | RUN sh -c 'echo dash dash/sh boolean false | debconf-set-selections' && \ 5 | sh -c 'DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash' && \ 6 | apt-get update && \ 7 | apt-get install -y vim curl ca-certificates jq netcat && \ 8 | rm -rf /var/lib/apt/lists/* 9 | ADD entrypoint.sh /sbin/entrypoint.sh 10 | ENTRYPOINT ["/sbin/entrypoint.sh"] 11 | CMD ["start"] -------------------------------------------------------------------------------- /README/Demoscript.md: -------------------------------------------------------------------------------- 1 | cd /tmp 2 | wget https://api.gogen.io/osx/gogen 3 | chmod 755 ./gogen 4 | ./gogen -c coccyx/weblog 5 | ./gogen search weblog 6 | ./gogen pull -d coccyx/weblog . 7 | less samples/weblog.json 8 | ./gogen info coccyx/weblog 9 | ./gogen -c coccyx/weblog gen -c 1 -ei 1 10 | ./gogen -c coccyx/weblog gen -c 1000 -ei 1000 -o devnull 11 | 12 | gogen -g 3 -c examples/generator/users.yml gen -ei 10000 -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 0.12.0 2 | -------------------------------------------------------------------------------- /build/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /docker-push.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin 3 | docker push clintsharp/gogen:latest 4 | -------------------------------------------------------------------------------- /entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ "$1" = "start" ]; then 3 | gogen gen 4 | fi 5 | 6 | exec "$@" 7 | -------------------------------------------------------------------------------- /examples/common/webhosts.csv: -------------------------------------------------------------------------------- 1 | ip,host 2 | 10.2.1.33,web-01.bar.com 3 | 10.2.1.34,web-02.bar.com 4 | 10.2.1.35,web-03.bar.com -------------------------------------------------------------------------------- /examples/eventrating/alwaysup.yml: -------------------------------------------------------------------------------- 1 | samples: 2 | - name: alwaysup 3 | rater: alwaysup 4 | interval: 1 5 | count: 1 6 | tokens: 7 | - name: rated 8 | format: template 9 | type: rated 10 | replacement: float 11 | rater: alwaysup 12 | lower: 1.0 13 | upper: 1.0 14 | precision: 2 15 | - name: id 16 | format: template 17 | type: script 18 | init: 19 | id: 0 20 | script: > 21 | state["id"] = state["id"] + 1 22 | return state["id"] 23 | lines: 24 | - "_raw": id=$id$ value=$rated$ 25 | raters: 26 | - name: alwaysup 27 | type: script 28 | # Goes up by multiplier on every iteration 29 | script: > 30 | state["count"] = state["count"] * options["multiplier"] 31 | return state["count"] 32 | options: 33 | multiplier: 1.01 34 | init: 35 | count: 1 -------------------------------------------------------------------------------- /examples/nixOS/allhosts.csv: -------------------------------------------------------------------------------- 1 | ip,host,mac,group,nics 2 | 10.2.1.133,appserver-01,BE:21:D7:EF:CD:E2,api,2 3 | 10.2.1.134,appserver-02,2A:24:90:9B:AF:2C,api,2 -------------------------------------------------------------------------------- /examples/nixOS/bandwidth.lua: -------------------------------------------------------------------------------- 1 | hosts = getFieldChoice("host", "host") 2 | for i, host in ipairs(hosts) do 3 | setToken("host", host, "host") 4 | events = { } 5 | l = getLine(0) 6 | l = replaceTokens(l) 7 | table.insert(events, l) 8 | 9 | kbps = math.random(options["minKBPS"], options["maxKBPS"]) 10 | packets = kbps / 65.535 11 | receivedPct = math.random(1000, 4000) / 1000 12 | for i=1,options["numNICs"] do 13 | nic = "eth"..tostring(i) 14 | rx_p = round(receivedPct * packets, 2) 15 | tx_p = round(packets - rx_p, 2) 16 | rx_kb = round(receivedPct * kbps, 2) 17 | tx_kb = round(kbps - rx_kb, 2) 18 | 19 | tokens = { "nic", "rx_p", "tx_p", "rx_kb", "tx_kb" } 20 | for i, t in ipairs(tokens) do 21 | setToken(t, _G[t]) 22 | end 23 | l = getLine(1) 24 | l = replaceTokens(l) 25 | table.insert(events, l) 26 | end 27 | send(events) 28 | end -------------------------------------------------------------------------------- /examples/nixOS/bandwidth.yml: -------------------------------------------------------------------------------- 1 | global: 2 | samplesDir: 3 | - $GOGEN_HOME/examples/nixOS 4 | generators: 5 | - name: bandwidth 6 | fileName: $GOGEN_HOME/examples/nixOS/bandwidth.lua 7 | options: 8 | minKBPS: 1000 9 | maxKBPS: 1500 10 | numNICs: 2 11 | samples: 12 | - name: bandwidth 13 | description: Generate Bandwidth Usage Metrics 14 | notes: > 15 | Generates bandwidth usage from the Splunk UNIX TA 16 | generator: bandwidth 17 | interval: 60 18 | tokens: 19 | - name: host 20 | type: fieldChoice 21 | srcField: host 22 | sample: allhosts.csv 23 | disabled: true 24 | lines: 25 | - index: os 26 | sourcetype: bandwidth 27 | source: bandwidth 28 | host: $host$ 29 | _raw: Name rxPackets_PS txPackets_PS rxKB_PS txKB_PS 30 | - index: os 31 | sourcetype: df 32 | source: df 33 | host: $host$ 34 | _raw: $nic$ $rx_p$ $tx_p$ $rx_kb$ $tx_kb$ -------------------------------------------------------------------------------- /examples/nixOS/cpu.yml: -------------------------------------------------------------------------------- 1 | global: 2 | samplesDir: 3 | - $GOGEN_HOME/examples/nixOS 4 | generators: 5 | - name: cpu 6 | fileName: $GOGEN_HOME/examples/nixOS/cpu.lua 7 | options: 8 | minCPU: 30.0 9 | maxCPU: 75.0 10 | numCPUs: 8 11 | samples: 12 | - name: cpu 13 | description: Generate CPU Metrics 14 | notes: > 15 | Generates CPU usage in the form of Splunk's UNIX TA 16 | generator: cpu 17 | interval: 60 18 | tokens: 19 | - name: host 20 | type: fieldChoice 21 | srcField: host 22 | sample: allhosts.csv 23 | disabled: true 24 | lines: 25 | - index: os 26 | sourcetype: cpu 27 | source: cpu 28 | host: $host$ 29 | _raw: |- 30 | CPU pctUser pctNice pctSystem pctIowait pctIdle 31 | all $pctUserAll$ 0 $pctSystemAll$ $pctIowaitAll$ $pctIdleAll$ 32 | - index: os 33 | sourcetype: cpu 34 | source: cpu 35 | host: $host$ 36 | _raw: $CPU$ $pctUser$ 0 $pctSystem$ $pctIowait$ $pctIdle$ -------------------------------------------------------------------------------- /examples/nixOS/df.lua: -------------------------------------------------------------------------------- 1 | hosts = getFieldChoice("host", "host") 2 | mounts = getFieldChoice("disks", "mount") 3 | disks = getFieldChoice("disks", "disk") 4 | for i, host in ipairs(hosts) do 5 | setToken("host", host, "host") 6 | events = { } 7 | l = getLine(0) 8 | l = replaceTokens(l) 9 | table.insert(events, l) 10 | 11 | for i=1,#disks do 12 | usedPct = round(math.random() + math.random(options["minDiskUsedPct"], options["maxDiskUsedPct"]),2) 13 | usedGB = round((usedPct/100) * options["totalGBperDisk"]) 14 | availGB = round(options["totalGBperDisk"] - usedGB) 15 | setToken("usedPct", usedPct) 16 | setToken("usedGB", usedGB) 17 | setToken("availGB", availGB) 18 | setToken("totalGB", options["totalGBperDisk"]) 19 | if availGB < 1 then 20 | setToken("fs", "/dev/sdb1") 21 | setToken("mnt", "var") 22 | else 23 | setToken("fs", disks[i]) 24 | setToken("mnt", mounts[i]) 25 | end 26 | l = getLine(1) 27 | l = replaceTokens(l) 28 | table.insert(events, l) 29 | end 30 | send(events) 31 | end 32 | -------------------------------------------------------------------------------- /examples/nixOS/df.yml: -------------------------------------------------------------------------------- 1 | global: 2 | samplesDir: 3 | - $GOGEN_HOME/examples/nixOS 4 | generators: 5 | - name: df 6 | fileName: $GOGEN_HOME/examples/nixOS/df.lua 7 | options: 8 | minDiskUsedPct: 50.0 9 | maxDiskUsedPct: 69.0 10 | totalGBperDisk: 931 11 | numDisks: 4 12 | samples: 13 | - name: df 14 | description: Generate Disk Usage Metrics 15 | notes: > 16 | Generates Disk Usage in the form of a df command from the Splunk UNIX TA 17 | generator: df 18 | interval: 60 19 | tokens: 20 | - name: disks 21 | type: fieldChoice 22 | srcField: disk 23 | sample: disks.csv 24 | disabled: true 25 | - name: host 26 | type: fieldChoice 27 | srcField: host 28 | sample: allhosts.csv 29 | disabled: true 30 | lines: 31 | - index: os 32 | sourcetype: df 33 | source: df 34 | host: $host$ 35 | _raw: Filesystem Type Size Used Avail UsePct MountedOn 36 | - index: os 37 | sourcetype: df 38 | source: df 39 | host: $host$ 40 | _raw: $fs$ ext4 $totalGB$G $usedGB$G $availGB$G $usedPct$% $mnt$ -------------------------------------------------------------------------------- /examples/nixOS/disks.csv: -------------------------------------------------------------------------------- 1 | mount,disk 2 | /,/dev/sda1 3 | var,/dev/sdb1 4 | home,/dev/sda2 5 | etc,/dev/sdb2 -------------------------------------------------------------------------------- /examples/nixOS/nix.yml: -------------------------------------------------------------------------------- 1 | global: 2 | samplesDir: 3 | - $GOGEN_HOME/examples/nixOS 4 | mix: 5 | - sample: $GOGEN_HOME/examples/nixOS/cpu.yml 6 | - sample: $GOGEN_HOME/examples/nixOS/df.yml 7 | - sample: $GOGEN_HOME/examples/nixOS/vmstat.yml 8 | - sample: $GOGEN_HOME/examples/nixOS/bandwidth.yml 9 | - sample: $GOGEN_HOME/examples/nixOS/iostat.yml -------------------------------------------------------------------------------- /examples/tutorial/tutorial1.yml: -------------------------------------------------------------------------------- 1 | samples: 2 | - name: tutorial1 3 | description: Tutorial 1 4 | interval: 1 5 | endIntervals: 5 6 | count: 1 7 | randomizeEvents: true 8 | 9 | tokens: 10 | - name: ts 11 | format: template 12 | type: timestamp 13 | replacement: "%b/%d/%y %H:%M:%S" 14 | 15 | lines: 16 | - _raw: $ts$ line1 17 | - _raw: $ts$ line2 18 | - _raw: $ts$ line3 -------------------------------------------------------------------------------- /examples/tutorial/tutorial3/raters/eventrater.yml: -------------------------------------------------------------------------------- 1 | name: eventrater 2 | type: config 3 | options: 4 | MinuteOfHour: 5 | 0: 1.0 6 | 1: 0.5 7 | 2: 2.0 -------------------------------------------------------------------------------- /examples/tutorial/tutorial3/samples/markets.csv: -------------------------------------------------------------------------------- 1 | zip,city,state,lat,long,county 2 | 1101,SPRINGFIELD,MA,42.106,-72.5977,HAMPDEN 3 | 1601,WORCESTER,MA,42.2621,-71.8034,WORCESTER 4 | 1801,WOBURN,MA,42.482894,-71.157404,MIDDLESEX 5 | 2123,BOSTON,MA,42.345,-71.0876,SUFFOLK 6 | 3101,MANCHESTER,NH,42.992858,-71.463255,HILLSBOROUGH 7 | 4101,PORTLAND,ME,43.660564,-70.258864,CUMBERLAND 8 | 5601,MONTPELIER,VT,44.2574,-72.5698,WASHINGTON 9 | 6101,HARTFORD,CT,41.7636,-72.6855,HARTFORD 10 | 6107,WEST HARTFORD,CT,41.755553,-72.75322,HARTFORD -------------------------------------------------------------------------------- /examples/tutorial/tutorial3/samples/usernames.sample: -------------------------------------------------------------------------------- 1 | birodivulga162 2 | nildajcbonanno 3 | ivettaadelima 4 | pckomono 5 | Looreeto 6 | JooPedro1591 7 | claaarecurlingg 8 | acciokcavote 9 | JungD 10 | InaraAllves 11 | Haroldmcaol 12 | xNessaa 13 | stylesdofunk 14 | meltemmeltemm 15 | emapujig 16 | cellphones4deal 17 | amisisuvi 18 | MegSeecharran95 19 | MargueritaYociu 20 | MarcioBFasano -------------------------------------------------------------------------------- /examples/tutorial/tutorial5.yml: -------------------------------------------------------------------------------- 1 | samples: 2 | - name: tutorial5 3 | generator: replay 4 | 5 | tokens: 6 | - name: ts1 7 | type: timestamp 8 | format: regex 9 | token: (\d{2}\/\w{3}\/\d{4}:\d{2}:\d{2}:\d{2}) 10 | replacement: '%d/%b/%Y:%H:%M:%S' 11 | fromSample: results.csv -------------------------------------------------------------------------------- /examples/tutorial/tutorial6.yml: -------------------------------------------------------------------------------- 1 | mix: 2 | - sample: $GOGEN_HOME/examples/tutorial/tutorial1.yml 3 | begin: now 4 | realtime: true 5 | count: 1 6 | interval: 1 7 | - sample: $GOGEN_HOME/examples/tutorial/tutorial2.yml 8 | begin: now 9 | realtime: true 10 | count: 1 11 | interval: 1 12 | - sample: $GOGEN_HOME/examples/tutorial/tutorial5.yml 13 | begin: now 14 | realtime: true -------------------------------------------------------------------------------- /examples/weblog/weblog.yml: -------------------------------------------------------------------------------- 1 | global: 2 | samplesDir: 3 | - $GOGEN_HOME/examples/common 4 | samples: 5 | - name: weblog 6 | fromSample: weblog-common 7 | interval: 1 8 | endIntervals: 1 9 | count: 10 10 | -------------------------------------------------------------------------------- /generator/primerater.go: -------------------------------------------------------------------------------- 1 | package generator 2 | 3 | import ( 4 | config "github.com/coccyx/gogen/internal" 5 | log "github.com/coccyx/gogen/logger" 6 | "github.com/coccyx/gogen/rater" 7 | ) 8 | 9 | // PrimeRater ensures for a given sample, all raters are set for the tokens 10 | func PrimeRater(s *config.Sample) { 11 | for i := 0; i < len(s.Tokens); i++ { 12 | t := s.Tokens[i] 13 | if t.Type == "rated" { 14 | if t.RaterString != "" && t.Rater == nil { 15 | log.Infof("Setting rater to %s for token '%s'", t.RaterString, t.Name) 16 | s.Tokens[i].Rater = rater.GetRater(t.RaterString) 17 | if s.Tokens[i].Rater == nil { 18 | log.Errorf("Rater %s not found, disabling sample %s", t.RaterString, s.Name) 19 | s.Disabled = true 20 | } 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /generator/primerater_test.go: -------------------------------------------------------------------------------- 1 | package generator 2 | 3 | import ( 4 | "os" 5 | "path/filepath" 6 | "testing" 7 | 8 | config "github.com/coccyx/gogen/internal" 9 | "github.com/stretchr/testify/assert" 10 | ) 11 | 12 | func TestPrimeRater(t *testing.T) { 13 | // Setup environment 14 | os.Setenv("GOGEN_HOME", "..") 15 | os.Setenv("GOGEN_ALWAYS_REFRESH", "1") 16 | home := ".." 17 | os.Setenv("GOGEN_FULLCONFIG", filepath.Join(home, "tests", "rater", "luarater.yml")) 18 | 19 | c := config.NewConfig() 20 | s := c.FindSampleByName("double") 21 | PrimeRater(s) 22 | for _, token := range s.Tokens { 23 | if token.Name == "multiply" { 24 | assert.NotNil(t, token.Rater) 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /gogen-api/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM public.ecr.aws/lambda/python:3.13 2 | 3 | # Copy requirements.txt 4 | COPY requirements.txt ${LAMBDA_TASK_ROOT} 5 | 6 | # Install the specified packages 7 | RUN pip install -r requirements.txt -t ${LAMBDA_TASK_ROOT} 8 | 9 | # Copy function code 10 | COPY api/ ${LAMBDA_TASK_ROOT}/ 11 | 12 | # Set the CMD to your handler 13 | CMD [ "get.lambda_handler" ] -------------------------------------------------------------------------------- /gogen-api/api/logger.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import sys 3 | import os 4 | 5 | def setup_logger(name): 6 | """ 7 | Set up a logger with consistent formatting and configuration 8 | """ 9 | # Create logger 10 | logger = logging.getLogger(name) 11 | logger.setLevel(logging.DEBUG) 12 | 13 | # Only add handler if logger doesn't already have handlers 14 | if not logger.handlers: 15 | # Create console handler 16 | handler = logging.StreamHandler(sys.stdout) 17 | 18 | # Create formatter 19 | formatter = logging.Formatter( 20 | '%(asctime)s - %(name)s - %(levelname)s - %(message)s' 21 | ) 22 | 23 | # Add formatter to handler 24 | handler.setFormatter(formatter) 25 | 26 | # Add handler to logger 27 | logger.addHandler(handler) 28 | 29 | # Prevent propagation to avoid duplicate logs 30 | logger.propagate = False 31 | 32 | return logger -------------------------------------------------------------------------------- /gogen-api/requirements.txt: -------------------------------------------------------------------------------- 1 | boto3>=1.34.0 2 | botocore>=1.34.0 3 | aws-sam-cli>=1.110.0 -------------------------------------------------------------------------------- /gogen-api/setup_local_db.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Make sure we're in the right directory 4 | cd "$(dirname "$0")" 5 | 6 | # Check if virtual environment is activated, if not activate it 7 | if [ -z "$VIRTUAL_ENV" ]; then 8 | VENV_PATH="/home/clint/local/src/gogen/.pyvenv" 9 | if [ -d "$VENV_PATH" ]; then 10 | echo "Activating Python virtual environment..." 11 | source "$VENV_PATH/bin/activate" 12 | else 13 | echo "Warning: Python virtual environment not found at $VENV_PATH" 14 | echo "Consider creating it with: python3 -m venv $VENV_PATH" 15 | fi 16 | fi 17 | 18 | # Get the schema 19 | echo "Getting table schema..." 20 | python get_schema.py 21 | 22 | # Create the table in local DynamoDB using the schema 23 | echo "Creating table in local DynamoDB using schema..." 24 | LOCAL_DYNAMODB=true python create_local_table.py 25 | 26 | echo "Local DynamoDB setup complete!" -------------------------------------------------------------------------------- /gogen-api/stop_dev.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd "$(dirname "$0")" 4 | docker compose down 5 | docker ps | grep ecr | awk '{print $1}' | xargs docker kill 6 | docker ps | grep dynamodb | awk '{print $1}' | xargs docker kill 7 | docker ps | grep minio | awk '{print $1}' | xargs docker kill 8 | 9 | -------------------------------------------------------------------------------- /gogen-api/table_schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "TableName": "gogen", 3 | "KeySchema": [ 4 | { 5 | "AttributeName": "gogen", 6 | "KeyType": "HASH" 7 | } 8 | ], 9 | "AttributeDefinitions": [ 10 | { 11 | "AttributeName": "gogen", 12 | "AttributeType": "S" 13 | } 14 | ], 15 | "ProvisionedThroughput": { 16 | "ReadCapacityUnits": 1, 17 | "WriteCapacityUnits": 1 18 | } 19 | } -------------------------------------------------------------------------------- /internal/cache.go: -------------------------------------------------------------------------------- 1 | package internal 2 | 3 | import ( 4 | "sync" 5 | ) 6 | 7 | // CacheItem represents whether to cache a given item, created in the original timer which generates 8 | // a GenQueueItem. It's also sent along with the OutQueueItem. 9 | type CacheItem struct { 10 | sync.RWMutex 11 | UseCache bool 12 | SetCache bool 13 | } 14 | -------------------------------------------------------------------------------- /internal/mix.go: -------------------------------------------------------------------------------- 1 | package internal 2 | 3 | // Mix is a list of configurations and overrides for those configurations to allow users to assemble new derived configurations from a mix of other existing configs 4 | type Mix struct { 5 | Sample string `json:"sample" yaml:"sample"` 6 | Interval int `json:"interval,omitempty" yaml:"interval,omitempty"` 7 | Count int `json:"count,omitempty" yaml:"count,omitempty"` 8 | Begin string `json:"begin,omitempty" yaml:"begin,omitempty"` 9 | End string `json:"end,omitempty" yaml:"end,omitempty"` 10 | EndIntervals int `json:"endIntervals,omitempty" yaml:"endIntervals,omitempty"` 11 | Realtime bool `json:"realtime,omitempty" yaml:"realtime,omitempty"` 12 | } 13 | -------------------------------------------------------------------------------- /internal/outputter.go: -------------------------------------------------------------------------------- 1 | package internal 2 | 3 | import ( 4 | "io" 5 | "math/rand" 6 | ) 7 | 8 | // OutQueueItem represents one batch of events to output 9 | type OutQueueItem struct { 10 | S *Sample 11 | Events []map[string]string 12 | Rand *rand.Rand 13 | IO *OutputIO 14 | OS chan *OutputStats 15 | Cache *CacheItem 16 | } 17 | 18 | // OutputStats are sent by each outputter to the ReadOutThread for accounting 19 | type OutputStats struct { 20 | EventsWritten int64 21 | BytesWritten int64 22 | SampleName string 23 | } 24 | 25 | // OutputIO contains our Readers and Writers 26 | type OutputIO struct { 27 | R io.Reader 28 | W io.WriteCloser 29 | } 30 | 31 | // NewOutputIO returns a freshly initialized pipe and TeeReader 32 | func NewOutputIO() *OutputIO { 33 | o := new(OutputIO) 34 | o.R, o.W = io.Pipe() 35 | return o 36 | } 37 | 38 | // Outputter will do the work of actually sending events 39 | type Outputter interface { 40 | Send(item *OutQueueItem) error 41 | Close() error 42 | } 43 | -------------------------------------------------------------------------------- /internal/outputter_test.go: -------------------------------------------------------------------------------- 1 | package internal 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/stretchr/testify/assert" 7 | ) 8 | 9 | func TestNewOutputIO(t *testing.T) { 10 | io := NewOutputIO() 11 | assert.NotNil(t, io) 12 | } 13 | -------------------------------------------------------------------------------- /internal/rater.go: -------------------------------------------------------------------------------- 1 | package internal 2 | 3 | import "time" 4 | 5 | // RaterConfig defines how to rate an event or token 6 | type RaterConfig struct { 7 | Name string `json:"name" yaml:"name"` 8 | Type string `json:"type" yaml:"type"` 9 | Script string `json:"script,omitempty" yaml:"script,omitempty"` 10 | Options map[string]interface{} `json:"options,omitempty" yaml:"options,omitempty"` 11 | Init map[string]string `json:"init,omitempty" yaml:"init,omitempty"` 12 | } 13 | 14 | // Rater will rate an event according to RaterConfig 15 | type Rater interface { 16 | EventRate(s *Sample, now time.Time, count int) float64 17 | TokenRate(t Token, now time.Time) float64 18 | } 19 | -------------------------------------------------------------------------------- /internal/template.go: -------------------------------------------------------------------------------- 1 | package internal 2 | 3 | // Template is used for describing a output text template 4 | type Template struct { 5 | Name string `json:"name" yaml:"name"` 6 | Header string `json:"header,omitempty" yaml:"header,omitempty"` 7 | Row string `json:"row" yaml:"row"` 8 | Footer string `json:"footer,omitempty" yaml:"footer,omitempty"` 9 | } 10 | -------------------------------------------------------------------------------- /llmcontext/requirements.txt: -------------------------------------------------------------------------------- 1 | pyyaml>=6.0.1 2 | markdown>=3.5.2 -------------------------------------------------------------------------------- /llmcontext/setup_venv.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Get the script's directory and the root directory 4 | SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" 5 | ROOT_DIR="$(dirname "$SCRIPT_DIR")" 6 | VENV_DIR="$ROOT_DIR/.pyvenv" 7 | 8 | # Remove existing virtual environment if it exists 9 | rm -rf "$VENV_DIR" 10 | 11 | # Create new virtual environment 12 | python3 -m venv "$VENV_DIR" 13 | 14 | # Activate virtual environment 15 | source "$VENV_DIR/bin/activate" 16 | 17 | # Upgrade pip 18 | pip install --upgrade pip 19 | 20 | # Install requirements from llmcontext directory 21 | pip install -r "$SCRIPT_DIR/requirements.txt" 22 | 23 | echo "Virtual environment setup complete in $VENV_DIR" -------------------------------------------------------------------------------- /outputter/buf.go: -------------------------------------------------------------------------------- 1 | package outputter 2 | 3 | import ( 4 | "io" 5 | 6 | config "github.com/coccyx/gogen/internal" 7 | ) 8 | 9 | type buf struct{} 10 | 11 | func (foo buf) Send(item *config.OutQueueItem) error { 12 | _, err := io.Copy(item.S.Buf, item.IO.R) 13 | return err 14 | } 15 | 16 | func (foo buf) Close() error { 17 | return nil 18 | } 19 | -------------------------------------------------------------------------------- /outputter/devnull.go: -------------------------------------------------------------------------------- 1 | package outputter 2 | 3 | import ( 4 | "io" 5 | "io/ioutil" 6 | 7 | config "github.com/coccyx/gogen/internal" 8 | ) 9 | 10 | type devnull struct{} 11 | 12 | func (foo devnull) Send(item *config.OutQueueItem) error { 13 | _, err := io.Copy(ioutil.Discard, item.IO.R) 14 | return err 15 | } 16 | 17 | func (foo devnull) Close() error { 18 | return nil 19 | } 20 | -------------------------------------------------------------------------------- /outputter/network.go: -------------------------------------------------------------------------------- 1 | package outputter 2 | 3 | import ( 4 | "io" 5 | "math/rand" 6 | "net" 7 | 8 | config "github.com/coccyx/gogen/internal" 9 | ) 10 | 11 | type network struct { 12 | conn net.Conn 13 | initialized bool 14 | } 15 | 16 | func (n *network) Send(item *config.OutQueueItem) error { 17 | if n.initialized == false { 18 | endpoint := item.S.Output.Endpoints[rand.Intn(len(item.S.Output.Endpoints))] 19 | conn, err := net.DialTimeout(item.S.Output.Protocol, endpoint, item.S.Output.Timeout) 20 | if err != nil { 21 | return err 22 | } 23 | n.conn = conn 24 | n.initialized = true 25 | } 26 | _, err := io.Copy(n.conn, item.IO.R) 27 | return err 28 | } 29 | 30 | func (n *network) Close() error { 31 | if n.conn != nil { 32 | n.conn.Close() 33 | n.conn = nil 34 | } 35 | n.initialized = false 36 | return nil 37 | } 38 | -------------------------------------------------------------------------------- /outputter/stdout.go: -------------------------------------------------------------------------------- 1 | package outputter 2 | 3 | import ( 4 | "io" 5 | "os" 6 | 7 | config "github.com/coccyx/gogen/internal" 8 | ) 9 | 10 | type stdout struct{} 11 | 12 | func (foo stdout) Send(item *config.OutQueueItem) error { 13 | _, err := io.Copy(os.Stdout, item.IO.R) 14 | 15 | return err 16 | } 17 | 18 | func (foo stdout) Close() error { 19 | return nil 20 | } 21 | -------------------------------------------------------------------------------- /rater/default.go: -------------------------------------------------------------------------------- 1 | package rater 2 | 3 | import ( 4 | "time" 5 | 6 | config "github.com/coccyx/gogen/internal" 7 | ) 8 | 9 | // DefaultRater simply returns the passed count 10 | type DefaultRater struct { 11 | c *config.RaterConfig 12 | } 13 | 14 | // EventRate takes a given sample and current count and returns the rated count 15 | func (dr *DefaultRater) EventRate(s *config.Sample, now time.Time, count int) float64 { 16 | return 1.0 17 | } 18 | 19 | // TokenRate takes a token and returns the rated value 20 | func (dr *DefaultRater) TokenRate(t config.Token, now time.Time) float64 { 21 | return 1.0 22 | } 23 | -------------------------------------------------------------------------------- /rater/default_test.go: -------------------------------------------------------------------------------- 1 | package rater 2 | 3 | import ( 4 | "os" 5 | "path/filepath" 6 | "testing" 7 | "time" 8 | 9 | config "github.com/coccyx/gogen/internal" 10 | "github.com/stretchr/testify/assert" 11 | ) 12 | 13 | func TestDefaultRaterEventRate(t *testing.T) { 14 | // Setup environment 15 | os.Setenv("GOGEN_HOME", "..") 16 | os.Setenv("GOGEN_ALWAYS_REFRESH", "1") 17 | home := ".." 18 | os.Setenv("GOGEN_FULLCONFIG", filepath.Join(home, "tests", "rater", "defaultrater.yml")) 19 | 20 | c := config.NewConfig() 21 | r := c.FindRater("default") 22 | assert.Equal(t, "default", r.Name) 23 | s := c.FindSampleByName("defaultrater") 24 | assert.Equal(t, "default", s.RaterString) 25 | ret := EventRate(s, time.Now(), 1) 26 | assert.IsType(t, &DefaultRater{}, s.Rater) 27 | assert.True(t, assert.ObjectsAreEqual(r, s.Rater.(*DefaultRater).c)) 28 | assert.Equal(t, 1, ret) 29 | } 30 | -------------------------------------------------------------------------------- /rater/kbps_test.go: -------------------------------------------------------------------------------- 1 | package rater 2 | 3 | import ( 4 | "os" 5 | "path/filepath" 6 | "testing" 7 | "time" 8 | 9 | config "github.com/coccyx/gogen/internal" 10 | "github.com/stretchr/testify/assert" 11 | ) 12 | 13 | func TestKBpsRaterEventRate(t *testing.T) { 14 | // Setup environment 15 | os.Setenv("GOGEN_HOME", "..") 16 | os.Setenv("GOGEN_ALWAYS_REFRESH", "1") 17 | home := ".." 18 | os.Setenv("GOGEN_FULLCONFIG", filepath.Join(home, "tests", "rater", "kbpsrater.yml")) 19 | 20 | c := config.NewConfig() 21 | r := c.FindRater("kbpsrater") 22 | assert.Equal(t, "kbpsrater", r.Name) 23 | s := c.FindSampleByName("kbpsrater") 24 | assert.Equal(t, "kbpsrater", s.RaterString) 25 | 26 | loc, _ := time.LoadLocation("Local") 27 | n := time.Date(2001, 10, 20, 0, 0, 0, 100000, loc) 28 | now := func() time.Time { 29 | return n 30 | } 31 | ret := EventRate(s, now(), 1) 32 | assert.Equal(t, 1, ret) 33 | } 34 | 35 | -------------------------------------------------------------------------------- /rater/rater_test.go: -------------------------------------------------------------------------------- 1 | package rater 2 | 3 | import ( 4 | "testing" 5 | "time" 6 | 7 | config "github.com/coccyx/gogen/internal" 8 | "github.com/stretchr/testify/assert" 9 | ) 10 | 11 | func TestRandomizeCount(t *testing.T) { 12 | s := &config.Sample{RandomizeCount: 0.2} 13 | randSource = 2 14 | count := EventRate(s, time.Now(), 10) 15 | assert.Equal(t, 11, count) 16 | } 17 | -------------------------------------------------------------------------------- /rater/script_test.go: -------------------------------------------------------------------------------- 1 | package rater 2 | 3 | import ( 4 | "os" 5 | "path/filepath" 6 | "testing" 7 | "time" 8 | 9 | config "github.com/coccyx/gogen/internal" 10 | "github.com/stretchr/testify/assert" 11 | ) 12 | 13 | 14 | func TestScriptRaterEventRate(t *testing.T) { 15 | // Setup environment 16 | os.Setenv("GOGEN_HOME", "..") 17 | os.Setenv("GOGEN_ALWAYS_REFRESH", "1") 18 | home := ".." 19 | os.Setenv("GOGEN_FULLCONFIG", filepath.Join(home, "tests", "rater", "luarater.yml")) 20 | 21 | c := config.NewConfig() 22 | r := c.FindRater("multiply") 23 | assert.Equal(t, "multiply", r.Name) 24 | s := c.FindSampleByName("double") 25 | assert.Equal(t, "multiply", s.RaterString) 26 | ret := EventRate(s, time.Now(), 1) 27 | assert.IsType(t, &ScriptRater{}, s.Rater) 28 | assert.True(t, assert.ObjectsAreEqual(r, s.Rater.(*ScriptRater).c)) 29 | assert.Equal(t, 2, ret) 30 | } 31 | -------------------------------------------------------------------------------- /tests/concat_test.go: -------------------------------------------------------------------------------- 1 | package tests 2 | 3 | import ( 4 | "bytes" 5 | "strings" 6 | "testing" 7 | ) 8 | 9 | func BenchmarkStringConcat(b *testing.B) { 10 | for n := 0; n < b.N; n++ { 11 | x := "a" 12 | y := "b" 13 | z := "c" 14 | _ = x + y + z 15 | } 16 | } 17 | 18 | func BenchmarkStringsJoin(b *testing.B) { 19 | for n := 0; n < b.N; n++ { 20 | x := "a" 21 | y := "b" 22 | z := "c" 23 | _ = strings.Join([]string{x, y, z}, "") 24 | } 25 | } 26 | 27 | func BenchmarkStringByteConcat(b *testing.B) { 28 | for n := 0; n < b.N; n++ { 29 | x := []byte("a") 30 | y := []byte("b") 31 | z := []byte("c") 32 | a := append(x, y...) 33 | _ = append(a, z...) 34 | } 35 | } 36 | 37 | func BenchmarkStringByteConcatJoin(b *testing.B) { 38 | x := []byte("a") 39 | y := []byte("b") 40 | z := []byte("c") 41 | for n := 0; n < b.N; n++ { 42 | _ = bytes.Join([][]byte{x, y, z}, []byte("")) 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /tests/file_test.go: -------------------------------------------------------------------------------- 1 | package tests 2 | 3 | import ( 4 | "os" 5 | "path/filepath" 6 | "strconv" 7 | "testing" 8 | 9 | config "github.com/coccyx/gogen/internal" 10 | "github.com/coccyx/gogen/run" 11 | "github.com/stretchr/testify/assert" 12 | ) 13 | 14 | func TestFileOutput(t *testing.T) { 15 | config.SetupFromFile(filepath.Join("..", "tests", "fileoutput", "fileoutput.yml")) 16 | c := config.NewConfig() 17 | // s := c.FindSampleByName("backfill") 18 | run.Run(c) 19 | 20 | info, err := os.Stat(c.Global.Output.FileName) 21 | assert.NoError(t, err) 22 | assert.Condition(t, func() bool { 23 | return info.Size() < c.Global.Output.MaxBytes 24 | }, "Rotation failing, main file size of %d greater than MaxBytes %d", info.Size(), c.Global.Output.MaxBytes) 25 | for i := 1; i <= c.Global.Output.BackupFiles; i++ { 26 | info, err = os.Stat(c.Global.Output.FileName + "." + strconv.Itoa(i)) 27 | assert.NoError(t, err) 28 | assert.Condition(t, func() bool { 29 | return info.Size() > c.Global.Output.MaxBytes 30 | }, "Rotation failing, file %d less than MaxBytes", i) 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /tests/flatten/flatten.yml: -------------------------------------------------------------------------------- 1 | name: flatten 2 | lines: 3 | - "_raw": foo -------------------------------------------------------------------------------- /tests/generator/generator.lua: -------------------------------------------------------------------------------- 1 | return options["foo"] + state["somevar"] -------------------------------------------------------------------------------- /tests/generator/generator.yml: -------------------------------------------------------------------------------- 1 | generators: 2 | - name: custom 3 | options: 4 | foo: bar 5 | init: 6 | somevar: 1 7 | script: > 8 | return options["foo"] + state["somevar"] 9 | singleThreaded: false 10 | samples: 11 | - name: generator 12 | generator: custom 13 | interval: 1 14 | endIntervals: 5 -------------------------------------------------------------------------------- /tests/generator/generatorFile.yml: -------------------------------------------------------------------------------- 1 | generators: 2 | - name: custom 3 | options: 4 | foo: bar 5 | init: 6 | somevar: 1 7 | fileName: $GOGEN_HOME/tests/generator/generator.lua 8 | singleThreaded: false 9 | samples: 10 | - name: generator 11 | generator: custom 12 | interval: 1 13 | endIntervals: 5 -------------------------------------------------------------------------------- /tests/generator/realGenerator.yml: -------------------------------------------------------------------------------- 1 | generators: 2 | - name: custom 3 | init: 4 | cur: 0 5 | fileName: $GOGEN_HOME/tests/generator/realgen.lua 6 | singleThreaded: false 7 | samples: 8 | - name: generator 9 | generator: custom 10 | interval: 1 11 | endIntervals: 6 12 | tokens: 13 | - name: ts-dmyhmsms-template 14 | format: template 15 | token: $ts$ 16 | type: gotimestamp 17 | replacement: "02/Jan/2006 03:04:05" 18 | lines: 19 | - _raw: $ts$ walked in 20 | - _raw: $ts$ sat down 21 | - _raw: $ts$ on the group w bench 22 | -------------------------------------------------------------------------------- /tests/mix/mix1.yml: -------------------------------------------------------------------------------- 1 | mix: 2 | - sample: $GOGEN_HOME/tests/mix/sample1.yml 3 | - sample: $GOGEN_HOME/tests/mix/sample2.yml 4 | - sample: $GOGEN_HOME/tests/mix/sample3.yml -------------------------------------------------------------------------------- /tests/mix/mix2.yml: -------------------------------------------------------------------------------- 1 | mix: 2 | - sample: $GOGEN_HOME/tests/mix/sample1.yml 3 | count: 1 4 | interval: 1 5 | - sample: $GOGEN_HOME/tests/mix/sample2.yml 6 | count: 2 7 | interval: 2 8 | - sample: $GOGEN_HOME/tests/mix/sample3.yml 9 | count: 3 10 | interval: 3 11 | endIntervals: 3 -------------------------------------------------------------------------------- /tests/mix/sample1.yml: -------------------------------------------------------------------------------- 1 | samples: 2 | - name: sample1 3 | interval: 1 4 | endIntervals: 5 5 | count: 2 6 | randomizeEvents: true 7 | 8 | tokens: 9 | - name: ts 10 | format: template 11 | type: timestamp 12 | replacement: "%b/%d/%y %H:%M:%S" 13 | 14 | lines: 15 | - _raw: $ts$ sample1-1 16 | - _raw: $ts$ sample1-2 17 | - _raw: $ts$ sample1-3 -------------------------------------------------------------------------------- /tests/mix/sample2.yml: -------------------------------------------------------------------------------- 1 | samples: 2 | - name: sample2 3 | interval: 1 4 | endIntervals: 5 5 | count: 1 6 | randomizeEvents: true 7 | 8 | tokens: 9 | - name: ts 10 | format: template 11 | type: timestamp 12 | replacement: "%b/%d/%y %H:%M:%S" 13 | 14 | lines: 15 | - _raw: $ts$ sample2-1 16 | - _raw: $ts$ sample2-2 17 | - _raw: $ts$ sample2-3 -------------------------------------------------------------------------------- /tests/mix/sample3.yml: -------------------------------------------------------------------------------- 1 | generators: 2 | - name: sample3 3 | script: | 4 | l = { _raw="$ts$ sample3-1 "} 5 | l = replaceTokens(l) 6 | events = { } 7 | table.insert(events, l) 8 | send(events) 9 | samples: 10 | - name: sample3 11 | generator: sample3 12 | interval: 1 13 | endIntervals: 5 14 | count: 1 15 | randomizeEvents: true 16 | 17 | tokens: 18 | - name: ts 19 | format: template 20 | type: timestamp 21 | replacement: "%b/%d/%y %H:%M:%S" 22 | -------------------------------------------------------------------------------- /tests/outputcache_test.go: -------------------------------------------------------------------------------- 1 | package tests 2 | 3 | import ( 4 | "testing" 5 | 6 | config "github.com/coccyx/gogen/internal" 7 | "github.com/coccyx/gogen/run" 8 | "github.com/stretchr/testify/assert" 9 | ) 10 | 11 | func TestOutputCache(t *testing.T) { 12 | configStr := ` 13 | global: 14 | output: 15 | outputter: buf 16 | cacheIntervals: 2 17 | samples: 18 | - name: outputcache 19 | begin: "2001-10-20 12:00:00" 20 | end: "2001-10-20 12:00:04" 21 | interval: 1 22 | count: 1 23 | tokens: 24 | - name: ts1 25 | type: timestamp 26 | replacement: "%Y-%m-%dT%H:%M:%S" 27 | token: $ts1$ 28 | format: template 29 | lines: 30 | - "_raw": "$ts1$" 31 | ` 32 | 33 | config.SetupFromString(configStr) 34 | 35 | c := config.NewConfig() 36 | run.Run(c) 37 | 38 | assert.Equal(t, `2001-10-20T12:00:00 39 | 2001-10-20T12:00:00 40 | 2001-10-20T12:00:00 41 | 2001-10-20T12:00:03 42 | `, c.Buf.String()) 43 | 44 | config.CleanupConfigAndEnvironment() 45 | } 46 | -------------------------------------------------------------------------------- /tests/perf/weblog-splunk.yml: -------------------------------------------------------------------------------- 1 | global: 2 | samplesDir: 3 | - $GOGEN_HOME/examples/common 4 | generatorWorkers: 5 5 | outputWorkers: 16 6 | rotInterval: 1 7 | output: 8 | outputter: http 9 | outputTemplate: json 10 | endpoints: 11 | - http://localhost:8088/services/collector/event 12 | headers: 13 | Authorization: Splunk 00112233-4455-6677-8899-AABBCCDDEEFF 14 | samples: 15 | - name: weblog 16 | fromSample: weblog-common 17 | -------------------------------------------------------------------------------- /tests/perf/weblog.yml: -------------------------------------------------------------------------------- 1 | global: 2 | samplesDir: 3 | - $GOGEN_HOME/examples/common 4 | generatorWorkers: 6 5 | outputWorkers: 1 6 | rotInterval: 1 7 | samples: 8 | - name: weblog 9 | fromSample: weblog-common -------------------------------------------------------------------------------- /tests/push_test.go: -------------------------------------------------------------------------------- 1 | package tests 2 | 3 | // import ( 4 | // "os" 5 | // "path/filepath" 6 | // "testing" 7 | 8 | // config "github.com/coccyx/gogen/internal" 9 | // "github.com/coccyx/gogen/run" 10 | // ) 11 | 12 | // func TestSharePush(t *testing.T) { 13 | // config.ResetConfig() 14 | // os.Setenv("GOGEN_HOME", "..") 15 | // os.Setenv("GOGEN_ALWAYS_REFRESH", "") 16 | // home := ".." 17 | // os.Setenv("GOGEN_FULLCONFIG", filepath.Join(home, "examples", "weblog", "weblog.yml")) 18 | // os.Setenv("GOGEN_EXPORT", "1") 19 | // _ = config.NewConfig() 20 | // var r run.Runner 21 | // config.Push("weblog", r) 22 | // os.Setenv("GOGEN_EXPORT", "") 23 | // } 24 | -------------------------------------------------------------------------------- /tests/rater/defaultrater.yml: -------------------------------------------------------------------------------- 1 | samples: 2 | - name: defaultrater 3 | count: 1 4 | lines: 5 | - "_raw": foo -------------------------------------------------------------------------------- /tests/rater/kbpsrater.yml: -------------------------------------------------------------------------------- 1 | samples: 2 | - name: kbpsrater 3 | rater: kbpsrater 4 | count: 1 5 | lines: 6 | - "_raw": foo 7 | raters: 8 | - name: kbpsrater 9 | type: kbps 10 | options: 11 | KBps: 1.0 -------------------------------------------------------------------------------- /tests/rater/luarater.yml: -------------------------------------------------------------------------------- 1 | global: 2 | output: 3 | outputter: buf 4 | samples: 5 | - name: double 6 | rater: multiply 7 | count: 1 8 | endIntervals: 1 9 | tokens: 10 | - name: multiply 11 | format: template 12 | type: rated 13 | rater: multiply 14 | replacement: int 15 | upper: 1 16 | lower: 1 17 | lines: 18 | - "_raw": value=$multiply$ 19 | raters: 20 | - name: multiply 21 | type: script 22 | script: > 23 | return options["multiplier"] 24 | options: 25 | multiplier: 2 -------------------------------------------------------------------------------- /tests/replay/bad-epoch-timestamp.yml: -------------------------------------------------------------------------------- 1 | name: bad-epoch-timestamp 2 | generator: replay 3 | tokens: 4 | - name: ts1 5 | type: epochtimestamp 6 | format: regex 7 | token: "(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2})" 8 | lines: 9 | - "_raw": "2001-10-20T12:00:00" -------------------------------------------------------------------------------- /tests/replay/bad-go-timestamp.yml: -------------------------------------------------------------------------------- 1 | name: bad-go-timestamp 2 | generator: replay 3 | tokens: 4 | - name: ts1 5 | type: gotimestamp 6 | replacement: "bad" 7 | format: regex 8 | token: "(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2})" 9 | lines: 10 | - "_raw": "2001-10-20T12:00:00" -------------------------------------------------------------------------------- /tests/replay/bad-strptime-timestamp.yml: -------------------------------------------------------------------------------- 1 | name: bad-strptime-timestamp 2 | generator: replay 3 | tokens: 4 | - name: ts1 5 | type: timestamp 6 | replacement: "bad" 7 | format: regex 8 | token: "(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2})" 9 | lines: 10 | - "_raw": "2001-10-20T12:00:00" -------------------------------------------------------------------------------- /tests/replay/no-offsets-found.yml: -------------------------------------------------------------------------------- 1 | name: no-offsets-found 2 | generator: replay 3 | tokens: 4 | - name: ts1 5 | type: timestamp 6 | replacement: "%Y-%m-%dT%H:%M:%S" 7 | format: regex 8 | token: "\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}" 9 | lines: 10 | - "_raw": nope -------------------------------------------------------------------------------- /tests/replay/replay5.yml: -------------------------------------------------------------------------------- 1 | name: replay5 2 | generator: replay 3 | tokens: 4 | - name: ts1 5 | type: timestamp 6 | replacement: "%Y-%m-%dT%H:%M:%S" 7 | format: regex 8 | token: "(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2})" 9 | lines: 10 | - "_raw": "2001-10-20T12:00:00" 11 | - "_raw": "2001-10-20T12:00:01" 12 | - "_raw": "2001-10-20T12:00:06" 13 | - "_raw": "2001-10-20T12:00:16" 14 | - "_raw": "2001-10-20T12:00:36" -------------------------------------------------------------------------------- /tests/scripttokenrater_test.go: -------------------------------------------------------------------------------- 1 | package tests 2 | 3 | import ( 4 | "os" 5 | "path/filepath" 6 | "testing" 7 | 8 | config "github.com/coccyx/gogen/internal" 9 | "github.com/coccyx/gogen/run" 10 | "github.com/stretchr/testify/assert" 11 | ) 12 | 13 | func TestScriptRaterTokenRate(t *testing.T) { 14 | config.ResetConfig() 15 | // Setup environment 16 | os.Setenv("GOGEN_HOME", "..") 17 | os.Setenv("GOGEN_ALWAYS_REFRESH", "") 18 | home := ".." 19 | os.Setenv("GOGEN_FULLCONFIG", filepath.Join(home, "tests", "rater", "luarater.yml")) 20 | 21 | c := config.NewConfig() 22 | run.Run(c) 23 | 24 | assert.Equal(t, "value=2\nvalue=2\n", c.Buf.String()) 25 | } 26 | -------------------------------------------------------------------------------- /tests/singlepass/missed-regex.yml: -------------------------------------------------------------------------------- 1 | name: missed-regex 2 | tokens: 3 | - name: regex1 4 | type: static 5 | replacement: foo 6 | format: regex 7 | token: "^foo (\\w+)" 8 | - name: regex2 9 | type: static 10 | replacement: bar 11 | format: regex 12 | token: "^foo foo (\\w+)" 13 | lines: 14 | - "_raw": foo replaceme baz -------------------------------------------------------------------------------- /tests/singlepass/overlapping-regex.yml: -------------------------------------------------------------------------------- 1 | name: overlapping-regex 2 | tokens: 3 | - name: regex1 4 | type: static 5 | replacement: foo 6 | format: regex 7 | token: "^foo (\\w+)" 8 | - name: regex2 9 | type: static 10 | replacement: bar 11 | format: regex 12 | token: "^(foo replaceme)" 13 | lines: 14 | - "_raw": foo replaceme baz -------------------------------------------------------------------------------- /tests/singlepass/wide-regex.yml: -------------------------------------------------------------------------------- 1 | name: wide-regex 2 | tokens: 3 | - name: regex1 4 | type: static 5 | replacement: bar 6 | format: regex 7 | token: (foo) 8 | - name: regex2 9 | type: static 10 | replacement: bar 11 | format: regex 12 | token: (replaceme) 13 | - name: wide-regex 14 | type: static 15 | replacement: bar 16 | format: regex 17 | token: "(replaceme baz)" 18 | - name: regex2 19 | type: static 20 | replacement: foo 21 | format: regex 22 | token: "(baz)" 23 | lines: 24 | - "_raw": foo replaceme baz -------------------------------------------------------------------------------- /tests/strftime_test.go: -------------------------------------------------------------------------------- 1 | package tests 2 | 3 | import ( 4 | "testing" 5 | "time" 6 | 7 | strftime1 "github.com/cactus/gostrftime" 8 | strftime2 "github.com/hhkbp2/go-strftime" 9 | strftime3 "github.com/jehiah/go-strftime" 10 | ) 11 | 12 | func BenchmarkStrftime1(b *testing.B) { 13 | for n := 0; n < b.N; n++ { 14 | strftime1.Format("%Y-%m-%d %H:%M:%S,%L", time.Now()) 15 | } 16 | } 17 | 18 | func BenchmarkStrftime2(b *testing.B) { 19 | for n := 0; n < b.N; n++ { 20 | strftime2.Format("%Y-%m-%d %H:%M:%S,%L", time.Now()) 21 | } 22 | } 23 | 24 | func BenchmarkStrftime3(b *testing.B) { 25 | for n := 0; n < b.N; n++ { 26 | strftime3.Format("%Y-%m-%d %H:%M:%S,%L", time.Now()) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /tests/testfuncs.go: -------------------------------------------------------------------------------- 1 | package tests 2 | 3 | import ( 4 | "os" 5 | "path/filepath" 6 | 7 | config "github.com/coccyx/gogen/internal" 8 | ) 9 | 10 | // FindSampleInFile is used for tests to find a specific test file and reload config with it 11 | func FindSampleInFile(home string, name string) *config.Sample { 12 | os.Setenv("GOGEN_SAMPLES_DIR", filepath.Join(home, name+".yml")) 13 | c := config.NewConfig() 14 | // c.Log.Debugf("Pretty Values %# v\n", pretty.Formatter(c)) 15 | return c.FindSampleByName(name) 16 | } 17 | -------------------------------------------------------------------------------- /tests/testfuncs_test.go: -------------------------------------------------------------------------------- 1 | package tests 2 | 3 | import ( 4 | "os" 5 | "path/filepath" 6 | "testing" 7 | ) 8 | 9 | func TestFindSampleInFile(t *testing.T) { 10 | // Setup environment 11 | os.Setenv("GOGEN_HOME", "..") 12 | os.Setenv("GOGEN_ALWAYS_REFRESH", "1") 13 | os.Setenv("GOGEN_FULLCONFIG", "") 14 | home := filepath.Join("..", "tests", "tokens") 15 | os.Setenv("GOGEN_SAMPLES_DIR", home) 16 | 17 | s := FindSampleInFile(home, "token-static") 18 | if s == nil { 19 | t.Fatalf("Sample token-static not found in file: %s", home) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tests/timer/backfill.yml: -------------------------------------------------------------------------------- 1 | name: backfill 2 | begin: -1m 3 | end: -30s 4 | interval: 5 5 | tokens: 6 | - name: ts-ymdhmsms-regex.yml 7 | 8 | lines: 9 | - _raw: $ts$ -------------------------------------------------------------------------------- /tests/timer/backfillfutureend.yml: -------------------------------------------------------------------------------- 1 | name: backfillfutureend 2 | begin: -5s 3 | end: +5s 4 | interval: 1 5 | tokens: 6 | - name: ts-ymdhmsms-regex.yml 7 | 8 | lines: 9 | - _raw: $ts$ -------------------------------------------------------------------------------- /tests/timer/backfillrealtime.yml: -------------------------------------------------------------------------------- 1 | name: backfillrealtime 2 | begin: -1m 3 | interval: 2 4 | tokens: 5 | - name: ts-ymdhmsms-regex.yml 6 | 7 | lines: 8 | - _raw: $ts$ -------------------------------------------------------------------------------- /tests/timer/cachetimer.yml: -------------------------------------------------------------------------------- 1 | name: cachetimer 2 | begin: -1m 3 | end: now 4 | interval: 2 5 | 6 | lines: 7 | - _raw: $ts$ -------------------------------------------------------------------------------- /tests/timer/realtimereplay.yml: -------------------------------------------------------------------------------- 1 | name: realtimereplay 2 | begin: now 3 | generator: replay 4 | tokens: 5 | - name: ts1 6 | type: timestamp 7 | replacement: "%Y-%m-%dT%H:%M:%S" 8 | format: regex 9 | token: "(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2})" 10 | lines: 11 | - "_raw": "2001-10-20T12:00:00" 12 | - "_raw": "2001-10-20T12:00:01" 13 | - "_raw": "2001-10-20T12:00:03" -------------------------------------------------------------------------------- /tests/tokens/token-regex.yml: -------------------------------------------------------------------------------- 1 | name: token-regex 2 | tokens: 3 | - name: static 4 | type: static 5 | replacement: foo 6 | format: regex 7 | token: "^foo (\\w+)" 8 | - name: static2 9 | type: static 10 | replacement: bar 11 | format: regex 12 | token: "^foo foo (\\w+)" 13 | lines: 14 | - "_raw": foo replaceme baz -------------------------------------------------------------------------------- /tests/tokens/token-static.yml: -------------------------------------------------------------------------------- 1 | name: token-static 2 | tokens: 3 | - name: static 4 | type: static 5 | replacement: foo 6 | format: template 7 | token: $static$ 8 | lines: 9 | - "_raw": $static$ -------------------------------------------------------------------------------- /tests/tokens/tokens-find.yml: -------------------------------------------------------------------------------- 1 | name: tokens-find 2 | tokens: 3 | - name: template 4 | format: template 5 | type: static 6 | replacement: newfoo 7 | - name: regex 8 | format: regex 9 | token: "(\\$\\w+\\$)+" 10 | type: static 11 | replacement: newfoo 12 | lines: 13 | - "_raw": foo $template$ $template$ 14 | - "_raw": $template$ foo $template$ foo some other -------------------------------------------------------------------------------- /tests/transliterator/samples/artIDs.sample: -------------------------------------------------------------------------------- 1 | 0019 2 | 0018 3 | 0014 4 | 006 5 | 0026 6 | 0017 7 | 0016 8 | 0015 9 | 0027 10 | 007 11 | 0021 12 | 0011 13 | 0012 14 | 0013 15 | 0020 16 | 005 17 | 0044 18 | 001 19 | 0032 20 | 008 21 | 0022 -------------------------------------------------------------------------------- /tests/transliterator/samples/autoBillPayment.sample: -------------------------------------------------------------------------------- 1 | T 2 | T 3 | T 4 | T 5 | T 6 | T 7 | T 8 | T 9 | F 10 | F -------------------------------------------------------------------------------- /tests/transliterator/samples/categories.sample: -------------------------------------------------------------------------------- 1 | CASES 2 | DISPLAYPROTECT 3 | HEADSETS 4 | BLUETOOTH 5 | BATTERIES 6 | MEMORYCARDS 7 | CHARGERS 8 | HEADSETS 9 | MOUNTS 10 | ACCESSORIES 11 | -------------------------------------------------------------------------------- /tests/transliterator/samples/dbhosts.sample: -------------------------------------------------------------------------------- 1 | mysql-2.splunktel.com 2 | mysql-1.splunktel.com 3 | mysql-3.splunktel.com 4 | -------------------------------------------------------------------------------- /tests/transliterator/samples/items.sample: -------------------------------------------------------------------------------- 1 | EST-19 2 | EST-18 3 | EST-14 4 | EST-6 5 | EST-26 6 | EST-17 7 | EST-16 8 | EST-15 9 | EST-27 10 | EST-7 11 | EST-21 12 | EST-11 13 | EST-12 14 | EST-13 15 | EST-20 16 | EST-1 17 | 18 | -------------------------------------------------------------------------------- /tests/transliterator/samples/orderType.sample: -------------------------------------------------------------------------------- 1 | ChangeESN 2 | ChangeESN 3 | ChangeESN 4 | ChangeESN 5 | ChangeESN 6 | ChangeESN 7 | ChangeESN 8 | ChangeESN 9 | ChangeESN 10 | ChangeESN 11 | ChangeESN 12 | NewActivation 13 | NewActivation 14 | NewActivation 15 | NewActivation 16 | NewActivation 17 | NewActivation 18 | NewActivation 19 | NewActivation 20 | NewActivation 21 | RatePlanFeatureChange 22 | RatePlanFeatureChange 23 | RatePlanFeatureChange 24 | RatePlanFeatureChange 25 | RatePlanFeatureChange 26 | RatePlanFeatureChange 27 | FeatureChange 28 | FeatureChange 29 | FeatureChange 30 | FeatureChange 31 | FeatureChange 32 | FeatureChange 33 | AddLOS 34 | AddLOS 35 | MDNChange 36 | MDNChange 37 | DisconnectLOS 38 | DisconnectLOS 39 | DisconnectAccount 40 | -------------------------------------------------------------------------------- /tests/transliterator/samples/purchase_failure_mysql.sample: -------------------------------------------------------------------------------- 1 | index,host,source,sourcetype,_raw 2 | oidemo,localhost,/usr/local/mysql/logs/mysqld.log,mysql_config,091201 15:35:20 [CRITICAL] /opt/mysql/bin/mysqld: Disk is full writing '/mysqllog/binlog/localhost-3306-bin.000020' (Errcode: 28). Waiting for someone to free space... Retry in 60 secs 3 | oidemo,localhost,/usr/local/mysql/logs/mysqld.log,mysql_config,091201 15:35:30 [CRITICAL] Error writing file '/mysqllog/slow_log/localhost_3306_slow_queries.log' (errno: 1) 4 | oidemo,localhost,/usr/local/mysql/logs/mysqld.log,mysql_config,091201 15:35:41 [CRITICAL] Error writing file '/mysqllog/binlog/localhost-3306-bin' (errno: 28) 5 | oidemo,localhost,/usr/local/mysql/logs/mysqld.log,mysql_config,091201 15:36:00 [CRITICAL] Could not use /mysqllog/binlog/localhost-3306-bin for logging (error 28) 6 | oidemo,localhost,/usr/local/mysql/logs/mysqld.log,mysql_config,091201 15:36:01 [CRITICAL] Aborting 7 | oidemo,localhost,/usr/local/mysql/logs/mysqld.log,mysql_config,091201 15:36:05 [CRITICAL] ./mysqld: Shutdown complete 8 | -------------------------------------------------------------------------------- /tests/transliterator/samples/radPIDs.sample: -------------------------------------------------------------------------------- 1 | 2363 2 | 12676 3 | 12548 -------------------------------------------------------------------------------- /tests/transliterator/samples/radhosts.sample: -------------------------------------------------------------------------------- 1 | aaa1 2 | aaa2 3 | aaa3 -------------------------------------------------------------------------------- /tests/transliterator/samples/sample.businessevent: -------------------------------------------------------------------------------- 1 | 2011-10-11 16:30:20,072,Event [Event=UpdateBillingProvQuote, timestamp=1318375820071, properties={JMSCorrelationID=NA, JMSMessageID=ID:ESP-PD.289F4E3F7A381:CEBE7D53, orderType=ChangeESN, quotePriority=NORMAL, conversationId=ESB~47af426612b50c97:5a04ce5c:132f52c51600:440d, credits=NA, JMSReplyTo=pub.esb.genericasync.response, timeToLive=-1, serviceName=UpdateBillingProvisioning, esn=NA, accountNumber=71081182961, MethodName=InternalEvent, AdapterName=UpdateBillingProvQuote, meid=NA, orderNumber=NA, quoteNumber=60354607, ReplyTo=NA, userName=cid, EventConversationID=NA, mdn=8322976226, accountType=PostPaid, marketCity="Houston", marketState=TX, marketZip=55555, billingCycle=5, autoBillPayment=T, phoneCode=IP4S, phoneType=iPhone, phoneName="iPhone 4S", planCode=700UD, planType=PostPaid, planPrice=45, planName="700 Minute Unlimited Data", planDescription="Nationwide 700 Minutes, Unlimited Mobile to Mobile, Unlimited Texting, Unlimited Data", networkProviderName=Native}] 2 | -------------------------------------------------------------------------------- /tests/transliterator/samples/sample.mobilemusic.csv: -------------------------------------------------------------------------------- 1 | index,host,source,sourcetype,_raw oidemo,localhost,/var/log/radius.log,radius,May 27 18:28:11:000 aaa2 radiusd[12676]:[ID 959576 local1.info] INFO RADOP(13) acct start for 5559031692@splunktel.com 10.94.63.34 from 130.253.37.97 recorded OK. oidemo,localhost,/var/log/httpd/access_log,access_custom,"2014-05-27 18:28:11:112 10.2.1.35 POST /playhistory/uploadhistory - 80 - 10.94.63.34 ""Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Sprint APX515CKT Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"" 200 0 0 468 1488" oidemo,localhost,/var/log/radius.log,radius,May 27 18:28:11:199 aaa2 radiusd[12676]:[ID 959576 local1.info] INFO RADOP(13) acct stop for 5559031692@splunktel.com 10.94.63.34 from 130.253.37.97 recorded OK. -------------------------------------------------------------------------------- /tests/transliterator/samples/sample.mobilemusicfailure.csv: -------------------------------------------------------------------------------- 1 | index,host,source,sourcetype,_raw 2 | oidemo,localhost,/var/log/radius.log,radius,May 27 18:28:11:000 aaa2 radiusd[12676]:[ID 959576 local1.info] INFO RADOP(13) acct start for 5559031692@splunktel.com 10.94.63.34 from 130.253.37.97 recorded OK. 3 | oidemo,localhost,/var/log/httpd/access_log,access_custom,"2014-05-27 18:28:11:112 10.2.1.35 POST /playhistory/uploadhistory - 80 - 10.94.63.34 ""Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3"" 503 0 0 468 1488" 4 | oidemo,localhost,/var/log/radius.log,radius,May 27 18:28:11:199 aaa2 radiusd[12676]:[ID 959576 local1.info] INFO RADOP(13) acct stop for 5559031692@splunktel.com 10.94.63.34 from 130.253.37.97 recorded OK. -------------------------------------------------------------------------------- /tests/transliterator/samples/sample.mobilemusicfailuresearch.csv: -------------------------------------------------------------------------------- 1 | index,host,source,sourcetype,_raw 2 | oidemo,localhost,/var/log/radius.log,radius,May 27 18:28:11:000 aaa2 radiusd[12676]:[ID 959576 local1.info] INFO RADOP(13) acct start for 5559031692@splunktel.com 10.94.63.34 from 130.253.37.97 recorded OK. 3 | oidemo,localhost,/var/log/httpd/access_log,access_custom,"2014-05-27 18:28:11:112 10.2.1.35 GET /sync/addtolibrary/01011207201000005652000000000047 - 80 - 10.94.63.34 ""Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3"" 503 0 0 468 1488" 4 | oidemo,localhost,/var/log/radius.log,radius,May 27 18:28:11:199 aaa2 radiusd[12676]:[ID 959576 local1.info] INFO RADOP(13) acct stop for 5559031692@splunktel.com 10.94.63.34 from 130.253.37.97 recorded OK. 5 | -------------------------------------------------------------------------------- /tests/transliterator/samples/searchArtists.sample: -------------------------------------------------------------------------------- 1 | Macklemore 2 | Pharrell 3 | Avicii 4 | Beyonce 5 | Katy+Perry 6 | EXO 7 | "f(x)" 8 | Alfred+Hui 9 | Maroon+5 10 | Robin+Thicke 11 | Justin+Timberlake 12 | Conchita+Wurst 13 | Bingo+Players 14 | Drake 15 | Bruno+Mars 16 | John+Legend 17 | George+Ezza 18 | Katy+Perry+Ft+Juicy+J 19 | Lorde 20 | Jason+Derulo 21 | Imagine+Dragons 22 | Ellie+Goulding 23 | -------------------------------------------------------------------------------- /tests/transliterator/samples/shoppingactions.sample: -------------------------------------------------------------------------------- 1 | purchase 2 | addtocart 3 | remove 4 | view 5 | changequantity 6 | -------------------------------------------------------------------------------- /tests/transliterator/samples/trackIDs.sample: -------------------------------------------------------------------------------- 1 | 01011207201000005652000000000021 2 | 01011207201000005652000000000047 3 | 01011207201000005652000000000068 4 | 01011207201000005652000000000018 5 | 01011207201000005652000000000031 6 | 01011207201000005652000000000007 7 | 01011207201000005652000000000013 8 | 01011207201000005652000000000041 9 | 01011207201000005652000000000053 10 | 01011207201000005652000000000023 11 | 01011207201000005652000000000029 12 | 01011207201000005652000000000037 13 | 01011207201000005652000000000011 14 | 01011207201000005652000000000003 15 | 01011207201000005652000000000083 16 | 01011207201000005652000000000017 17 | 01011207201000005652000000000071 18 | 01011207201000005652000000000026 19 | 01011207201000005652000000000055 20 | 01011207201000005652000000000084 21 | 01011207201000005652000000000014 22 | 01011207201000005652000000000025 23 | 01011207201000005652000000000049 -------------------------------------------------------------------------------- /tests/transliterator/samples/uris.sample: -------------------------------------------------------------------------------- 1 | GET /browse/search/$sartId$ 2 | GET /browse/tracks/$trackId$ 3 | POST /browse/artist/$artId$ 4 | GET /browse/home 5 | POST /sync/createplaylist 6 | GET /sync/addtolibrary/$trackId$ 7 | POST /playhistory/uploadhistory 8 | GET /auth/$mdn$ 9 | GET /ads/showbanner -------------------------------------------------------------------------------- /tests/transliterator/samples/webhosts.sample: -------------------------------------------------------------------------------- 1 | 10.2.1.33 2 | 10.2.1.34 3 | 10.2.1.35 -------------------------------------------------------------------------------- /tests/validation/validate-badrandom.yml: -------------------------------------------------------------------------------- 1 | name: validate-badrandom 2 | tokens: 3 | - name: badrandom 4 | type: random 5 | replacement: bad -------------------------------------------------------------------------------- /tests/validation/validate-choice-items.yml: -------------------------------------------------------------------------------- 1 | name: validate-choice-items 2 | tokens: 3 | - name: choice 4 | type: choice -------------------------------------------------------------------------------- /tests/validation/validate-earliest-latest.yml: -------------------------------------------------------------------------------- 1 | name: validate-earliest-latest 2 | earliest: now 3 | latest: -3s -------------------------------------------------------------------------------- /tests/validation/validate-fieldchoice-badfield.yml: -------------------------------------------------------------------------------- 1 | name: validate-fieldchoice-badfield 2 | tokens: 3 | - name: fieldChoice 4 | type: fieldChoice 5 | srcField: badfield 6 | fieldChoice: 7 | - a: 1 8 | b: 2 9 | c: 3 10 | - a: 4 11 | b: 5 12 | c: 6 -------------------------------------------------------------------------------- /tests/validation/validate-fieldchoice-items.yml: -------------------------------------------------------------------------------- 1 | name: validate-fieldchoice-items 2 | tokens: 3 | - name: fieldChoice 4 | type: fieldChoice 5 | fieldChoice: -------------------------------------------------------------------------------- /tests/validation/validate-lower-upper.yml: -------------------------------------------------------------------------------- 1 | name: validate-lower-upper 2 | tokens: 3 | - name: random_int 4 | type: random 5 | replacement: int 6 | lower: 10 7 | upper: 0 -------------------------------------------------------------------------------- /tests/validation/validate-nolines.yml: -------------------------------------------------------------------------------- 1 | name: validate-nolines 2 | tokens: 3 | - name: static 4 | type: static 5 | replacement: foo 6 | format: template 7 | token: $static$ -------------------------------------------------------------------------------- /tests/validation/validate-string-length.yml: -------------------------------------------------------------------------------- 1 | name: validate-string-length 2 | tokens: 3 | - name: random_string 4 | type: random 5 | replacement: string 6 | length: 0 -------------------------------------------------------------------------------- /tests/validation/validate-upper.yml: -------------------------------------------------------------------------------- 1 | name: validate-upper 2 | tokens: 3 | - name: random_int 4 | type: random 5 | replacement: int -------------------------------------------------------------------------------- /tests/validation/validate-weightedchoice-items.yml: -------------------------------------------------------------------------------- 1 | name: validate-weightedchoice-items 2 | tokens: 3 | - name: weightedChoice 4 | type: weightedChoice 5 | weightedChoice: -------------------------------------------------------------------------------- /ui/.env: -------------------------------------------------------------------------------- 1 | # API URL for the Gogen API\nVITE_API_URL=/api 2 | -------------------------------------------------------------------------------- /ui/.env.development: -------------------------------------------------------------------------------- 1 | VITE_API_URL=/api # This will be proxied by Vite to localhost:4000 -------------------------------------------------------------------------------- /ui/.env.production: -------------------------------------------------------------------------------- 1 | VITE_API_URL=https://api.gogen.io/v1 -------------------------------------------------------------------------------- /ui/.env.staging: -------------------------------------------------------------------------------- 1 | VITE_API_URL=https://staging-api.gogen.io/v1 -------------------------------------------------------------------------------- /ui/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Gogen UI 9 | 10 | 11 | 12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /ui/jest.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from 'jest'; 2 | 3 | const config: Config = { 4 | preset: 'ts-jest', 5 | testEnvironment: 'jsdom', 6 | setupFilesAfterEnv: ['/src/setupTests.ts'], 7 | moduleNameMapper: { 8 | '\\.(css|less|scss|sass)$': 'identity-obj-proxy', 9 | '^@/(.*)$': '/src/$1', 10 | }, 11 | transform: { 12 | '^.+\\.(ts|tsx)$': 'ts-jest', 13 | }, 14 | testMatch: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[jt]s?(x)'], 15 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], 16 | collectCoverage: true, 17 | collectCoverageFrom: [ 18 | 'src/**/*.{ts,tsx}', 19 | '!src/**/*.d.ts', 20 | '!src/main.tsx', 21 | '!src/vite-env.d.ts', 22 | ], 23 | coverageThreshold: { 24 | global: { 25 | branches: 70, 26 | functions: 70, 27 | lines: 70, 28 | statements: 70, 29 | }, 30 | }, 31 | }; 32 | 33 | export default config; -------------------------------------------------------------------------------- /ui/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } -------------------------------------------------------------------------------- /ui/public/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | G 4 | -------------------------------------------------------------------------------- /ui/src/App.tsx: -------------------------------------------------------------------------------- 1 | import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; 2 | import Layout from './components/Layout'; 3 | import HomePage from './pages/HomePage'; 4 | import ConfigurationDetailPage from './pages/ConfigurationDetailPage'; 5 | import NotFoundPage from './pages/NotFoundPage'; 6 | 7 | function App() { 8 | return ( 9 | 10 | 11 | 12 | } /> 13 | } /> 14 | } /> 15 | 16 | 17 | 18 | ); 19 | } 20 | 21 | export default App; -------------------------------------------------------------------------------- /ui/src/components/Header.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from 'react-router-dom'; 2 | 3 | const Header = () => { 4 | return ( 5 |
6 |
7 | Gogen UI 8 | 13 |
14 |
15 | ); 16 | }; 17 | 18 | export default Header; -------------------------------------------------------------------------------- /ui/src/components/Hero.tsx: -------------------------------------------------------------------------------- 1 | const Hero = () => { 2 | return ( 3 |
4 |
5 |
6 |

Gogen helps generate telemetry data, quickly and easily.

7 |

View and manage your Gogen configurations.

8 |
9 |
10 |
11 | ); 12 | }; 13 | 14 | export default Hero; -------------------------------------------------------------------------------- /ui/src/components/Layout.tsx: -------------------------------------------------------------------------------- 1 | import Header from './Header'; 2 | import Footer from './Footer'; 3 | 4 | interface LayoutProps { 5 | children: React.ReactNode; 6 | } 7 | 8 | const Layout = ({ children }: LayoutProps) => { 9 | return ( 10 |
11 |
12 | {/* Main content */} 13 | {children} 14 |
15 |
16 | ); 17 | }; 18 | 19 | export default Layout; -------------------------------------------------------------------------------- /ui/src/components/LoadingSpinner.test.tsx: -------------------------------------------------------------------------------- 1 | import { render, screen } from '../utils/test-utils'; 2 | import LoadingSpinner from './LoadingSpinner'; 3 | 4 | describe('LoadingSpinner', () => { 5 | test('renders loading spinner', () => { 6 | render(); 7 | const spinnerElement = screen.getByRole('status'); 8 | expect(spinnerElement).toBeInTheDocument(); 9 | expect(spinnerElement).toHaveClass('animate-spin'); 10 | }); 11 | }); -------------------------------------------------------------------------------- /ui/src/config.ts: -------------------------------------------------------------------------------- 1 | // Environment-specific configuration 2 | interface Config { 3 | apiBaseUrl: string; 4 | } 5 | 6 | export const config: Config = { 7 | apiBaseUrl: import.meta.env.VITE_API_URL 8 | }; -------------------------------------------------------------------------------- /ui/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom/client'; 3 | import App from './App'; 4 | import './index.css'; 5 | 6 | ReactDOM.createRoot(document.getElementById('root')!).render( 7 | 8 | 9 | , 10 | ); -------------------------------------------------------------------------------- /ui/src/pages/NotFoundPage.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from 'react-router-dom'; 2 | 3 | const NotFoundPage = () => { 4 | return ( 5 |
6 |

404

7 |

Page Not Found

8 |

9 | The page you are looking for might have been removed, had its name changed, or is temporarily unavailable. 10 |

11 | 12 | Go to Homepage 13 | 14 |
15 | ); 16 | }; 17 | 18 | export default NotFoundPage; -------------------------------------------------------------------------------- /ui/src/setupTests.ts: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom'; 2 | import { TextEncoder, TextDecoder } from 'util'; 3 | 4 | // Mock window.matchMedia 5 | Object.defineProperty(window, 'matchMedia', { 6 | writable: true, 7 | value: jest.fn().mockImplementation(query => ({ 8 | matches: false, 9 | media: query, 10 | onchange: null, 11 | addListener: jest.fn(), 12 | removeListener: jest.fn(), 13 | addEventListener: jest.fn(), 14 | removeEventListener: jest.fn(), 15 | dispatchEvent: jest.fn(), 16 | })), 17 | }); 18 | 19 | // Mock ResizeObserver 20 | global.ResizeObserver = class ResizeObserver { 21 | observe = jest.fn(); 22 | unobserve = jest.fn(); 23 | disconnect = jest.fn(); 24 | }; 25 | 26 | // Mock TextEncoder/TextDecoder 27 | global.TextEncoder = TextEncoder; 28 | global.TextDecoder = TextDecoder as typeof global.TextDecoder; -------------------------------------------------------------------------------- /ui/src/utils/test-utils.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { render as rtlRender } from '@testing-library/react'; 3 | 4 | // Custom render function that includes providers 5 | function render(ui: React.ReactElement, renderOptions = {}) { 6 | function Wrapper({ children }: { children: React.ReactNode }) { 7 | return <>{children}; 8 | } 9 | return rtlRender(ui, { wrapper: Wrapper, ...renderOptions }); 10 | } 11 | 12 | // Re-export everything 13 | export * from '@testing-library/react'; 14 | 15 | // Override render method 16 | export { render }; -------------------------------------------------------------------------------- /ui/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | interface ImportMetaEnv { 4 | readonly PROD: boolean 5 | readonly DEV: boolean 6 | readonly VITE_API_URL: string 7 | // Add more env variables as needed 8 | } 9 | 10 | interface ImportMeta { 11 | readonly env: ImportMetaEnv 12 | } -------------------------------------------------------------------------------- /ui/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: [ 4 | "./index.html", 5 | "./src/**/*.{js,ts,jsx,tsx}", 6 | ], 7 | theme: { 8 | extend: { 9 | colors: { 10 | 'cribl-primary': '#261926', 11 | 'cribl-cyan': '#00F9BB', 12 | 'cribl-purple': '#7f66ff', 13 | 'cribl-pink': '#ff3399', 14 | 'cribl-red': '#f25e65', 15 | 'cribl-white': '#ffffff', 16 | 'cribl-gray': '#f1f1f1', 17 | 'cribl-dark': '#1A1A1A', 18 | 'cribl-blue': '#3A85F7', 19 | 'cribl-orange': '#FF6B35', 20 | 'cribl-light-gray': '#F5F5F5', 21 | }, 22 | }, 23 | }, 24 | plugins: [], 25 | } -------------------------------------------------------------------------------- /ui/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | "esModuleInterop": true, 9 | "allowSyntheticDefaultImports": true, 10 | 11 | /* Bundler mode */ 12 | "moduleResolution": "bundler", 13 | "allowImportingTsExtensions": true, 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react-jsx", 18 | 19 | /* Linting */ 20 | "strict": true, 21 | "noUnusedLocals": true, 22 | "noUnusedParameters": true, 23 | "noFallthroughCasesInSwitch": true 24 | }, 25 | "include": ["src"], 26 | "references": [{ "path": "./tsconfig.node.json" }] 27 | } -------------------------------------------------------------------------------- /ui/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } -------------------------------------------------------------------------------- /vendor/github.com/cactus/gostrftime/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /vendor/github.com/cactus/gostrftime/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2019 Eli Janssen 2 | 3 | Permission to use, copy, modify, and/or distribute this software for any 4 | purpose with or without fee is hereby granted, provided that the above 5 | copyright notice and this permission notice appear in all copies. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 8 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 9 | FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 10 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 11 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 12 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 13 | PERFORMANCE OF THIS SOFTWARE. 14 | -------------------------------------------------------------------------------- /vendor/github.com/coccyx/timeparser/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | 24 | .DS_Store -------------------------------------------------------------------------------- /vendor/github.com/coccyx/timeparser/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | sudo: false 4 | 5 | go: 6 | - 1.5 7 | - 1.6 8 | - tip 9 | 10 | script: 11 | - go test -v ./... -------------------------------------------------------------------------------- /vendor/github.com/davecgh/go-spew/LICENSE: -------------------------------------------------------------------------------- 1 | ISC License 2 | 3 | Copyright (c) 2012-2016 Dave Collins 4 | 5 | Permission to use, copy, modify, and/or distribute this software for any 6 | purpose with or without fee is hereby granted, provided that the above 7 | copyright notice and this permission notice appear in all copies. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 | -------------------------------------------------------------------------------- /vendor/github.com/felixge/fgprof/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright © 2020 Felix Geisendörfer 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 9 | -------------------------------------------------------------------------------- /vendor/github.com/felixge/fgprof/handler.go: -------------------------------------------------------------------------------- 1 | package fgprof 2 | 3 | import ( 4 | "fmt" 5 | "net/http" 6 | "strconv" 7 | "time" 8 | ) 9 | 10 | // Handler returns an http handler that takes an optional "seconds" query 11 | // argument that defaults to "30" and produces a profile over this duration. 12 | // The optional "format" parameter controls if the output is written in 13 | // Google's "pprof" format (default) or Brendan Gregg's "folded" stack format. 14 | func Handler() http.Handler { 15 | return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 16 | var seconds int 17 | var err error 18 | if s := r.URL.Query().Get("seconds"); s == "" { 19 | seconds = 30 20 | } else if seconds, err = strconv.Atoi(s); err != nil || seconds <= 0 { 21 | w.WriteHeader(http.StatusBadRequest) 22 | fmt.Fprintf(w, "bad seconds: %d: %s\n", seconds, err) 23 | return 24 | } 25 | 26 | format := Format(r.URL.Query().Get("format")) 27 | if format == "" { 28 | format = FormatPprof 29 | } 30 | 31 | stop := Start(w, format) 32 | defer stop() 33 | time.Sleep(time.Duration(seconds) * time.Second) 34 | }) 35 | } 36 | -------------------------------------------------------------------------------- /vendor/github.com/google/go-github/github/git.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The go-github AUTHORS. All rights reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style 4 | // license that can be found in the LICENSE file. 5 | 6 | package github 7 | 8 | // GitService handles communication with the git data related 9 | // methods of the GitHub API. 10 | // 11 | // GitHub API docs: https://developer.github.com/v3/git/ 12 | type GitService service 13 | -------------------------------------------------------------------------------- /vendor/github.com/google/go-github/github/with_appengine.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The go-github AUTHORS. All rights reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style 4 | // license that can be found in the LICENSE file. 5 | 6 | // +build appengine 7 | 8 | // This file provides glue for making github work on App Engine. 9 | 10 | package github 11 | 12 | import ( 13 | "context" 14 | "net/http" 15 | ) 16 | 17 | func withContext(ctx context.Context, req *http.Request) *http.Request { 18 | // No-op because App Engine adds context to a request differently. 19 | return req 20 | } 21 | -------------------------------------------------------------------------------- /vendor/github.com/google/go-github/github/without_appengine.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The go-github AUTHORS. All rights reserved. 2 | // 3 | // Use of this source code is governed by a BSD-style 4 | // license that can be found in the LICENSE file. 5 | 6 | // +build !appengine 7 | 8 | // This file provides glue for making github work without App Engine. 9 | 10 | package github 11 | 12 | import ( 13 | "context" 14 | "net/http" 15 | ) 16 | 17 | func withContext(ctx context.Context, req *http.Request) *http.Request { 18 | return req.WithContext(ctx) 19 | } 20 | -------------------------------------------------------------------------------- /vendor/github.com/google/pprof/AUTHORS: -------------------------------------------------------------------------------- 1 | # This is the official list of pprof authors for copyright purposes. 2 | # This file is distinct from the CONTRIBUTORS files. 3 | # See the latter for an explanation. 4 | # Names should be added to this file as: 5 | # Name or Organization 6 | # The email address is not required for organizations. 7 | Google Inc. -------------------------------------------------------------------------------- /vendor/github.com/google/pprof/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | # People who have agreed to one of the CLAs and can contribute patches. 2 | # The AUTHORS file lists the copyright holders; this file 3 | # lists people. For example, Google employees are listed here 4 | # but not in AUTHORS, because Google holds the copyright. 5 | # 6 | # https://developers.google.com/open-source/cla/individual 7 | # https://developers.google.com/open-source/cla/corporate 8 | # 9 | # Names should be added to this file as: 10 | # Name 11 | Raul Silvera 12 | Tipp Moseley 13 | Hyoun Kyu Cho 14 | Martin Spier 15 | Taco de Wolff 16 | Andrew Hunter 17 | -------------------------------------------------------------------------------- /vendor/github.com/hhkbp2/go-strftime/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | *.prof 25 | -------------------------------------------------------------------------------- /vendor/github.com/jehiah/go-strftime/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | -------------------------------------------------------------------------------- /vendor/github.com/jehiah/go-strftime/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Jehiah Czebotar 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /vendor/github.com/jehiah/go-strftime/README.md: -------------------------------------------------------------------------------- 1 | go-strftime 2 | =========== 3 | 4 | go implementation of strftime 5 | 6 | ## Example 7 | 8 | ``` 9 | package main 10 | 11 | import ( 12 | "fmt" 13 | "time" 14 | 15 | strftime "github.com/jehiah/go-strftime" 16 | ) 17 | 18 | func main() { 19 | t := time.Unix(1340244776, 0) 20 | utc, _ := time.LoadLocation("UTC") 21 | t = t.In(utc) 22 | fmt.Println(strftime.Format("%Y-%m-%d %H:%M:%S", t)) 23 | // Output: 24 | // 2012-06-21 02:12:56 25 | } 26 | ``` 27 | -------------------------------------------------------------------------------- /vendor/github.com/joyt/godate/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | *.prof 25 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/.gitattributes: -------------------------------------------------------------------------------- 1 | * -text 2 | *.bin -text -diff 3 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | *.prof 25 | /s2/cmd/_s2sx/sfx-exe 26 | 27 | # Linux perf files 28 | perf.data 29 | perf.data.old 30 | 31 | # gdb history 32 | .gdb_history 33 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/flate/matchlen_amd64.go: -------------------------------------------------------------------------------- 1 | //go:build amd64 && !appengine && !noasm && gc 2 | // +build amd64,!appengine,!noasm,gc 3 | 4 | // Copyright 2019+ Klaus Post. All rights reserved. 5 | // License information can be found in the LICENSE file. 6 | 7 | package flate 8 | 9 | // matchLen returns how many bytes match in a and b 10 | // 11 | // It assumes that: 12 | // 13 | // len(a) <= len(b) and len(a) > 0 14 | // 15 | //go:noescape 16 | func matchLen(a []byte, b []byte) int 17 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/flate/matchlen_generic.go: -------------------------------------------------------------------------------- 1 | //go:build !amd64 || appengine || !gc || noasm 2 | // +build !amd64 appengine !gc noasm 3 | 4 | // Copyright 2019+ Klaus Post. All rights reserved. 5 | // License information can be found in the LICENSE file. 6 | 7 | package flate 8 | 9 | import ( 10 | "encoding/binary" 11 | "math/bits" 12 | ) 13 | 14 | // matchLen returns the maximum common prefix length of a and b. 15 | // a must be the shortest of the two. 16 | func matchLen(a, b []byte) (n int) { 17 | for ; len(a) >= 8 && len(b) >= 8; a, b = a[8:], b[8:] { 18 | diff := binary.LittleEndian.Uint64(a) ^ binary.LittleEndian.Uint64(b) 19 | if diff != 0 { 20 | return n + bits.TrailingZeros64(diff)>>3 21 | } 22 | n += 8 23 | } 24 | 25 | for i := range a { 26 | if a[i] != b[i] { 27 | break 28 | } 29 | n++ 30 | } 31 | return n 32 | 33 | } 34 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/gen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd s2/cmd/_s2sx/ || exit 1 4 | go generate . 5 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/huff0/.gitignore: -------------------------------------------------------------------------------- 1 | /huff0-fuzz.zip 2 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo.go: -------------------------------------------------------------------------------- 1 | // Package cpuinfo gives runtime info about the current CPU. 2 | // 3 | // This is a very limited module meant for use internally 4 | // in this project. For more versatile solution check 5 | // https://github.com/klauspost/cpuid. 6 | package cpuinfo 7 | 8 | // HasBMI1 checks whether an x86 CPU supports the BMI1 extension. 9 | func HasBMI1() bool { 10 | return hasBMI1 11 | } 12 | 13 | // HasBMI2 checks whether an x86 CPU supports the BMI2 extension. 14 | func HasBMI2() bool { 15 | return hasBMI2 16 | } 17 | 18 | // DisableBMI2 will disable BMI2, for testing purposes. 19 | // Call returned function to restore previous state. 20 | func DisableBMI2() func() { 21 | old := hasBMI2 22 | hasBMI2 = false 23 | return func() { 24 | hasBMI2 = old 25 | } 26 | } 27 | 28 | // HasBMI checks whether an x86 CPU supports both BMI1 and BMI2 extensions. 29 | func HasBMI() bool { 30 | return HasBMI1() && HasBMI2() 31 | } 32 | 33 | var hasBMI1 bool 34 | var hasBMI2 bool 35 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.go: -------------------------------------------------------------------------------- 1 | //go:build amd64 && !appengine && !noasm && gc 2 | // +build amd64,!appengine,!noasm,gc 3 | 4 | package cpuinfo 5 | 6 | // go:noescape 7 | func x86extensions() (bmi1, bmi2 bool) 8 | 9 | func init() { 10 | hasBMI1, hasBMI2 = x86extensions() 11 | } 12 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.s: -------------------------------------------------------------------------------- 1 | // +build !appengine 2 | // +build gc 3 | // +build !noasm 4 | 5 | #include "textflag.h" 6 | #include "funcdata.h" 7 | #include "go_asm.h" 8 | 9 | TEXT ·x86extensions(SB), NOSPLIT, $0 10 | // 1. determine max EAX value 11 | XORQ AX, AX 12 | CPUID 13 | 14 | CMPQ AX, $7 15 | JB unsupported 16 | 17 | // 2. EAX = 7, ECX = 0 --- see Table 3-8 "Information Returned by CPUID Instruction" 18 | MOVQ $7, AX 19 | MOVQ $0, CX 20 | CPUID 21 | 22 | BTQ $3, BX // bit 3 = BMI1 23 | SETCS AL 24 | 25 | BTQ $8, BX // bit 8 = BMI2 26 | SETCS AH 27 | 28 | MOVB AL, bmi1+0(FP) 29 | MOVB AH, bmi2+1(FP) 30 | RET 31 | 32 | unsupported: 33 | XORQ AX, AX 34 | MOVB AL, bmi1+0(FP) 35 | MOVB AL, bmi2+1(FP) 36 | RET 37 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/internal/race/norace.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build !race 6 | 7 | package race 8 | 9 | func ReadSlice[T any](s []T) { 10 | } 11 | 12 | func WriteSlice[T any](s []T) { 13 | } 14 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/internal/race/race.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build race 6 | 7 | package race 8 | 9 | import ( 10 | "runtime" 11 | "unsafe" 12 | ) 13 | 14 | func ReadSlice[T any](s []T) { 15 | if len(s) == 0 { 16 | return 17 | } 18 | runtime.RaceReadRange(unsafe.Pointer(&s[0]), len(s)*int(unsafe.Sizeof(s[0]))) 19 | } 20 | 21 | func WriteSlice[T any](s []T) { 22 | if len(s) == 0 { 23 | return 24 | } 25 | runtime.RaceWriteRange(unsafe.Pointer(&s[0]), len(s)*int(unsafe.Sizeof(s[0]))) 26 | } 27 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/s2/.gitignore: -------------------------------------------------------------------------------- 1 | testdata/bench 2 | 3 | # These explicitly listed benchmark data files are for an obsolete version of 4 | # snappy_test.go. 5 | testdata/alice29.txt 6 | testdata/asyoulik.txt 7 | testdata/fireworks.jpeg 8 | testdata/geo.protodata 9 | testdata/html 10 | testdata/html_x_4 11 | testdata/kppkn.gtb 12 | testdata/lcet10.txt 13 | testdata/paper-100k.pdf 14 | testdata/plrabn12.txt 15 | testdata/urls.10K 16 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/s2/decode_asm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Snappy-Go Authors. All rights reserved. 2 | // Copyright (c) 2019 Klaus Post. All rights reserved. 3 | // Use of this source code is governed by a BSD-style 4 | // license that can be found in the LICENSE file. 5 | 6 | //go:build (amd64 || arm64) && !appengine && gc && !noasm 7 | // +build amd64 arm64 8 | // +build !appengine 9 | // +build gc 10 | // +build !noasm 11 | 12 | package s2 13 | 14 | // decode has the same semantics as in decode_other.go. 15 | // 16 | //go:noescape 17 | func s2Decode(dst, src []byte) int 18 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/s2sx.mod: -------------------------------------------------------------------------------- 1 | module github.com/klauspost/compress 2 | 3 | go 1.19 4 | 5 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/s2sx.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/coccyx/gogen/10af9e7fa088c11a7c230284aa1c7efba2e495bd/vendor/github.com/klauspost/compress/s2sx.sum -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/snappy/.gitignore: -------------------------------------------------------------------------------- 1 | cmd/snappytool/snappytool 2 | testdata/bench 3 | 4 | # These explicitly listed benchmark data files are for an obsolete version of 5 | # snappy_test.go. 6 | testdata/alice29.txt 7 | testdata/asyoulik.txt 8 | testdata/fireworks.jpeg 9 | testdata/geo.protodata 10 | testdata/html 11 | testdata/html_x_4 12 | testdata/kppkn.gtb 13 | testdata/lcet10.txt 14 | testdata/paper-100k.pdf 15 | testdata/plrabn12.txt 16 | testdata/urls.10K 17 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/snappy/AUTHORS: -------------------------------------------------------------------------------- 1 | # This is the official list of Snappy-Go authors for copyright purposes. 2 | # This file is distinct from the CONTRIBUTORS files. 3 | # See the latter for an explanation. 4 | 5 | # Names should be added to this file as 6 | # Name or Organization 7 | # The email address is not required for organizations. 8 | 9 | # Please keep the list sorted. 10 | 11 | Amazon.com, Inc 12 | Damian Gryski 13 | Eric Buth 14 | Google Inc. 15 | Jan Mercl <0xjnml@gmail.com> 16 | Klaus Post 17 | Rodolfo Carvalho 18 | Sebastien Binet 19 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/snappy/README.md: -------------------------------------------------------------------------------- 1 | # snappy 2 | 3 | The Snappy compression format in the Go programming language. 4 | 5 | This is a drop-in replacement for `github.com/golang/snappy`. 6 | 7 | It provides a full, compatible replacement of the Snappy package by simply changing imports. 8 | 9 | See [Snappy Compatibility](https://github.com/klauspost/compress/tree/master/s2#snappy-compatibility) in the S2 documentation. 10 | 11 | "Better" compression mode is used. For buffered streams concurrent compression is used. 12 | 13 | For more options use the [s2 package](https://pkg.go.dev/github.com/klauspost/compress/s2). 14 | 15 | # usage 16 | 17 | Replace imports `github.com/golang/snappy` with `github.com/klauspost/compress/snappy`. 18 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_asm.go: -------------------------------------------------------------------------------- 1 | //go:build (amd64 || arm64) && !appengine && gc && !purego && !noasm 2 | // +build amd64 arm64 3 | // +build !appengine 4 | // +build gc 5 | // +build !purego 6 | // +build !noasm 7 | 8 | package xxhash 9 | 10 | // Sum64 computes the 64-bit xxHash digest of b. 11 | // 12 | //go:noescape 13 | func Sum64(b []byte) uint64 14 | 15 | //go:noescape 16 | func writeBlocks(s *Digest, b []byte) int 17 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go: -------------------------------------------------------------------------------- 1 | package xxhash 2 | 3 | // Sum64String computes the 64-bit xxHash digest of s. 4 | func Sum64String(s string) uint64 { 5 | return Sum64([]byte(s)) 6 | } 7 | 8 | // WriteString adds more data to d. It always returns len(s), nil. 9 | func (d *Digest) WriteString(s string) (n int, err error) { 10 | return d.Write([]byte(s)) 11 | } 12 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/zstd/matchlen_amd64.go: -------------------------------------------------------------------------------- 1 | //go:build amd64 && !appengine && !noasm && gc 2 | // +build amd64,!appengine,!noasm,gc 3 | 4 | // Copyright 2019+ Klaus Post. All rights reserved. 5 | // License information can be found in the LICENSE file. 6 | 7 | package zstd 8 | 9 | // matchLen returns how many bytes match in a and b 10 | // 11 | // It assumes that: 12 | // 13 | // len(a) <= len(b) and len(a) > 0 14 | // 15 | //go:noescape 16 | func matchLen(a []byte, b []byte) int 17 | -------------------------------------------------------------------------------- /vendor/github.com/klauspost/compress/zstd/matchlen_generic.go: -------------------------------------------------------------------------------- 1 | //go:build !amd64 || appengine || !gc || noasm 2 | // +build !amd64 appengine !gc noasm 3 | 4 | // Copyright 2019+ Klaus Post. All rights reserved. 5 | // License information can be found in the LICENSE file. 6 | 7 | package zstd 8 | 9 | import ( 10 | "encoding/binary" 11 | "math/bits" 12 | ) 13 | 14 | // matchLen returns the maximum common prefix length of a and b. 15 | // a must be the shortest of the two. 16 | func matchLen(a, b []byte) (n int) { 17 | for ; len(a) >= 8 && len(b) >= 8; a, b = a[8:], b[8:] { 18 | diff := binary.LittleEndian.Uint64(a) ^ binary.LittleEndian.Uint64(b) 19 | if diff != 0 { 20 | return n + bits.TrailingZeros64(diff)>>3 21 | } 22 | n += 8 23 | } 24 | 25 | for i := range a { 26 | if a[i] != b[i] { 27 | break 28 | } 29 | n++ 30 | } 31 | return n 32 | 33 | } 34 | -------------------------------------------------------------------------------- /vendor/github.com/kr/pretty/.gitignore: -------------------------------------------------------------------------------- 1 | [568].out 2 | _go* 3 | _test* 4 | _obj 5 | /.idea 6 | -------------------------------------------------------------------------------- /vendor/github.com/kr/pretty/License: -------------------------------------------------------------------------------- 1 | Copyright 2012 Keith Rarick 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /vendor/github.com/kr/pretty/Readme: -------------------------------------------------------------------------------- 1 | package pretty 2 | 3 | import "github.com/kr/pretty" 4 | 5 | Package pretty provides pretty-printing for Go values. 6 | 7 | Documentation 8 | 9 | http://godoc.org/github.com/kr/pretty 10 | -------------------------------------------------------------------------------- /vendor/github.com/kr/text/License: -------------------------------------------------------------------------------- 1 | Copyright 2012 Keith Rarick 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /vendor/github.com/kr/text/Readme: -------------------------------------------------------------------------------- 1 | This is a Go package for manipulating paragraphs of text. 2 | 3 | See http://go.pkgdoc.org/github.com/kr/text for full documentation. 4 | -------------------------------------------------------------------------------- /vendor/github.com/kr/text/doc.go: -------------------------------------------------------------------------------- 1 | // Package text provides rudimentary functions for manipulating text in 2 | // paragraphs. 3 | package text 4 | -------------------------------------------------------------------------------- /vendor/github.com/mattn/go-runewidth/README.md: -------------------------------------------------------------------------------- 1 | go-runewidth 2 | ============ 3 | 4 | [![Build Status](https://github.com/mattn/go-runewidth/workflows/test/badge.svg?branch=master)](https://github.com/mattn/go-runewidth/actions?query=workflow%3Atest) 5 | [![Codecov](https://codecov.io/gh/mattn/go-runewidth/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/go-runewidth) 6 | [![GoDoc](https://godoc.org/github.com/mattn/go-runewidth?status.svg)](http://godoc.org/github.com/mattn/go-runewidth) 7 | [![Go Report Card](https://goreportcard.com/badge/github.com/mattn/go-runewidth)](https://goreportcard.com/report/github.com/mattn/go-runewidth) 8 | 9 | Provides functions to get fixed width of the character or string. 10 | 11 | Usage 12 | ----- 13 | 14 | ```go 15 | runewidth.StringWidth("つのだ☆HIRO") == 12 16 | ``` 17 | 18 | 19 | Author 20 | ------ 21 | 22 | Yasuhiro Matsumoto 23 | 24 | License 25 | ------- 26 | 27 | under the MIT License: http://mattn.mit-license.org/2013 28 | -------------------------------------------------------------------------------- /vendor/github.com/mattn/go-runewidth/runewidth_appengine.go: -------------------------------------------------------------------------------- 1 | //go:build appengine 2 | // +build appengine 3 | 4 | package runewidth 5 | 6 | // IsEastAsian return true if the current locale is CJK 7 | func IsEastAsian() bool { 8 | return false 9 | } 10 | -------------------------------------------------------------------------------- /vendor/github.com/mattn/go-runewidth/runewidth_js.go: -------------------------------------------------------------------------------- 1 | //go:build js && !appengine 2 | // +build js,!appengine 3 | 4 | package runewidth 5 | 6 | func IsEastAsian() bool { 7 | // TODO: Implement this for the web. Detect east asian in a compatible way, and return true. 8 | return false 9 | } 10 | -------------------------------------------------------------------------------- /vendor/github.com/mattn/go-runewidth/runewidth_windows.go: -------------------------------------------------------------------------------- 1 | //go:build windows && !appengine 2 | // +build windows,!appengine 3 | 4 | package runewidth 5 | 6 | import ( 7 | "syscall" 8 | ) 9 | 10 | var ( 11 | kernel32 = syscall.NewLazyDLL("kernel32") 12 | procGetConsoleOutputCP = kernel32.NewProc("GetConsoleOutputCP") 13 | ) 14 | 15 | // IsEastAsian return true if the current locale is CJK 16 | func IsEastAsian() bool { 17 | r1, _, _ := procGetConsoleOutputCP.Call() 18 | if r1 == 0 { 19 | return false 20 | } 21 | 22 | switch int(r1) { 23 | case 932, 51932, 936, 949, 950: 24 | return true 25 | } 26 | 27 | return false 28 | } 29 | -------------------------------------------------------------------------------- /vendor/github.com/mohae/deepcopy/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | *~ 25 | *.out 26 | *.log 27 | -------------------------------------------------------------------------------- /vendor/github.com/mohae/deepcopy/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | go: 4 | - tip 5 | 6 | matrix: 7 | allow_failures: 8 | - go: tip 9 | 10 | script: 11 | - go test ./... 12 | -------------------------------------------------------------------------------- /vendor/github.com/mohae/deepcopy/README.md: -------------------------------------------------------------------------------- 1 | deepCopy 2 | ======== 3 | [![GoDoc](https://godoc.org/github.com/mohae/deepcopy?status.svg)](https://godoc.org/github.com/mohae/deepcopy)[![Build Status](https://travis-ci.org/mohae/deepcopy.png)](https://travis-ci.org/mohae/deepcopy) 4 | 5 | DeepCopy makes deep copies of things: unexported field values are not copied. 6 | 7 | ## Usage 8 | cpy := deepcopy.Copy(orig) 9 | -------------------------------------------------------------------------------- /vendor/github.com/olekukonko/tablewriter/.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Go template 3 | # Binaries for programs and plugins 4 | *.exe 5 | *.exe~ 6 | *.dll 7 | *.so 8 | *.dylib 9 | 10 | # Test binary, build with `go test -c` 11 | *.test 12 | 13 | # Output of the go coverage tool, specifically when used with LiteIDE 14 | *.out 15 | 16 | -------------------------------------------------------------------------------- /vendor/github.com/olekukonko/tablewriter/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | arch: 3 | - ppc64le 4 | - amd64 5 | go: 6 | - 1.3 7 | - 1.4 8 | - 1.5 9 | - 1.6 10 | - 1.7 11 | - 1.8 12 | - 1.9 13 | - "1.10" 14 | - tip 15 | jobs: 16 | exclude : 17 | - arch : ppc64le 18 | go : 19 | - 1.3 20 | - arch : ppc64le 21 | go : 22 | - 1.4 23 | -------------------------------------------------------------------------------- /vendor/github.com/olekukonko/tablewriter/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright (C) 2014 by Oleku Konko 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /vendor/github.com/pierrec/lz4/v4/.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/macos 2 | 3 | ### macOS ### 4 | *.DS_Store 5 | .AppleDouble 6 | .LSOverride 7 | 8 | # Icon must end with two \r 9 | Icon 10 | 11 | 12 | # Thumbnails 13 | ._* 14 | 15 | # Files that might appear in the root of a volume 16 | .DocumentRevisions-V100 17 | .fseventsd 18 | .Spotlight-V100 19 | .TemporaryItems 20 | .Trashes 21 | .VolumeIcon.icns 22 | .com.apple.timemachine.donotpresent 23 | 24 | # Directories potentially created on remote AFP share 25 | .AppleDB 26 | .AppleDesktop 27 | Network Trash Folder 28 | Temporary Items 29 | .apdisk 30 | 31 | # End of https://www.gitignore.io/api/macos 32 | 33 | cmd/*/*exe 34 | .idea 35 | 36 | fuzz/*.zip 37 | -------------------------------------------------------------------------------- /vendor/github.com/pierrec/lz4/v4/internal/lz4block/decode_asm.go: -------------------------------------------------------------------------------- 1 | //go:build (amd64 || arm || arm64) && !appengine && gc && !noasm 2 | // +build amd64 arm arm64 3 | // +build !appengine 4 | // +build gc 5 | // +build !noasm 6 | 7 | package lz4block 8 | 9 | //go:noescape 10 | func decodeBlock(dst, src, dict []byte) int 11 | -------------------------------------------------------------------------------- /vendor/github.com/pierrec/lz4/v4/internal/lz4errors/errors.go: -------------------------------------------------------------------------------- 1 | package lz4errors 2 | 3 | type Error string 4 | 5 | func (e Error) Error() string { return string(e) } 6 | 7 | const ( 8 | ErrInvalidSourceShortBuffer Error = "lz4: invalid source or destination buffer too short" 9 | ErrInvalidFrame Error = "lz4: bad magic number" 10 | ErrInternalUnhandledState Error = "lz4: unhandled state" 11 | ErrInvalidHeaderChecksum Error = "lz4: invalid header checksum" 12 | ErrInvalidBlockChecksum Error = "lz4: invalid block checksum" 13 | ErrInvalidFrameChecksum Error = "lz4: invalid frame checksum" 14 | ErrOptionInvalidCompressionLevel Error = "lz4: invalid compression level" 15 | ErrOptionClosedOrError Error = "lz4: cannot apply options on closed or in error object" 16 | ErrOptionInvalidBlockSize Error = "lz4: invalid block size" 17 | ErrOptionNotApplicable Error = "lz4: option not applicable" 18 | ErrWriterNotClosed Error = "lz4: writer not closed" 19 | ) 20 | -------------------------------------------------------------------------------- /vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_arm.go: -------------------------------------------------------------------------------- 1 | // +build !noasm 2 | 3 | package xxh32 4 | 5 | // ChecksumZero returns the 32-bit hash of input. 6 | // 7 | //go:noescape 8 | func ChecksumZero(input []byte) uint32 9 | 10 | //go:noescape 11 | func update(v *[4]uint32, buf *[16]byte, input []byte) 12 | -------------------------------------------------------------------------------- /vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero_other.go: -------------------------------------------------------------------------------- 1 | // +build !arm noasm 2 | 3 | package xxh32 4 | 5 | // ChecksumZero returns the 32-bit hash of input. 6 | func ChecksumZero(input []byte) uint32 { return checksumZeroGo(input) } 7 | 8 | func update(v *[4]uint32, buf *[16]byte, input []byte) { 9 | updateGo(v, buf, input) 10 | } 11 | -------------------------------------------------------------------------------- /vendor/github.com/pierrec/lz4/v4/state_gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by "stringer -type=aState -output state_gen.go"; DO NOT EDIT. 2 | 3 | package lz4 4 | 5 | import "strconv" 6 | 7 | func _() { 8 | // An "invalid array index" compiler error signifies that the constant values have changed. 9 | // Re-run the stringer command to generate them again. 10 | var x [1]struct{} 11 | _ = x[noState-0] 12 | _ = x[errorState-1] 13 | _ = x[newState-2] 14 | _ = x[readState-3] 15 | _ = x[writeState-4] 16 | _ = x[closedState-5] 17 | } 18 | 19 | const _aState_name = "noStateerrorStatenewStatereadStatewriteStateclosedState" 20 | 21 | var _aState_index = [...]uint8{0, 7, 17, 25, 34, 44, 55} 22 | 23 | func (i aState) String() string { 24 | if i >= aState(len(_aState_index)-1) { 25 | return "aState(" + strconv.FormatInt(int64(i), 10) + ")" 26 | } 27 | return _aState_name[_aState_index[i]:_aState_index[i+1]] 28 | } 29 | -------------------------------------------------------------------------------- /vendor/github.com/pkg/profile/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go_import_path: github.com/pkg/profile 3 | go: 4 | - 1.13.x 5 | - 1.14.x 6 | - tip 7 | 8 | script: 9 | - go test -race github.com/pkg/profile 10 | -------------------------------------------------------------------------------- /vendor/github.com/pkg/profile/AUTHORS: -------------------------------------------------------------------------------- 1 | Dave Cheney 2 | -------------------------------------------------------------------------------- /vendor/github.com/rogpeppe/go-internal/fmtsort/mapelem.go: -------------------------------------------------------------------------------- 1 | package fmtsort 2 | 3 | import "reflect" 4 | 5 | const brokenNaNs = false 6 | 7 | func mapElems(mapValue reflect.Value) ([]reflect.Value, []reflect.Value) { 8 | // Note: this code is arranged to not panic even in the presence 9 | // of a concurrent map update. The runtime is responsible for 10 | // yelling loudly if that happens. See issue 33275. 11 | n := mapValue.Len() 12 | key := make([]reflect.Value, 0, n) 13 | value := make([]reflect.Value, 0, n) 14 | iter := mapValue.MapRange() 15 | for iter.Next() { 16 | key = append(key, iter.Key()) 17 | value = append(value, iter.Value()) 18 | } 19 | return key, value 20 | } 21 | -------------------------------------------------------------------------------- /vendor/github.com/satori/go.uuid/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | sudo: false 3 | go: 4 | - 1.2 5 | - 1.3 6 | - 1.4 7 | - 1.5 8 | - 1.6 9 | - 1.7 10 | - 1.8 11 | - 1.9 12 | - tip 13 | matrix: 14 | allow_failures: 15 | - go: tip 16 | fast_finish: true 17 | before_install: 18 | - go get github.com/mattn/goveralls 19 | - go get golang.org/x/tools/cmd/cover 20 | script: 21 | - $HOME/gopath/bin/goveralls -service=travis-ci 22 | notifications: 23 | email: false 24 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/.gitattributes: -------------------------------------------------------------------------------- 1 | fixtures/*.hex binary 2 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | *.prof 25 | /kafkacli 26 | 27 | # Emacs 28 | *~ 29 | 30 | # VIM 31 | *.swp 32 | 33 | # Goland 34 | .idea 35 | 36 | #IntelliJ 37 | *.iml 38 | 39 | # govendor 40 | /vendor/*/ 41 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/.golangci.yml: -------------------------------------------------------------------------------- 1 | linters: 2 | enable: 3 | - bodyclose 4 | - errorlint 5 | - goconst 6 | - godot 7 | - gofmt 8 | - goimports 9 | - prealloc 10 | 11 | disable: 12 | # Temporarily disabling so it can be addressed in a dedicated PR. 13 | - errcheck 14 | - goerr113 15 | 16 | linters-settings: 17 | goconst: 18 | ignore-tests: true 19 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/Makefile: -------------------------------------------------------------------------------- 1 | test: 2 | KAFKA_SKIP_NETTEST=1 \ 3 | KAFKA_VERSION=2.3.1 \ 4 | go test -race -cover ./... 5 | 6 | docker: 7 | docker-compose up -d 8 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/buffer.go: -------------------------------------------------------------------------------- 1 | package kafka 2 | 3 | import ( 4 | "bytes" 5 | "sync" 6 | ) 7 | 8 | var bufferPool = sync.Pool{ 9 | New: func() interface{} { return newBuffer() }, 10 | } 11 | 12 | func newBuffer() *bytes.Buffer { 13 | b := new(bytes.Buffer) 14 | b.Grow(65536) 15 | return b 16 | } 17 | 18 | func acquireBuffer() *bytes.Buffer { 19 | return bufferPool.Get().(*bytes.Buffer) 20 | } 21 | 22 | func releaseBuffer(b *bytes.Buffer) { 23 | if b != nil { 24 | b.Reset() 25 | bufferPool.Put(b) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/compression.go: -------------------------------------------------------------------------------- 1 | package kafka 2 | 3 | import ( 4 | "errors" 5 | 6 | "github.com/segmentio/kafka-go/compress" 7 | ) 8 | 9 | type Compression = compress.Compression 10 | 11 | const ( 12 | Gzip Compression = compress.Gzip 13 | Snappy Compression = compress.Snappy 14 | Lz4 Compression = compress.Lz4 15 | Zstd Compression = compress.Zstd 16 | ) 17 | 18 | type CompressionCodec = compress.Codec 19 | 20 | var ( 21 | errUnknownCodec = errors.New("the compression code is invalid or its codec has not been imported") 22 | ) 23 | 24 | // resolveCodec looks up a codec by Code(). 25 | func resolveCodec(code int8) (CompressionCodec, error) { 26 | codec := compress.Compression(code).Codec() 27 | if codec == nil { 28 | return nil, errUnknownCodec 29 | } 30 | return codec, nil 31 | } 32 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/discard.go: -------------------------------------------------------------------------------- 1 | package kafka 2 | 3 | import "bufio" 4 | 5 | func discardN(r *bufio.Reader, sz int, n int) (int, error) { 6 | var err error 7 | if n <= sz { 8 | n, err = r.Discard(n) 9 | } else { 10 | n, err = r.Discard(sz) 11 | if err == nil { 12 | err = errShortRead 13 | } 14 | } 15 | return sz - n, err 16 | } 17 | 18 | func discardInt32(r *bufio.Reader, sz int) (int, error) { 19 | return discardN(r, sz, 4) 20 | } 21 | 22 | func discardString(r *bufio.Reader, sz int) (int, error) { 23 | return readStringWith(r, sz, func(r *bufio.Reader, sz int, n int) (int, error) { 24 | if n < 0 { 25 | return sz, nil 26 | } 27 | return discardN(r, sz, n) 28 | }) 29 | } 30 | 31 | func discardBytes(r *bufio.Reader, sz int) (int, error) { 32 | return readBytesWith(r, sz, func(r *bufio.Reader, sz int, n int) (int, error) { 33 | if n < 0 { 34 | return sz, nil 35 | } 36 | return discardN(r, sz, n) 37 | }) 38 | } 39 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/logger.go: -------------------------------------------------------------------------------- 1 | package kafka 2 | 3 | // Logger interface API for log.Logger. 4 | type Logger interface { 5 | Printf(string, ...interface{}) 6 | } 7 | 8 | // LoggerFunc is a bridge between Logger and any third party logger 9 | // Usage: 10 | // l := NewLogger() // some logger 11 | // r := kafka.NewReader(kafka.ReaderConfig{ 12 | // Logger: kafka.LoggerFunc(l.Infof), 13 | // ErrorLogger: kafka.LoggerFunc(l.Errorf), 14 | // }) 15 | type LoggerFunc func(string, ...interface{}) 16 | 17 | func (f LoggerFunc) Printf(msg string, args ...interface{}) { f(msg, args...) } 18 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/protocol/apiversions/apiversions.go: -------------------------------------------------------------------------------- 1 | package apiversions 2 | 3 | import "github.com/segmentio/kafka-go/protocol" 4 | 5 | func init() { 6 | protocol.Register(&Request{}, &Response{}) 7 | } 8 | 9 | type Request struct { 10 | _ struct{} `kafka:"min=v0,max=v2"` 11 | } 12 | 13 | func (r *Request) ApiKey() protocol.ApiKey { return protocol.ApiVersions } 14 | 15 | type Response struct { 16 | ErrorCode int16 `kafka:"min=v0,max=v2"` 17 | ApiKeys []ApiKeyResponse `kafka:"min=v0,max=v2"` 18 | ThrottleTimeMs int32 `kafka:"min=v1,max=v2"` 19 | } 20 | 21 | func (r *Response) ApiKey() protocol.ApiKey { return protocol.ApiVersions } 22 | 23 | type ApiKeyResponse struct { 24 | ApiKey int16 `kafka:"min=v0,max=v2"` 25 | MinVersion int16 `kafka:"min=v0,max=v2"` 26 | MaxVersion int16 `kafka:"min=v0,max=v2"` 27 | } 28 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/protocol/consumer/consumer.go: -------------------------------------------------------------------------------- 1 | package consumer 2 | 3 | const MaxVersionSupported = 1 4 | 5 | type Subscription struct { 6 | Version int16 `kafka:"min=v0,max=v1"` 7 | Topics []string `kafka:"min=v0,max=v1"` 8 | UserData []byte `kafka:"min=v0,max=v1,nullable"` 9 | OwnedPartitions []TopicPartition `kafka:"min=v1,max=v1"` 10 | } 11 | 12 | type Assignment struct { 13 | Version int16 `kafka:"min=v0,max=v1"` 14 | AssignedPartitions []TopicPartition `kafka:"min=v0,max=v1"` 15 | UserData []byte `kafka:"min=v0,max=v1,nullable"` 16 | } 17 | 18 | type TopicPartition struct { 19 | Topic string `kafka:"min=v0,max=v1"` 20 | Partitions []int32 `kafka:"min=v0,max=v1"` 21 | } 22 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/protocol/deletetopics/deletetopics.go: -------------------------------------------------------------------------------- 1 | package deletetopics 2 | 3 | import "github.com/segmentio/kafka-go/protocol" 4 | 5 | func init() { 6 | protocol.Register(&Request{}, &Response{}) 7 | } 8 | 9 | type Request struct { 10 | TopicNames []string `kafka:"min=v0,max=v3"` 11 | TimeoutMs int32 `kafka:"min=v0,max=v3"` 12 | } 13 | 14 | func (r *Request) ApiKey() protocol.ApiKey { return protocol.DeleteTopics } 15 | 16 | func (r *Request) Broker(cluster protocol.Cluster) (protocol.Broker, error) { 17 | return cluster.Brokers[cluster.Controller], nil 18 | } 19 | 20 | type Response struct { 21 | ThrottleTimeMs int32 `kafka:"min=v1,max=v3"` 22 | Responses []ResponseTopic `kafka:"min=v0,max=v3"` 23 | } 24 | 25 | func (r *Response) ApiKey() protocol.ApiKey { return protocol.DeleteTopics } 26 | 27 | type ResponseTopic struct { 28 | Name string `kafka:"min=v0,max=v3"` 29 | ErrorCode int16 `kafka:"min=v0,max=v3"` 30 | } 31 | 32 | var ( 33 | _ protocol.BrokerMessage = (*Request)(nil) 34 | ) 35 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/protocol/findcoordinator/findcoordinator.go: -------------------------------------------------------------------------------- 1 | package findcoordinator 2 | 3 | import "github.com/segmentio/kafka-go/protocol" 4 | 5 | func init() { 6 | protocol.Register(&Request{}, &Response{}) 7 | } 8 | 9 | type Request struct { 10 | Key string `kafka:"min=v0,max=v2"` 11 | KeyType int8 `kafka:"min=v1,max=v2"` 12 | } 13 | 14 | func (r *Request) ApiKey() protocol.ApiKey { return protocol.FindCoordinator } 15 | 16 | type Response struct { 17 | ThrottleTimeMs int32 `kafka:"min=v1,max=v2"` 18 | ErrorCode int16 `kafka:"min=v0,max=v2"` 19 | ErrorMessage string `kafka:"min=v1,max=v2,nullable"` 20 | NodeID int32 `kafka:"min=v0,max=v2"` 21 | Host string `kafka:"min=v0,max=v2"` 22 | Port int32 `kafka:"min=v0,max=v2"` 23 | } 24 | 25 | func (r *Response) ApiKey() protocol.ApiKey { return protocol.FindCoordinator } 26 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/protocol/roundtrip.go: -------------------------------------------------------------------------------- 1 | package protocol 2 | 3 | import ( 4 | "io" 5 | ) 6 | 7 | // RoundTrip sends a request to a kafka broker and returns the response. 8 | func RoundTrip(rw io.ReadWriter, apiVersion int16, correlationID int32, clientID string, req Message) (Message, error) { 9 | if err := WriteRequest(rw, apiVersion, correlationID, clientID, req); err != nil { 10 | return nil, err 11 | } 12 | if !hasResponse(req) { 13 | return nil, nil 14 | } 15 | id, res, err := ReadResponse(rw, req.ApiKey(), apiVersion) 16 | if err != nil { 17 | return nil, err 18 | } 19 | if id != correlationID { 20 | return nil, Errorf("correlation id mismatch (expected=%d, found=%d)", correlationID, id) 21 | } 22 | return res, nil 23 | } 24 | 25 | func hasResponse(msg Message) bool { 26 | x, _ := msg.(interface{ HasResponse() bool }) 27 | return x == nil || x.HasResponse() 28 | } 29 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/protocol/saslhandshake/saslhandshake.go: -------------------------------------------------------------------------------- 1 | package saslhandshake 2 | 3 | import "github.com/segmentio/kafka-go/protocol" 4 | 5 | func init() { 6 | protocol.Register(&Request{}, &Response{}) 7 | } 8 | 9 | type Request struct { 10 | Mechanism string `kafka:"min=v0,max=v1"` 11 | } 12 | 13 | func (r *Request) ApiKey() protocol.ApiKey { return protocol.SaslHandshake } 14 | 15 | type Response struct { 16 | ErrorCode int16 `kafka:"min=v0,max=v1"` 17 | Mechanisms []string `kafka:"min=v0,max=v1"` 18 | } 19 | 20 | func (r *Response) ApiKey() protocol.ApiKey { return protocol.SaslHandshake } 21 | -------------------------------------------------------------------------------- /vendor/github.com/segmentio/kafka-go/protocol/size.go: -------------------------------------------------------------------------------- 1 | package protocol 2 | 3 | import ( 4 | "math/bits" 5 | ) 6 | 7 | func sizeOfVarString(s string) int { 8 | return sizeOfVarInt(int64(len(s))) + len(s) 9 | } 10 | 11 | func sizeOfVarNullBytes(b []byte) int { 12 | if b == nil { 13 | return sizeOfVarInt(-1) 14 | } 15 | n := len(b) 16 | return sizeOfVarInt(int64(n)) + n 17 | } 18 | 19 | func sizeOfVarNullBytesIface(b Bytes) int { 20 | if b == nil { 21 | return sizeOfVarInt(-1) 22 | } 23 | n := b.Len() 24 | return sizeOfVarInt(int64(n)) + n 25 | } 26 | 27 | func sizeOfVarInt(i int64) int { 28 | return sizeOfUnsignedVarInt(uint64((i << 1) ^ (i >> 63))) // zig-zag encoding 29 | } 30 | 31 | func sizeOfUnsignedVarInt(i uint64) int { 32 | return (bits.Len64(i|1) + 6) / 7 33 | } 34 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/.gitignore: -------------------------------------------------------------------------------- 1 | logrus 2 | vendor 3 | 4 | .idea/ 5 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go_import_path: github.com/sirupsen/logrus 3 | git: 4 | depth: 1 5 | env: 6 | - GO111MODULE=on 7 | go: 1.15.x 8 | os: linux 9 | install: 10 | - ./travis/install.sh 11 | script: 12 | - cd ci 13 | - go run mage.go -v -w ../ crossBuild 14 | - go run mage.go -v -w ../ lint 15 | - go run mage.go -v -w ../ test 16 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: "{build}" 2 | platform: x64 3 | clone_folder: c:\gopath\src\github.com\sirupsen\logrus 4 | environment: 5 | GOPATH: c:\gopath 6 | branches: 7 | only: 8 | - master 9 | install: 10 | - set PATH=%GOPATH%\bin;c:\go\bin;%PATH% 11 | - go version 12 | build_script: 13 | - go get -t 14 | - go test 15 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/buffer_pool.go: -------------------------------------------------------------------------------- 1 | package logrus 2 | 3 | import ( 4 | "bytes" 5 | "sync" 6 | ) 7 | 8 | var ( 9 | bufferPool BufferPool 10 | ) 11 | 12 | type BufferPool interface { 13 | Put(*bytes.Buffer) 14 | Get() *bytes.Buffer 15 | } 16 | 17 | type defaultPool struct { 18 | pool *sync.Pool 19 | } 20 | 21 | func (p *defaultPool) Put(buf *bytes.Buffer) { 22 | p.pool.Put(buf) 23 | } 24 | 25 | func (p *defaultPool) Get() *bytes.Buffer { 26 | return p.pool.Get().(*bytes.Buffer) 27 | } 28 | 29 | // SetBufferPool allows to replace the default logrus buffer pool 30 | // to better meets the specific needs of an application. 31 | func SetBufferPool(bp BufferPool) { 32 | bufferPool = bp 33 | } 34 | 35 | func init() { 36 | SetBufferPool(&defaultPool{ 37 | pool: &sync.Pool{ 38 | New: func() interface{} { 39 | return new(bytes.Buffer) 40 | }, 41 | }, 42 | }) 43 | } 44 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package logrus is a structured logger for Go, completely API compatible with the standard library logger. 3 | 4 | 5 | The simplest way to use Logrus is simply the package-level exported logger: 6 | 7 | package main 8 | 9 | import ( 10 | log "github.com/sirupsen/logrus" 11 | ) 12 | 13 | func main() { 14 | log.WithFields(log.Fields{ 15 | "animal": "walrus", 16 | "number": 1, 17 | "size": 10, 18 | }).Info("A walrus appears") 19 | } 20 | 21 | Output: 22 | time="2015-09-07T08:48:33Z" level=info msg="A walrus appears" animal=walrus number=1 size=10 23 | 24 | For a full guide visit https://github.com/sirupsen/logrus 25 | */ 26 | package logrus 27 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/terminal_check_appengine.go: -------------------------------------------------------------------------------- 1 | // +build appengine 2 | 3 | package logrus 4 | 5 | import ( 6 | "io" 7 | ) 8 | 9 | func checkIfTerminal(w io.Writer) bool { 10 | return true 11 | } 12 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/terminal_check_bsd.go: -------------------------------------------------------------------------------- 1 | // +build darwin dragonfly freebsd netbsd openbsd hurd 2 | // +build !js 3 | 4 | package logrus 5 | 6 | import "golang.org/x/sys/unix" 7 | 8 | const ioctlReadTermios = unix.TIOCGETA 9 | 10 | func isTerminal(fd int) bool { 11 | _, err := unix.IoctlGetTermios(fd, ioctlReadTermios) 12 | return err == nil 13 | } 14 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/terminal_check_js.go: -------------------------------------------------------------------------------- 1 | // +build js 2 | 3 | package logrus 4 | 5 | func isTerminal(fd int) bool { 6 | return false 7 | } 8 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/terminal_check_no_terminal.go: -------------------------------------------------------------------------------- 1 | // +build js nacl plan9 2 | 3 | package logrus 4 | 5 | import ( 6 | "io" 7 | ) 8 | 9 | func checkIfTerminal(w io.Writer) bool { 10 | return false 11 | } 12 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go: -------------------------------------------------------------------------------- 1 | // +build !appengine,!js,!windows,!nacl,!plan9 2 | 3 | package logrus 4 | 5 | import ( 6 | "io" 7 | "os" 8 | ) 9 | 10 | func checkIfTerminal(w io.Writer) bool { 11 | switch v := w.(type) { 12 | case *os.File: 13 | return isTerminal(int(v.Fd())) 14 | default: 15 | return false 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/terminal_check_solaris.go: -------------------------------------------------------------------------------- 1 | package logrus 2 | 3 | import ( 4 | "golang.org/x/sys/unix" 5 | ) 6 | 7 | // IsTerminal returns true if the given file descriptor is a terminal. 8 | func isTerminal(fd int) bool { 9 | _, err := unix.IoctlGetTermio(fd, unix.TCGETA) 10 | return err == nil 11 | } 12 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/terminal_check_unix.go: -------------------------------------------------------------------------------- 1 | //go:build (linux || aix || zos) && !js && !wasi 2 | // +build linux aix zos 3 | // +build !js 4 | // +build !wasi 5 | 6 | package logrus 7 | 8 | import "golang.org/x/sys/unix" 9 | 10 | const ioctlReadTermios = unix.TCGETS 11 | 12 | func isTerminal(fd int) bool { 13 | _, err := unix.IoctlGetTermios(fd, ioctlReadTermios) 14 | return err == nil 15 | } 16 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/terminal_check_wasi.go: -------------------------------------------------------------------------------- 1 | //go:build wasi 2 | // +build wasi 3 | 4 | package logrus 5 | 6 | func isTerminal(fd int) bool { 7 | return false 8 | } 9 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/terminal_check_wasip1.go: -------------------------------------------------------------------------------- 1 | //go:build wasip1 2 | // +build wasip1 3 | 4 | package logrus 5 | 6 | func isTerminal(fd int) bool { 7 | return false 8 | } 9 | -------------------------------------------------------------------------------- /vendor/github.com/sirupsen/logrus/terminal_check_windows.go: -------------------------------------------------------------------------------- 1 | // +build !appengine,!js,windows 2 | 3 | package logrus 4 | 5 | import ( 6 | "io" 7 | "os" 8 | 9 | "golang.org/x/sys/windows" 10 | ) 11 | 12 | func checkIfTerminal(w io.Writer) bool { 13 | switch v := w.(type) { 14 | case *os.File: 15 | handle := windows.Handle(v.Fd()) 16 | var mode uint32 17 | if err := windows.GetConsoleMode(handle, &mode); err != nil { 18 | return false 19 | } 20 | mode |= windows.ENABLE_VIRTUAL_TERMINAL_PROCESSING 21 | if err := windows.SetConsoleMode(handle, mode); err != nil { 22 | return false 23 | } 24 | return true 25 | } 26 | return false 27 | } 28 | -------------------------------------------------------------------------------- /vendor/github.com/skratchdot/open-golang/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 skratchdot 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /vendor/github.com/skratchdot/open-golang/open/exec.go: -------------------------------------------------------------------------------- 1 | // +build !windows,!darwin 2 | 3 | package open 4 | 5 | import ( 6 | "os/exec" 7 | ) 8 | 9 | // http://sources.debian.net/src/xdg-utils/1.1.0~rc1%2Bgit20111210-7.1/scripts/xdg-open/ 10 | // http://sources.debian.net/src/xdg-utils/1.1.0~rc1%2Bgit20111210-7.1/scripts/xdg-mime/ 11 | 12 | func open(input string) *exec.Cmd { 13 | return exec.Command("xdg-open", input) 14 | } 15 | 16 | func openWith(input string, appName string) *exec.Cmd { 17 | return exec.Command(appName, input) 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/skratchdot/open-golang/open/exec_darwin.go: -------------------------------------------------------------------------------- 1 | // +build darwin 2 | 3 | package open 4 | 5 | import ( 6 | "os/exec" 7 | ) 8 | 9 | func open(input string) *exec.Cmd { 10 | return exec.Command("open", input) 11 | } 12 | 13 | func openWith(input string, appName string) *exec.Cmd { 14 | return exec.Command("open", "-a", appName, input) 15 | } 16 | -------------------------------------------------------------------------------- /vendor/github.com/skratchdot/open-golang/open/exec_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package open 4 | 5 | import ( 6 | "os" 7 | "os/exec" 8 | "path/filepath" 9 | "strings" 10 | // "syscall" 11 | ) 12 | 13 | var ( 14 | cmd = "url.dll,FileProtocolHandler" 15 | runDll32 = filepath.Join(os.Getenv("SYSTEMROOT"), "System32", "rundll32.exe") 16 | ) 17 | 18 | func cleaninput(input string) string { 19 | r := strings.NewReplacer("&", "^&") 20 | return r.Replace(input) 21 | } 22 | 23 | func open(input string) *exec.Cmd { 24 | cmd := exec.Command(runDll32, cmd, input) 25 | //cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} 26 | return cmd 27 | } 28 | 29 | func openWith(input string, appName string) *exec.Cmd { 30 | cmd := exec.Command("cmd", "/C", "start", "", appName, cleaninput(input)) 31 | //cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} 32 | return cmd 33 | } 34 | -------------------------------------------------------------------------------- /vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl: -------------------------------------------------------------------------------- 1 | {{.CommentFormat}} 2 | func {{.DocInfo.Name}}f(t TestingT, {{.ParamsFormat}}) bool { 3 | if h, ok := t.(tHelper); ok { h.Helper() } 4 | return {{.DocInfo.Name}}(t, {{.ForwardedParamsFormat}}) 5 | } 6 | -------------------------------------------------------------------------------- /vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl: -------------------------------------------------------------------------------- 1 | {{.CommentWithoutT "a"}} 2 | func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) bool { 3 | if h, ok := a.t.(tHelper); ok { h.Helper() } 4 | return {{.DocInfo.Name}}(a.t, {{.ForwardedParams}}) 5 | } 6 | -------------------------------------------------------------------------------- /vendor/github.com/stretchr/testify/assert/errors.go: -------------------------------------------------------------------------------- 1 | package assert 2 | 3 | import ( 4 | "errors" 5 | ) 6 | 7 | // AnError is an error instance useful for testing. If the code does not care 8 | // about error specifics, and only needs to return the error for example, this 9 | // error should be used to make the test code more readable. 10 | var AnError = errors.New("assert.AnError general error for testing") 11 | -------------------------------------------------------------------------------- /vendor/github.com/stretchr/testify/assert/forward_assertions.go: -------------------------------------------------------------------------------- 1 | package assert 2 | 3 | // Assertions provides assertion methods around the 4 | // TestingT interface. 5 | type Assertions struct { 6 | t TestingT 7 | } 8 | 9 | // New makes a new Assertions object for the specified TestingT. 10 | func New(t TestingT) *Assertions { 11 | return &Assertions{ 12 | t: t, 13 | } 14 | } 15 | 16 | //go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs" 17 | -------------------------------------------------------------------------------- /vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go: -------------------------------------------------------------------------------- 1 | //go:build testify_yaml_custom && !testify_yaml_fail && !testify_yaml_default 2 | // +build testify_yaml_custom,!testify_yaml_fail,!testify_yaml_default 3 | 4 | // Package yaml is an implementation of YAML functions that calls a pluggable implementation. 5 | // 6 | // This implementation is selected with the testify_yaml_custom build tag. 7 | // 8 | // go test -tags testify_yaml_custom 9 | // 10 | // This implementation can be used at build time to replace the default implementation 11 | // to avoid linking with [gopkg.in/yaml.v3]. 12 | // 13 | // In your test package: 14 | // 15 | // import assertYaml "github.com/stretchr/testify/assert/yaml" 16 | // 17 | // func init() { 18 | // assertYaml.Unmarshal = func (in []byte, out interface{}) error { 19 | // // ... 20 | // return nil 21 | // } 22 | // } 23 | package yaml 24 | 25 | var Unmarshal func(in []byte, out interface{}) error 26 | -------------------------------------------------------------------------------- /vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go: -------------------------------------------------------------------------------- 1 | //go:build testify_yaml_fail && !testify_yaml_custom && !testify_yaml_default 2 | // +build testify_yaml_fail,!testify_yaml_custom,!testify_yaml_default 3 | 4 | // Package yaml is an implementation of YAML functions that always fail. 5 | // 6 | // This implementation can be used at build time to replace the default implementation 7 | // to avoid linking with [gopkg.in/yaml.v3]: 8 | // 9 | // go test -tags testify_yaml_fail 10 | package yaml 11 | 12 | import "errors" 13 | 14 | var errNotImplemented = errors.New("YAML functions are not available (see https://pkg.go.dev/github.com/stretchr/testify/assert/yaml)") 15 | 16 | func Unmarshal([]byte, interface{}) error { 17 | return errNotImplemented 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/yuin/gopher-lua/.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | -------------------------------------------------------------------------------- /vendor/github.com/yuin/gopher-lua/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: build test glua 2 | 3 | build: 4 | ./_tools/go-inline *.go && go fmt . && go build 5 | 6 | glua: *.go pm/*.go cmd/glua/glua.go 7 | ./_tools/go-inline *.go && go fmt . && go build cmd/glua/glua.go 8 | 9 | test: 10 | ./_tools/go-inline *.go && go fmt . && go test 11 | -------------------------------------------------------------------------------- /vendor/github.com/yuin/gopher-lua/ast/ast.go: -------------------------------------------------------------------------------- 1 | package ast 2 | 3 | type PositionHolder interface { 4 | Line() int 5 | SetLine(int) 6 | LastLine() int 7 | SetLastLine(int) 8 | } 9 | 10 | type Node struct { 11 | line int 12 | lastline int 13 | } 14 | 15 | func (self *Node) Line() int { 16 | return self.line 17 | } 18 | 19 | func (self *Node) SetLine(line int) { 20 | self.line = line 21 | } 22 | 23 | func (self *Node) LastLine() int { 24 | return self.lastline 25 | } 26 | 27 | func (self *Node) SetLastLine(line int) { 28 | self.lastline = line 29 | } 30 | -------------------------------------------------------------------------------- /vendor/github.com/yuin/gopher-lua/ast/misc.go: -------------------------------------------------------------------------------- 1 | package ast 2 | 3 | type Field struct { 4 | Key Expr 5 | Value Expr 6 | } 7 | 8 | type ParList struct { 9 | HasVargs bool 10 | Names []string 11 | } 12 | 13 | type FuncName struct { 14 | Func Expr 15 | Receiver Expr 16 | Method string 17 | } 18 | -------------------------------------------------------------------------------- /vendor/github.com/yuin/gopher-lua/ast/token.go: -------------------------------------------------------------------------------- 1 | package ast 2 | 3 | import ( 4 | "fmt" 5 | ) 6 | 7 | type Position struct { 8 | Source string 9 | Line int 10 | Column int 11 | } 12 | 13 | type Token struct { 14 | Type int 15 | Name string 16 | Str string 17 | Pos Position 18 | } 19 | 20 | func (self *Token) String() string { 21 | return fmt.Sprintf("", self.Name, self.Str) 22 | } 23 | -------------------------------------------------------------------------------- /vendor/github.com/yuin/gopher-lua/config.go: -------------------------------------------------------------------------------- 1 | package lua 2 | 3 | import ( 4 | "os" 5 | ) 6 | 7 | var CompatVarArg = true 8 | var FieldsPerFlush = 50 9 | var RegistrySize = 256 * 20 10 | var RegistryGrowStep = 32 11 | var CallStackSize = 256 12 | var MaxTableGetLoop = 100 13 | var MaxArrayIndex = 67108864 14 | 15 | type LNumber float64 16 | 17 | const LNumberBit = 64 18 | const LNumberScanFormat = "%f" 19 | const LuaVersion = "Lua 5.1" 20 | 21 | var LuaPath = "LUA_PATH" 22 | var LuaLDir string 23 | var LuaPathDefault string 24 | var LuaOS string 25 | var LuaDirSep string 26 | var LuaPathSep = ";" 27 | var LuaPathMark = "?" 28 | var LuaExecDir = "!" 29 | var LuaIgMark = "-" 30 | 31 | func init() { 32 | if os.PathSeparator == '/' { // unix-like 33 | LuaOS = "unix" 34 | LuaLDir = "/usr/local/share/lua/5.1" 35 | LuaDirSep = "/" 36 | LuaPathDefault = "./?.lua;" + LuaLDir + "/?.lua;" + LuaLDir + "/?/init.lua" 37 | } else { // windows 38 | LuaOS = "windows" 39 | LuaLDir = "!\\lua" 40 | LuaDirSep = "\\" 41 | LuaPathDefault = ".\\?.lua;" + LuaLDir + "\\?.lua;" + LuaLDir + "\\?\\init.lua" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /vendor/github.com/yuin/gopher-lua/package.go: -------------------------------------------------------------------------------- 1 | // GopherLua: VM and compiler for Lua in Go 2 | package lua 3 | 4 | const PackageName = "GopherLua" 5 | const PackageVersion = "0.1" 6 | const PackageAuthors = "Yusuke Inuzuka" 7 | const PackageCopyRight = PackageName + " " + PackageVersion + " Copyright (C) 2015 -2017 " + PackageAuthors 8 | -------------------------------------------------------------------------------- /vendor/github.com/yuin/gopher-lua/parse/Makefile: -------------------------------------------------------------------------------- 1 | all : parser.go 2 | 3 | parser.go : parser.go.y 4 | goyacc -o $@ parser.go.y; [ -f y.output ] && ( rm -f y.output ) 5 | 6 | clean: 7 | rm -f parser.go 8 | -------------------------------------------------------------------------------- /vendor/golang.org/x/oauth2/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | go: 4 | - tip 5 | 6 | install: 7 | - export GOPATH="$HOME/gopath" 8 | - mkdir -p "$GOPATH/src/golang.org/x" 9 | - mv "$TRAVIS_BUILD_DIR" "$GOPATH/src/golang.org/x/oauth2" 10 | - go get -v -t -d golang.org/x/oauth2/... 11 | 12 | script: 13 | - go test -v golang.org/x/oauth2/... 14 | -------------------------------------------------------------------------------- /vendor/golang.org/x/oauth2/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Go 2 | 3 | Go is an open source project. 4 | 5 | It is the work of hundreds of contributors. We appreciate your help! 6 | 7 | ## Filing issues 8 | 9 | When [filing an issue](https://github.com/golang/oauth2/issues), make sure to answer these five questions: 10 | 11 | 1. What version of Go are you using (`go version`)? 12 | 2. What operating system and processor architecture are you using? 13 | 3. What did you do? 14 | 4. What did you expect to see? 15 | 5. What did you see instead? 16 | 17 | General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker. 18 | The gophers there will answer or ask you to file an issue if you've tripped over a bug. 19 | 20 | ## Contributing code 21 | 22 | Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html) 23 | before sending patches. 24 | 25 | Unless otherwise noted, the Go source files are distributed under 26 | the BSD-style license found in the LICENSE file. 27 | -------------------------------------------------------------------------------- /vendor/golang.org/x/oauth2/github/github.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Package github provides constants for using OAuth2 to access Github. 6 | package github // import "golang.org/x/oauth2/github" 7 | 8 | import ( 9 | "golang.org/x/oauth2/endpoints" 10 | ) 11 | 12 | // Endpoint is Github's OAuth 2.0 endpoint. 13 | var Endpoint = endpoints.GitHub 14 | -------------------------------------------------------------------------------- /vendor/golang.org/x/oauth2/internal/doc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Package internal contains support packages for oauth2 package. 6 | package internal 7 | -------------------------------------------------------------------------------- /vendor/golang.org/x/oauth2/internal/transport.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package internal 6 | 7 | import ( 8 | "context" 9 | "net/http" 10 | ) 11 | 12 | // HTTPClient is the context key to use with golang.org/x/net/context's 13 | // WithValue function to associate an *http.Client value with a context. 14 | var HTTPClient ContextKey 15 | 16 | // ContextKey is just an empty struct. It exists so HTTPClient can be 17 | // an immutable public variable with a unique type. It's immutable 18 | // because nobody else can create a ContextKey, being unexported. 19 | type ContextKey struct{} 20 | 21 | func ContextClient(ctx context.Context) *http.Client { 22 | if ctx != nil { 23 | if hc, ok := ctx.Value(HTTPClient).(*http.Client); ok { 24 | return hc 25 | } 26 | } 27 | return http.DefaultClient 28 | } 29 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/.gitignore: -------------------------------------------------------------------------------- 1 | _obj/ 2 | unix.test 3 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/aliases.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | type Signal = syscall.Signal 12 | type Errno = syscall.Errno 13 | type SysProcAttr = syscall.SysProcAttr 14 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/asm_aix_ppc64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build gc 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System calls for ppc64, AIX are implemented in runtime/syscall_aix.go 11 | // 12 | 13 | TEXT ·syscall6(SB),NOSPLIT,$0-88 14 | JMP syscall·syscall6(SB) 15 | 16 | TEXT ·rawSyscall6(SB),NOSPLIT,$0-88 17 | JMP syscall·rawSyscall6(SB) 18 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/asm_bsd_386.s: -------------------------------------------------------------------------------- 1 | // Copyright 2021 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build (freebsd || netbsd || openbsd) && gc 6 | 7 | #include "textflag.h" 8 | 9 | // System call support for 386 BSD 10 | 11 | // Just jump to package syscall's implementation for all these functions. 12 | // The runtime may know about them. 13 | 14 | TEXT ·Syscall(SB),NOSPLIT,$0-28 15 | JMP syscall·Syscall(SB) 16 | 17 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 18 | JMP syscall·Syscall6(SB) 19 | 20 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 21 | JMP syscall·Syscall9(SB) 22 | 23 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 24 | JMP syscall·RawSyscall(SB) 25 | 26 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 27 | JMP syscall·RawSyscall6(SB) 28 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/asm_bsd_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2021 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc 6 | 7 | #include "textflag.h" 8 | 9 | // System call support for AMD64 BSD 10 | 11 | // Just jump to package syscall's implementation for all these functions. 12 | // The runtime may know about them. 13 | 14 | TEXT ·Syscall(SB),NOSPLIT,$0-56 15 | JMP syscall·Syscall(SB) 16 | 17 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 18 | JMP syscall·Syscall6(SB) 19 | 20 | TEXT ·Syscall9(SB),NOSPLIT,$0-104 21 | JMP syscall·Syscall9(SB) 22 | 23 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 24 | JMP syscall·RawSyscall(SB) 25 | 26 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 27 | JMP syscall·RawSyscall6(SB) 28 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/asm_bsd_arm.s: -------------------------------------------------------------------------------- 1 | // Copyright 2021 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build (freebsd || netbsd || openbsd) && gc 6 | 7 | #include "textflag.h" 8 | 9 | // System call support for ARM BSD 10 | 11 | // Just jump to package syscall's implementation for all these functions. 12 | // The runtime may know about them. 13 | 14 | TEXT ·Syscall(SB),NOSPLIT,$0-28 15 | B syscall·Syscall(SB) 16 | 17 | TEXT ·Syscall6(SB),NOSPLIT,$0-40 18 | B syscall·Syscall6(SB) 19 | 20 | TEXT ·Syscall9(SB),NOSPLIT,$0-52 21 | B syscall·Syscall9(SB) 22 | 23 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28 24 | B syscall·RawSyscall(SB) 25 | 26 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 27 | B syscall·RawSyscall6(SB) 28 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/asm_bsd_arm64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2021 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build (darwin || freebsd || netbsd || openbsd) && gc 6 | 7 | #include "textflag.h" 8 | 9 | // System call support for ARM64 BSD 10 | 11 | // Just jump to package syscall's implementation for all these functions. 12 | // The runtime may know about them. 13 | 14 | TEXT ·Syscall(SB),NOSPLIT,$0-56 15 | JMP syscall·Syscall(SB) 16 | 17 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 18 | JMP syscall·Syscall6(SB) 19 | 20 | TEXT ·Syscall9(SB),NOSPLIT,$0-104 21 | JMP syscall·Syscall9(SB) 22 | 23 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 24 | JMP syscall·RawSyscall(SB) 25 | 26 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 27 | JMP syscall·RawSyscall6(SB) 28 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2022 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build (darwin || freebsd || netbsd || openbsd) && gc 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for ppc64, BSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-56 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2021 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build (darwin || freebsd || netbsd || openbsd) && gc 6 | 7 | #include "textflag.h" 8 | 9 | // System call support for RISCV64 BSD 10 | 11 | // Just jump to package syscall's implementation for all these functions. 12 | // The runtime may know about them. 13 | 14 | TEXT ·Syscall(SB),NOSPLIT,$0-56 15 | JMP syscall·Syscall(SB) 16 | 17 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 18 | JMP syscall·Syscall6(SB) 19 | 20 | TEXT ·Syscall9(SB),NOSPLIT,$0-104 21 | JMP syscall·Syscall9(SB) 22 | 23 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 24 | JMP syscall·RawSyscall(SB) 25 | 26 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 27 | JMP syscall·RawSyscall6(SB) 28 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build linux && (ppc64 || ppc64le) && gc 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System calls for ppc64, Linux 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 17 | BL runtime·entersyscall(SB) 18 | MOVD a1+8(FP), R3 19 | MOVD a2+16(FP), R4 20 | MOVD a3+24(FP), R5 21 | MOVD R0, R6 22 | MOVD R0, R7 23 | MOVD R0, R8 24 | MOVD trap+0(FP), R9 // syscall entry 25 | SYSCALL R9 26 | MOVD R3, r1+32(FP) 27 | MOVD R4, r2+40(FP) 28 | BL runtime·exitsyscall(SB) 29 | RET 30 | 31 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 32 | MOVD a1+8(FP), R3 33 | MOVD a2+16(FP), R4 34 | MOVD a3+24(FP), R5 35 | MOVD R0, R6 36 | MOVD R0, R7 37 | MOVD R0, R8 38 | MOVD trap+0(FP), R9 // syscall entry 39 | SYSCALL R9 40 | MOVD R3, r1+32(FP) 41 | MOVD R4, r2+40(FP) 42 | RET 43 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build gc 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System call support for mips64, OpenBSD 11 | // 12 | 13 | // Just jump to package syscall's implementation for all these functions. 14 | // The runtime may know about them. 15 | 16 | TEXT ·Syscall(SB),NOSPLIT,$0-56 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/asm_solaris_amd64.s: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build gc 6 | 7 | #include "textflag.h" 8 | 9 | // 10 | // System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go 11 | // 12 | 13 | TEXT ·sysvicall6(SB),NOSPLIT,$0-88 14 | JMP syscall·sysvicall6(SB) 15 | 16 | TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 17 | JMP syscall·rawSysvicall6(SB) 18 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/auxv_unsupported.go: -------------------------------------------------------------------------------- 1 | // Copyright 2025 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | func Auxv() ([][2]uintptr, error) { 12 | return nil, syscall.ENOTSUP 13 | } 14 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/bluetooth_linux.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Bluetooth sockets and messages 6 | 7 | package unix 8 | 9 | // Bluetooth Protocols 10 | const ( 11 | BTPROTO_L2CAP = 0 12 | BTPROTO_HCI = 1 13 | BTPROTO_SCO = 2 14 | BTPROTO_RFCOMM = 3 15 | BTPROTO_BNEP = 4 16 | BTPROTO_CMTP = 5 17 | BTPROTO_HIDP = 6 18 | BTPROTO_AVDTP = 7 19 | ) 20 | 21 | const ( 22 | HCI_CHANNEL_RAW = 0 23 | HCI_CHANNEL_USER = 1 24 | HCI_CHANNEL_MONITOR = 2 25 | HCI_CHANNEL_CONTROL = 3 26 | HCI_CHANNEL_LOGGING = 4 27 | ) 28 | 29 | // Socketoption Level 30 | const ( 31 | SOL_BLUETOOTH = 0x112 32 | SOL_HCI = 0x0 33 | SOL_L2CAP = 0x6 34 | SOL_RFCOMM = 0x12 35 | SOL_SCO = 0x11 36 | ) 37 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/constants.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos 6 | 7 | package unix 8 | 9 | const ( 10 | R_OK = 0x4 11 | W_OK = 0x2 12 | X_OK = 0x1 13 | ) 14 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/dev_aix_ppc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build aix && ppc 6 | 7 | // Functions to access/create device major and minor numbers matching the 8 | // encoding used by AIX. 9 | 10 | package unix 11 | 12 | // Major returns the major component of a Linux device number. 13 | func Major(dev uint64) uint32 { 14 | return uint32((dev >> 16) & 0xffff) 15 | } 16 | 17 | // Minor returns the minor component of a Linux device number. 18 | func Minor(dev uint64) uint32 { 19 | return uint32(dev & 0xffff) 20 | } 21 | 22 | // Mkdev returns a Linux device number generated from the given major and minor 23 | // components. 24 | func Mkdev(major, minor uint32) uint64 { 25 | return uint64(((major) << 16) | (minor)) 26 | } 27 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/dev_aix_ppc64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build aix && ppc64 6 | 7 | // Functions to access/create device major and minor numbers matching the 8 | // encoding used AIX. 9 | 10 | package unix 11 | 12 | // Major returns the major component of a Linux device number. 13 | func Major(dev uint64) uint32 { 14 | return uint32((dev & 0x3fffffff00000000) >> 32) 15 | } 16 | 17 | // Minor returns the minor component of a Linux device number. 18 | func Minor(dev uint64) uint32 { 19 | return uint32((dev & 0x00000000ffffffff) >> 0) 20 | } 21 | 22 | // Mkdev returns a Linux device number generated from the given major and minor 23 | // components. 24 | func Mkdev(major, minor uint32) uint64 { 25 | var DEVNO64 uint64 26 | DEVNO64 = 0x8000000000000000 27 | return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64) 28 | } 29 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/dev_darwin.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Functions to access/create device major and minor numbers matching the 6 | // encoding used in Darwin's sys/types.h header. 7 | 8 | package unix 9 | 10 | // Major returns the major component of a Darwin device number. 11 | func Major(dev uint64) uint32 { 12 | return uint32((dev >> 24) & 0xff) 13 | } 14 | 15 | // Minor returns the minor component of a Darwin device number. 16 | func Minor(dev uint64) uint32 { 17 | return uint32(dev & 0xffffff) 18 | } 19 | 20 | // Mkdev returns a Darwin device number generated from the given major and minor 21 | // components. 22 | func Mkdev(major, minor uint32) uint64 { 23 | return (uint64(major) << 24) | uint64(minor) 24 | } 25 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/dev_freebsd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Functions to access/create device major and minor numbers matching the 6 | // encoding used in FreeBSD's sys/types.h header. 7 | // 8 | // The information below is extracted and adapted from sys/types.h: 9 | // 10 | // Minor gives a cookie instead of an index since in order to avoid changing the 11 | // meanings of bits 0-15 or wasting time and space shifting bits 16-31 for 12 | // devices that don't use them. 13 | 14 | package unix 15 | 16 | // Major returns the major component of a FreeBSD device number. 17 | func Major(dev uint64) uint32 { 18 | return uint32((dev >> 8) & 0xff) 19 | } 20 | 21 | // Minor returns the minor component of a FreeBSD device number. 22 | func Minor(dev uint64) uint32 { 23 | return uint32(dev & 0xffff00ff) 24 | } 25 | 26 | // Mkdev returns a FreeBSD device number generated from the given major and 27 | // minor components. 28 | func Mkdev(major, minor uint32) uint64 { 29 | return (uint64(major) << 8) | uint64(minor) 30 | } 31 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/dev_netbsd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Functions to access/create device major and minor numbers matching the 6 | // encoding used in NetBSD's sys/types.h header. 7 | 8 | package unix 9 | 10 | // Major returns the major component of a NetBSD device number. 11 | func Major(dev uint64) uint32 { 12 | return uint32((dev & 0x000fff00) >> 8) 13 | } 14 | 15 | // Minor returns the minor component of a NetBSD device number. 16 | func Minor(dev uint64) uint32 { 17 | minor := uint32((dev & 0x000000ff) >> 0) 18 | minor |= uint32((dev & 0xfff00000) >> 12) 19 | return minor 20 | } 21 | 22 | // Mkdev returns a NetBSD device number generated from the given major and minor 23 | // components. 24 | func Mkdev(major, minor uint32) uint64 { 25 | dev := (uint64(major) << 8) & 0x000fff00 26 | dev |= (uint64(minor) << 12) & 0xfff00000 27 | dev |= (uint64(minor) << 0) & 0x000000ff 28 | return dev 29 | } 30 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/dev_openbsd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Functions to access/create device major and minor numbers matching the 6 | // encoding used in OpenBSD's sys/types.h header. 7 | 8 | package unix 9 | 10 | // Major returns the major component of an OpenBSD device number. 11 | func Major(dev uint64) uint32 { 12 | return uint32((dev & 0x0000ff00) >> 8) 13 | } 14 | 15 | // Minor returns the minor component of an OpenBSD device number. 16 | func Minor(dev uint64) uint32 { 17 | minor := uint32((dev & 0x000000ff) >> 0) 18 | minor |= uint32((dev & 0xffff0000) >> 8) 19 | return minor 20 | } 21 | 22 | // Mkdev returns an OpenBSD device number generated from the given major and minor 23 | // components. 24 | func Mkdev(major, minor uint32) uint64 { 25 | dev := (uint64(major) << 8) & 0x0000ff00 26 | dev |= (uint64(minor) << 8) & 0xffff0000 27 | dev |= (uint64(minor) << 0) & 0x000000ff 28 | return dev 29 | } 30 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/dev_zos.go: -------------------------------------------------------------------------------- 1 | // Copyright 2020 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build zos && s390x 6 | 7 | // Functions to access/create device major and minor numbers matching the 8 | // encoding used by z/OS. 9 | // 10 | // The information below is extracted and adapted from macros. 11 | 12 | package unix 13 | 14 | // Major returns the major component of a z/OS device number. 15 | func Major(dev uint64) uint32 { 16 | return uint32((dev >> 16) & 0x0000FFFF) 17 | } 18 | 19 | // Minor returns the minor component of a z/OS device number. 20 | func Minor(dev uint64) uint32 { 21 | return uint32(dev & 0x0000FFFF) 22 | } 23 | 24 | // Mkdev returns a z/OS device number generated from the given major and minor 25 | // components. 26 | func Mkdev(major, minor uint32) uint64 { 27 | return (uint64(major) << 16) | uint64(minor) 28 | } 29 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/endian_big.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | // 5 | //go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 6 | 7 | package unix 8 | 9 | const isBigEndian = true 10 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/endian_little.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | // 5 | //go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh 6 | 7 | package unix 8 | 9 | const isBigEndian = false 10 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/env_unix.go: -------------------------------------------------------------------------------- 1 | // Copyright 2010 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos 6 | 7 | // Unix environment variables. 8 | 9 | package unix 10 | 11 | import "syscall" 12 | 13 | func Getenv(key string) (value string, found bool) { 14 | return syscall.Getenv(key) 15 | } 16 | 17 | func Setenv(key, value string) error { 18 | return syscall.Setenv(key, value) 19 | } 20 | 21 | func Clearenv() { 22 | syscall.Clearenv() 23 | } 24 | 25 | func Environ() []string { 26 | return syscall.Environ() 27 | } 28 | 29 | func Unsetenv(key string) error { 30 | return syscall.Unsetenv(key) 31 | } 32 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/fcntl_darwin.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package unix 6 | 7 | import "unsafe" 8 | 9 | // FcntlInt performs a fcntl syscall on fd with the provided command and argument. 10 | func FcntlInt(fd uintptr, cmd, arg int) (int, error) { 11 | return fcntl(int(fd), cmd, arg) 12 | } 13 | 14 | // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. 15 | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { 16 | _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk)))) 17 | return err 18 | } 19 | 20 | // FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command. 21 | func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error { 22 | _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore)))) 23 | return err 24 | } 25 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc) 6 | 7 | package unix 8 | 9 | func init() { 10 | // On 32-bit Linux systems, the fcntl syscall that matches Go's 11 | // Flock_t type is SYS_FCNTL64, not SYS_FCNTL. 12 | fcntl64Syscall = SYS_FCNTL64 13 | } 14 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/fdset.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos 6 | 7 | package unix 8 | 9 | // Set adds fd to the set fds. 10 | func (fds *FdSet) Set(fd int) { 11 | fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS)) 12 | } 13 | 14 | // Clear removes fd from the set fds. 15 | func (fds *FdSet) Clear(fd int) { 16 | fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS)) 17 | } 18 | 19 | // IsSet returns whether fd is in the set fds. 20 | func (fds *FdSet) IsSet(fd int) bool { 21 | return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0 22 | } 23 | 24 | // Zero clears the set fds. 25 | func (fds *FdSet) Zero() { 26 | for i := range fds.Bits { 27 | fds.Bits[i] = 0 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build gccgo && linux && amd64 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | //extern gettimeofday 12 | func realGettimeofday(*Timeval, *byte) int32 13 | 14 | func gettimeofday(tv *Timeval) (err syscall.Errno) { 15 | r := realGettimeofday(tv, nil) 16 | if r < 0 { 17 | return syscall.GetErrno() 18 | } 19 | return 0 20 | } 21 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/mmap_nomremap.go: -------------------------------------------------------------------------------- 1 | // Copyright 2023 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos 6 | 7 | package unix 8 | 9 | var mapper = &mmapper{ 10 | active: make(map[*byte][]byte), 11 | mmap: mmap, 12 | munmap: munmap, 13 | } 14 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/pagesize_unix.go: -------------------------------------------------------------------------------- 1 | // Copyright 2017 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos 6 | 7 | // For Unix, get the pagesize from the runtime. 8 | 9 | package unix 10 | 11 | import "syscall" 12 | 13 | func Getpagesize() int { 14 | return syscall.Getpagesize() 15 | } 16 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/ptrace_darwin.go: -------------------------------------------------------------------------------- 1 | // Copyright 2020 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build darwin && !ios 6 | 7 | package unix 8 | 9 | func ptrace(request int, pid int, addr uintptr, data uintptr) error { 10 | return ptrace1(request, pid, addr, data) 11 | } 12 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/ptrace_ios.go: -------------------------------------------------------------------------------- 1 | // Copyright 2020 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build ios 6 | 7 | package unix 8 | 9 | func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { 10 | return ENOTSUP 11 | } 12 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/race.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build (darwin && race) || (linux && race) || (freebsd && race) 6 | 7 | package unix 8 | 9 | import ( 10 | "runtime" 11 | "unsafe" 12 | ) 13 | 14 | const raceenabled = true 15 | 16 | func raceAcquire(addr unsafe.Pointer) { 17 | runtime.RaceAcquire(addr) 18 | } 19 | 20 | func raceReleaseMerge(addr unsafe.Pointer) { 21 | runtime.RaceReleaseMerge(addr) 22 | } 23 | 24 | func raceReadRange(addr unsafe.Pointer, len int) { 25 | runtime.RaceReadRange(addr, len) 26 | } 27 | 28 | func raceWriteRange(addr unsafe.Pointer, len int) { 29 | runtime.RaceWriteRange(addr, len) 30 | } 31 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/race0.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos 6 | 7 | package unix 8 | 9 | import ( 10 | "unsafe" 11 | ) 12 | 13 | const raceenabled = false 14 | 15 | func raceAcquire(addr unsafe.Pointer) { 16 | } 17 | 18 | func raceReleaseMerge(addr unsafe.Pointer) { 19 | } 20 | 21 | func raceReadRange(addr unsafe.Pointer, len int) { 22 | } 23 | 24 | func raceWriteRange(addr unsafe.Pointer, len int) { 25 | } 26 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/readdirent_getdents.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build aix || dragonfly || freebsd || linux || netbsd || openbsd 6 | 7 | package unix 8 | 9 | // ReadDirent reads directory entries from fd and writes them into buf. 10 | func ReadDirent(fd int, buf []byte) (n int, err error) { 11 | return Getdents(fd, buf) 12 | } 13 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/readdirent_getdirentries.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build darwin || zos 6 | 7 | package unix 8 | 9 | import "unsafe" 10 | 11 | // ReadDirent reads directory entries from fd and writes them into buf. 12 | func ReadDirent(fd int, buf []byte) (n int, err error) { 13 | // Final argument is (basep *uintptr) and the syscall doesn't take nil. 14 | // 64 bits should be enough. (32 bits isn't even on 386). Since the 15 | // actual system call is getdirentries64, 64 is a good guess. 16 | // TODO(rsc): Can we use a single global basep for all calls? 17 | var base = (*uintptr)(unsafe.Pointer(new(uint64))) 18 | return Getdirentries(fd, buf, base) 19 | } 20 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package unix 6 | 7 | // Round the length of a raw sockaddr up to align it properly. 8 | func cmsgAlignOf(salen int) int { 9 | salign := SizeofPtr 10 | if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) { 11 | // 64-bit Dragonfly before the September 2019 ABI changes still requires 12 | // 32-bit aligned access to network subsystem. 13 | salign = 4 14 | } 15 | return (salen + salign - 1) & ^(salign - 1) 16 | } 17 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_hurd.go: -------------------------------------------------------------------------------- 1 | // Copyright 2022 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build hurd 6 | 7 | package unix 8 | 9 | /* 10 | #include 11 | int ioctl(int, unsigned long int, uintptr_t); 12 | */ 13 | import "C" 14 | import "unsafe" 15 | 16 | func ioctl(fd int, req uint, arg uintptr) (err error) { 17 | r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg)) 18 | if r0 == -1 && er != nil { 19 | err = er 20 | } 21 | return 22 | } 23 | 24 | func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { 25 | r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(uintptr(arg))) 26 | if r0 == -1 && er != nil { 27 | err = er 28 | } 29 | return 30 | } 31 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_hurd_386.go: -------------------------------------------------------------------------------- 1 | // Copyright 2022 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build 386 && hurd 6 | 7 | package unix 8 | 9 | const ( 10 | TIOCGETA = 0x62251713 11 | ) 12 | 13 | type Winsize struct { 14 | Row uint16 15 | Col uint16 16 | Xpixel uint16 17 | Ypixel uint16 18 | } 19 | 20 | type Termios struct { 21 | Iflag uint32 22 | Oflag uint32 23 | Cflag uint32 24 | Lflag uint32 25 | Cc [20]uint8 26 | Ispeed int32 27 | Ospeed int32 28 | } 29 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_linux_alarm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2022 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64) 6 | 7 | package unix 8 | 9 | // SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH 10 | // values. 11 | 12 | //sys Alarm(seconds uint) (remaining uint, err error) 13 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build amd64 && linux && gc 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | //go:noescape 12 | func gettimeofday(tv *Timeval) (err syscall.Errno) 13 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_linux_gc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build linux && gc 6 | 7 | package unix 8 | 9 | // SyscallNoError may be used instead of Syscall for syscalls that don't fail. 10 | func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) 11 | 12 | // RawSyscallNoError may be used instead of RawSyscall for syscalls that don't 13 | // fail. 14 | func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) 15 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build linux && gc && 386 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | // Underlying system call writes to newoffset via pointer. 12 | // Implemented in assembly to avoid allocation. 13 | func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) 14 | 15 | func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) 16 | func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) 17 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build arm && gc && linux 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | // Underlying system call writes to newoffset via pointer. 12 | // Implemented in assembly to avoid allocation. 13 | func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) 14 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build linux && gccgo && 386 6 | 7 | package unix 8 | 9 | import ( 10 | "syscall" 11 | "unsafe" 12 | ) 13 | 14 | func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { 15 | var newoffset int64 16 | offsetLow := uint32(offset & 0xffffffff) 17 | offsetHigh := uint32((offset >> 32) & 0xffffffff) 18 | _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) 19 | return newoffset, err 20 | } 21 | 22 | func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { 23 | fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) 24 | return int(fd), err 25 | } 26 | 27 | func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { 28 | fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) 29 | return int(fd), err 30 | } 31 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build linux && gccgo && arm 6 | 7 | package unix 8 | 9 | import ( 10 | "syscall" 11 | "unsafe" 12 | ) 13 | 14 | func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { 15 | var newoffset int64 16 | offsetLow := uint32(offset & 0xffffffff) 17 | offsetHigh := uint32((offset >> 32) & 0xffffffff) 18 | _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) 19 | return newoffset, err 20 | } 21 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_netbsd_386.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build 386 && netbsd 6 | 7 | package unix 8 | 9 | func setTimespec(sec, nsec int64) Timespec { 10 | return Timespec{Sec: sec, Nsec: int32(nsec)} 11 | } 12 | 13 | func setTimeval(sec, usec int64) Timeval { 14 | return Timeval{Sec: sec, Usec: int32(usec)} 15 | } 16 | 17 | func SetKevent(k *Kevent_t, fd, mode, flags int) { 18 | k.Ident = uint32(fd) 19 | k.Filter = uint32(mode) 20 | k.Flags = uint32(flags) 21 | } 22 | 23 | func (iov *Iovec) SetLen(length int) { 24 | iov.Len = uint32(length) 25 | } 26 | 27 | func (msghdr *Msghdr) SetControllen(length int) { 28 | msghdr.Controllen = uint32(length) 29 | } 30 | 31 | func (msghdr *Msghdr) SetIovlen(length int) { 32 | msghdr.Iovlen = int32(length) 33 | } 34 | 35 | func (cmsg *Cmsghdr) SetLen(length int) { 36 | cmsg.Len = uint32(length) 37 | } 38 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build amd64 && netbsd 6 | 7 | package unix 8 | 9 | func setTimespec(sec, nsec int64) Timespec { 10 | return Timespec{Sec: sec, Nsec: nsec} 11 | } 12 | 13 | func setTimeval(sec, usec int64) Timeval { 14 | return Timeval{Sec: sec, Usec: int32(usec)} 15 | } 16 | 17 | func SetKevent(k *Kevent_t, fd, mode, flags int) { 18 | k.Ident = uint64(fd) 19 | k.Filter = uint32(mode) 20 | k.Flags = uint32(flags) 21 | } 22 | 23 | func (iov *Iovec) SetLen(length int) { 24 | iov.Len = uint64(length) 25 | } 26 | 27 | func (msghdr *Msghdr) SetControllen(length int) { 28 | msghdr.Controllen = uint32(length) 29 | } 30 | 31 | func (msghdr *Msghdr) SetIovlen(length int) { 32 | msghdr.Iovlen = int32(length) 33 | } 34 | 35 | func (cmsg *Cmsghdr) SetLen(length int) { 36 | cmsg.Len = uint32(length) 37 | } 38 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build arm && netbsd 6 | 7 | package unix 8 | 9 | func setTimespec(sec, nsec int64) Timespec { 10 | return Timespec{Sec: sec, Nsec: int32(nsec)} 11 | } 12 | 13 | func setTimeval(sec, usec int64) Timeval { 14 | return Timeval{Sec: sec, Usec: int32(usec)} 15 | } 16 | 17 | func SetKevent(k *Kevent_t, fd, mode, flags int) { 18 | k.Ident = uint32(fd) 19 | k.Filter = uint32(mode) 20 | k.Flags = uint32(flags) 21 | } 22 | 23 | func (iov *Iovec) SetLen(length int) { 24 | iov.Len = uint32(length) 25 | } 26 | 27 | func (msghdr *Msghdr) SetControllen(length int) { 28 | msghdr.Controllen = uint32(length) 29 | } 30 | 31 | func (msghdr *Msghdr) SetIovlen(length int) { 32 | msghdr.Iovlen = int32(length) 33 | } 34 | 35 | func (cmsg *Cmsghdr) SetLen(length int) { 36 | cmsg.Len = uint32(length) 37 | } 38 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build arm64 && netbsd 6 | 7 | package unix 8 | 9 | func setTimespec(sec, nsec int64) Timespec { 10 | return Timespec{Sec: sec, Nsec: nsec} 11 | } 12 | 13 | func setTimeval(sec, usec int64) Timeval { 14 | return Timeval{Sec: sec, Usec: int32(usec)} 15 | } 16 | 17 | func SetKevent(k *Kevent_t, fd, mode, flags int) { 18 | k.Ident = uint64(fd) 19 | k.Filter = uint32(mode) 20 | k.Flags = uint32(flags) 21 | } 22 | 23 | func (iov *Iovec) SetLen(length int) { 24 | iov.Len = uint64(length) 25 | } 26 | 27 | func (msghdr *Msghdr) SetControllen(length int) { 28 | msghdr.Controllen = uint32(length) 29 | } 30 | 31 | func (msghdr *Msghdr) SetIovlen(length int) { 32 | msghdr.Iovlen = int32(length) 33 | } 34 | 35 | func (cmsg *Cmsghdr) SetLen(length int) { 36 | cmsg.Len = uint32(length) 37 | } 38 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2019 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package unix 6 | 7 | func setTimespec(sec, nsec int64) Timespec { 8 | return Timespec{Sec: sec, Nsec: nsec} 9 | } 10 | 11 | func setTimeval(sec, usec int64) Timeval { 12 | return Timeval{Sec: sec, Usec: usec} 13 | } 14 | 15 | func SetKevent(k *Kevent_t, fd, mode, flags int) { 16 | k.Ident = uint64(fd) 17 | k.Filter = int16(mode) 18 | k.Flags = uint16(flags) 19 | } 20 | 21 | func (iov *Iovec) SetLen(length int) { 22 | iov.Len = uint64(length) 23 | } 24 | 25 | func (msghdr *Msghdr) SetControllen(length int) { 26 | msghdr.Controllen = uint32(length) 27 | } 28 | 29 | func (msghdr *Msghdr) SetIovlen(length int) { 30 | msghdr.Iovlen = uint32(length) 31 | } 32 | 33 | func (cmsg *Cmsghdr) SetLen(length int) { 34 | cmsg.Len = uint32(length) 35 | } 36 | 37 | // SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions 38 | // of OpenBSD the syscall is called sysctl instead of __sysctl. 39 | const SYS___SYSCTL = SYS_SYSCTL 40 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build amd64 && solaris 6 | 7 | package unix 8 | 9 | func setTimespec(sec, nsec int64) Timespec { 10 | return Timespec{Sec: sec, Nsec: nsec} 11 | } 12 | 13 | func setTimeval(sec, usec int64) Timeval { 14 | return Timeval{Sec: sec, Usec: usec} 15 | } 16 | 17 | func (iov *Iovec) SetLen(length int) { 18 | iov.Len = uint64(length) 19 | } 20 | 21 | func (msghdr *Msghdr) SetIovlen(length int) { 22 | msghdr.Iovlen = int32(length) 23 | } 24 | 25 | func (cmsg *Cmsghdr) SetLen(length int) { 26 | cmsg.Len = uint32(length) 27 | } 28 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_unix_gc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2016 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) 12 | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) 13 | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) 14 | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) 15 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build linux && (ppc64le || ppc64) && gc 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { 12 | return syscall.Syscall(trap, a1, a2, a3) 13 | } 14 | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { 15 | return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6) 16 | } 17 | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { 18 | return syscall.RawSyscall(trap, a1, a2, a3) 19 | } 20 | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { 21 | return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6) 22 | } 23 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/sysvshm_linux.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build linux 6 | 7 | package unix 8 | 9 | import "runtime" 10 | 11 | // SysvShmCtl performs control operations on the shared memory segment 12 | // specified by id. 13 | func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { 14 | if runtime.GOARCH == "arm" || 15 | runtime.GOARCH == "mips64" || runtime.GOARCH == "mips64le" { 16 | cmd |= ipc_64 17 | } 18 | 19 | return shmctl(id, cmd, desc) 20 | } 21 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/sysvshm_unix_other.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build (darwin && !ios) || zos 6 | 7 | package unix 8 | 9 | // SysvShmCtl performs control operations on the shared memory segment 10 | // specified by id. 11 | func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { 12 | return shmctl(id, cmd, desc) 13 | } 14 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/vgetrandom_linux.go: -------------------------------------------------------------------------------- 1 | // Copyright 2024 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build linux && go1.24 6 | 7 | package unix 8 | 9 | import _ "unsafe" 10 | 11 | //go:linkname vgetrandom runtime.vgetrandom 12 | //go:noescape 13 | func vgetrandom(p []byte, flags uint32) (ret int, supported bool) 14 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go: -------------------------------------------------------------------------------- 1 | // Copyright 2024 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build !linux || !go1.24 6 | 7 | package unix 8 | 9 | func vgetrandom(p []byte, flags uint32) (ret int, supported bool) { 10 | return -1, false 11 | } 12 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go: -------------------------------------------------------------------------------- 1 | // Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT. 2 | 3 | package unix 4 | 5 | import "unsafe" 6 | 7 | // PtraceGetRegSetArm64 fetches the registers used by arm64 binaries. 8 | func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error { 9 | iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))} 10 | return ptracePtr(PTRACE_GETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec)) 11 | } 12 | 13 | // PtraceSetRegSetArm64 sets the registers used by arm64 binaries. 14 | func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error { 15 | iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))} 16 | return ptracePtr(PTRACE_SETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec)) 17 | } 18 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/windows/aliases.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build windows 6 | 7 | package windows 8 | 9 | import "syscall" 10 | 11 | type Errno = syscall.Errno 12 | type SysProcAttr = syscall.SysProcAttr 13 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/windows/eventlog.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build windows 6 | 7 | package windows 8 | 9 | const ( 10 | EVENTLOG_SUCCESS = 0 11 | EVENTLOG_ERROR_TYPE = 1 12 | EVENTLOG_WARNING_TYPE = 2 13 | EVENTLOG_INFORMATION_TYPE = 4 14 | EVENTLOG_AUDIT_SUCCESS = 8 15 | EVENTLOG_AUDIT_FAILURE = 16 16 | ) 17 | 18 | //sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW 19 | //sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource 20 | //sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW 21 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/windows/mksyscall.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build generate 6 | 7 | package windows 8 | 9 | //go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go 10 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/windows/race.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build windows && race 6 | 7 | package windows 8 | 9 | import ( 10 | "runtime" 11 | "unsafe" 12 | ) 13 | 14 | const raceenabled = true 15 | 16 | func raceAcquire(addr unsafe.Pointer) { 17 | runtime.RaceAcquire(addr) 18 | } 19 | 20 | func raceReleaseMerge(addr unsafe.Pointer) { 21 | runtime.RaceReleaseMerge(addr) 22 | } 23 | 24 | func raceReadRange(addr unsafe.Pointer, len int) { 25 | runtime.RaceReadRange(addr, len) 26 | } 27 | 28 | func raceWriteRange(addr unsafe.Pointer, len int) { 29 | runtime.RaceWriteRange(addr, len) 30 | } 31 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/windows/race0.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build windows && !race 6 | 7 | package windows 8 | 9 | import ( 10 | "unsafe" 11 | ) 12 | 13 | const raceenabled = false 14 | 15 | func raceAcquire(addr unsafe.Pointer) { 16 | } 17 | 18 | func raceReleaseMerge(addr unsafe.Pointer) { 19 | } 20 | 21 | func raceReadRange(addr unsafe.Pointer, len int) { 22 | } 23 | 24 | func raceWriteRange(addr unsafe.Pointer, len int) { 25 | } 26 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/windows/str.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | //go:build windows 6 | 7 | package windows 8 | 9 | func itoa(val int) string { // do it here rather than with fmt to avoid dependency 10 | if val < 0 { 11 | return "-" + itoa(-val) 12 | } 13 | var buf [32]byte // big enough for int64 14 | i := len(buf) - 1 15 | for val >= 10 { 16 | buf[i] = byte(val%10 + '0') 17 | i-- 18 | val /= 10 19 | } 20 | buf[i] = byte(val + '0') 21 | return string(buf[i:]) 22 | } 23 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/windows/types_windows_386.go: -------------------------------------------------------------------------------- 1 | // Copyright 2011 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package windows 6 | 7 | type WSAData struct { 8 | Version uint16 9 | HighVersion uint16 10 | Description [WSADESCRIPTION_LEN + 1]byte 11 | SystemStatus [WSASYS_STATUS_LEN + 1]byte 12 | MaxSockets uint16 13 | MaxUdpDg uint16 14 | VendorInfo *byte 15 | } 16 | 17 | type Servent struct { 18 | Name *byte 19 | Aliases **byte 20 | Port uint16 21 | Proto *byte 22 | } 23 | 24 | type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { 25 | PerProcessUserTimeLimit int64 26 | PerJobUserTimeLimit int64 27 | LimitFlags uint32 28 | MinimumWorkingSetSize uintptr 29 | MaximumWorkingSetSize uintptr 30 | ActiveProcessLimit uint32 31 | Affinity uintptr 32 | PriorityClass uint32 33 | SchedulingClass uint32 34 | _ uint32 // pad to 8 byte boundary 35 | } 36 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/windows/types_windows_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2011 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package windows 6 | 7 | type WSAData struct { 8 | Version uint16 9 | HighVersion uint16 10 | MaxSockets uint16 11 | MaxUdpDg uint16 12 | VendorInfo *byte 13 | Description [WSADESCRIPTION_LEN + 1]byte 14 | SystemStatus [WSASYS_STATUS_LEN + 1]byte 15 | } 16 | 17 | type Servent struct { 18 | Name *byte 19 | Aliases **byte 20 | Proto *byte 21 | Port uint16 22 | } 23 | 24 | type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { 25 | PerProcessUserTimeLimit int64 26 | PerJobUserTimeLimit int64 27 | LimitFlags uint32 28 | MinimumWorkingSetSize uintptr 29 | MaximumWorkingSetSize uintptr 30 | ActiveProcessLimit uint32 31 | Affinity uintptr 32 | PriorityClass uint32 33 | SchedulingClass uint32 34 | } 35 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/windows/types_windows_arm.go: -------------------------------------------------------------------------------- 1 | // Copyright 2018 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package windows 6 | 7 | type WSAData struct { 8 | Version uint16 9 | HighVersion uint16 10 | Description [WSADESCRIPTION_LEN + 1]byte 11 | SystemStatus [WSASYS_STATUS_LEN + 1]byte 12 | MaxSockets uint16 13 | MaxUdpDg uint16 14 | VendorInfo *byte 15 | } 16 | 17 | type Servent struct { 18 | Name *byte 19 | Aliases **byte 20 | Port uint16 21 | Proto *byte 22 | } 23 | 24 | type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { 25 | PerProcessUserTimeLimit int64 26 | PerJobUserTimeLimit int64 27 | LimitFlags uint32 28 | MinimumWorkingSetSize uintptr 29 | MaximumWorkingSetSize uintptr 30 | ActiveProcessLimit uint32 31 | Affinity uintptr 32 | PriorityClass uint32 33 | SchedulingClass uint32 34 | _ uint32 // pad to 8 byte boundary 35 | } 36 | -------------------------------------------------------------------------------- /vendor/golang.org/x/sys/windows/types_windows_arm64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2011 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package windows 6 | 7 | type WSAData struct { 8 | Version uint16 9 | HighVersion uint16 10 | MaxSockets uint16 11 | MaxUdpDg uint16 12 | VendorInfo *byte 13 | Description [WSADESCRIPTION_LEN + 1]byte 14 | SystemStatus [WSASYS_STATUS_LEN + 1]byte 15 | } 16 | 17 | type Servent struct { 18 | Name *byte 19 | Aliases **byte 20 | Proto *byte 21 | Port uint16 22 | } 23 | 24 | type JOBOBJECT_BASIC_LIMIT_INFORMATION struct { 25 | PerProcessUserTimeLimit int64 26 | PerJobUserTimeLimit int64 27 | LimitFlags uint32 28 | MinimumWorkingSetSize uintptr 29 | MaximumWorkingSetSize uintptr 30 | ActiveProcessLimit uint32 31 | Affinity uintptr 32 | PriorityClass uint32 33 | SchedulingClass uint32 34 | } 35 | -------------------------------------------------------------------------------- /vendor/gopkg.in/urfave/cli.v1/.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | max-line-length = 120 3 | -------------------------------------------------------------------------------- /vendor/gopkg.in/urfave/cli.v1/.gitignore: -------------------------------------------------------------------------------- 1 | *.coverprofile 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /vendor/gopkg.in/urfave/cli.v1/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | sudo: false 3 | dist: trusty 4 | osx_image: xcode8.3 5 | go: 1.8.x 6 | 7 | os: 8 | - linux 9 | - osx 10 | 11 | cache: 12 | directories: 13 | - node_modules 14 | 15 | before_script: 16 | - go get github.com/urfave/gfmrun/... || true 17 | - go get golang.org/x/tools/cmd/goimports 18 | - if [ ! -f node_modules/.bin/markdown-toc ] ; then 19 | npm install markdown-toc ; 20 | fi 21 | 22 | script: 23 | - ./runtests gen 24 | - ./runtests vet 25 | - ./runtests test 26 | - ./runtests gfmrun 27 | - ./runtests toc 28 | -------------------------------------------------------------------------------- /vendor/gopkg.in/urfave/cli.v1/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: "{build}" 2 | 3 | os: Windows Server 2016 4 | 5 | image: Visual Studio 2017 6 | 7 | clone_folder: c:\gopath\src\github.com\urfave\cli 8 | 9 | environment: 10 | GOPATH: C:\gopath 11 | GOVERSION: 1.8.x 12 | PYTHON: C:\Python36-x64 13 | PYTHON_VERSION: 3.6.x 14 | PYTHON_ARCH: 64 15 | 16 | install: 17 | - set PATH=%GOPATH%\bin;C:\go\bin;%PATH% 18 | - go version 19 | - go env 20 | - go get github.com/urfave/gfmrun/... 21 | - go get -v -t ./... 22 | 23 | build_script: 24 | - python runtests vet 25 | - python runtests test 26 | - python runtests gfmrun 27 | -------------------------------------------------------------------------------- /vendor/gopkg.in/urfave/cli.v1/cli.go: -------------------------------------------------------------------------------- 1 | // Package cli provides a minimal framework for creating and organizing command line 2 | // Go applications. cli is designed to be easy to understand and write, the most simple 3 | // cli application can be written as follows: 4 | // func main() { 5 | // cli.NewApp().Run(os.Args) 6 | // } 7 | // 8 | // Of course this application does not do much, so let's make this an actual application: 9 | // func main() { 10 | // app := cli.NewApp() 11 | // app.Name = "greet" 12 | // app.Usage = "say a greeting" 13 | // app.Action = func(c *cli.Context) error { 14 | // println("Greetings") 15 | // return nil 16 | // } 17 | // 18 | // app.Run(os.Args) 19 | // } 20 | package cli 21 | 22 | //go:generate python ./generate-flag-types cli -i flag-types.json -o flag_generated.go 23 | -------------------------------------------------------------------------------- /vendor/gopkg.in/yaml.v2/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | go: 4 | - "1.4.x" 5 | - "1.5.x" 6 | - "1.6.x" 7 | - "1.7.x" 8 | - "1.8.x" 9 | - "1.9.x" 10 | - "1.10.x" 11 | - "1.11.x" 12 | - "1.12.x" 13 | - "1.13.x" 14 | - "1.14.x" 15 | - "tip" 16 | 17 | go_import_path: gopkg.in/yaml.v2 18 | -------------------------------------------------------------------------------- /vendor/gopkg.in/yaml.v2/NOTICE: -------------------------------------------------------------------------------- 1 | Copyright 2011-2016 Canonical Ltd. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /vendor/gopkg.in/yaml.v2/writerc.go: -------------------------------------------------------------------------------- 1 | package yaml 2 | 3 | // Set the writer error and return false. 4 | func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool { 5 | emitter.error = yaml_WRITER_ERROR 6 | emitter.problem = problem 7 | return false 8 | } 9 | 10 | // Flush the output buffer. 11 | func yaml_emitter_flush(emitter *yaml_emitter_t) bool { 12 | if emitter.write_handler == nil { 13 | panic("write handler not set") 14 | } 15 | 16 | // Check if the buffer is empty. 17 | if emitter.buffer_pos == 0 { 18 | return true 19 | } 20 | 21 | if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil { 22 | return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error()) 23 | } 24 | emitter.buffer_pos = 0 25 | return true 26 | } 27 | -------------------------------------------------------------------------------- /vendor/gopkg.in/yaml.v3/NOTICE: -------------------------------------------------------------------------------- 1 | Copyright 2011-2016 Canonical Ltd. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /vendor/layeh.com/gopher-luar/.gitignore: -------------------------------------------------------------------------------- 1 | /.idea/ 2 | -------------------------------------------------------------------------------- /vendor/layeh.com/gopher-luar/map_iter.go: -------------------------------------------------------------------------------- 1 | //+build !go1.12 2 | 3 | package luar 4 | 5 | import "github.com/yuin/gopher-lua" 6 | 7 | func mapCall(L *lua.LState) int { 8 | ref, _ := check(L, 1) 9 | 10 | keys := ref.MapKeys() 11 | i := 0 12 | fn := func(L *lua.LState) int { 13 | if i >= len(keys) { 14 | return 0 15 | } 16 | L.Push(New(L, keys[i].Interface())) 17 | L.Push(New(L, ref.MapIndex(keys[i]).Interface())) 18 | i++ 19 | return 2 20 | } 21 | L.Push(L.NewFunction(fn)) 22 | return 1 23 | } 24 | -------------------------------------------------------------------------------- /vendor/layeh.com/gopher-luar/map_iter_go112.go: -------------------------------------------------------------------------------- 1 | //+build go1.12 2 | 3 | package luar 4 | 5 | import "github.com/yuin/gopher-lua" 6 | 7 | func mapCall(L *lua.LState) int { 8 | ref, _ := check(L, 1) 9 | 10 | iter := ref.MapRange() 11 | exhausted := false 12 | fn := func(L *lua.LState) int { 13 | if exhausted || !iter.Next() { 14 | exhausted = true 15 | return 0 16 | } 17 | L.Push(New(L, iter.Key().Interface())) 18 | L.Push(New(L, iter.Value().Interface())) 19 | return 2 20 | } 21 | L.Push(L.NewFunction(fn)) 22 | return 1 23 | } 24 | -------------------------------------------------------------------------------- /vendor/layeh.com/gopher-luar/util.go: -------------------------------------------------------------------------------- 1 | package luar 2 | 3 | import ( 4 | "fmt" 5 | "reflect" 6 | "unicode" 7 | "unicode/utf8" 8 | 9 | "github.com/yuin/gopher-lua" 10 | ) 11 | 12 | func check(L *lua.LState, idx int) (ref reflect.Value, mt *Metatable) { 13 | ud := L.CheckUserData(idx) 14 | ref = reflect.ValueOf(ud.Value) 15 | mt = &Metatable{LTable: ud.Metatable.(*lua.LTable)} 16 | return 17 | } 18 | 19 | func tostring(L *lua.LState) int { 20 | ud := L.CheckUserData(1) 21 | if stringer, ok := ud.Value.(fmt.Stringer); ok { 22 | L.Push(lua.LString(stringer.String())) 23 | } else { 24 | L.Push(lua.LString(ud.String())) 25 | } 26 | return 1 27 | } 28 | 29 | func getUnexportedName(name string) string { 30 | first, n := utf8.DecodeRuneInString(name) 31 | if n == 0 { 32 | return name 33 | } 34 | return string(unicode.ToLower(first)) + name[n:] 35 | } 36 | -------------------------------------------------------------------------------- /webserver/webserver.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "net/http" 6 | "log" 7 | ) 8 | 9 | func doNothing(w http.ResponseWriter, r *http.Request) { 10 | fmt.Fprintf(w, "done") 11 | } 12 | 13 | func main() { 14 | http.HandleFunc("/", doNothing) 15 | err := http.ListenAndServe(":8088", nil) 16 | if err != nil { 17 | log.Fatal("Error: ", err) 18 | } 19 | } --------------------------------------------------------------------------------