Skip to content

essentialkaos/ek

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Code Climate Maintainability Codacy badge
GitHub Actions CI Status GitHub Actions CodeQL Status

Platform supportSub-packagesProjects with EKCI StatusContributingLicense


Auxiliary packages for Go 1.22+.

Platform support

Currently we support Linux and macOS (except some packages). All packages have stubs for unsupported platforms (for autocomplete).

Note

Some packages cannot be used on some platforms, such as the fsutil package, which cannot be used on Windows because it uses syscalls, or system subpackages that require procfs. But you can still write code on these platforms, because almost all packages have stubs with information about all the constants, variables, and functions available on other platforms. For example, Sublime with LSP on Windows will show all the information about methods that are only available on the Linux platform. All stub descriptions contain the ❗ symbol at the beginning to indicate unsupported code. Code with stubs can be compiled, but any method call from stubs will cause panic.

Tip

If you are using SublimeText 4 (4075+), we strongly recommend that you install extended Go syntax highlighting with support for fmtc tags.

Sub-packages

  • ansi — Package provides methods for working with ANSI/VT100 control sequences
  • cache — Package provides a cache with file system storage
  • cache — Package provides a cache with memory storage
  • color — Package provides methods for working with colors
  • cron — Package provides methods for working with cron expressions
  • csv — Package with simple CSV parser compatible with default Go parser
  • easing — Package with easing functions (Back, Bounce, Circ, Cubic, Elastic, Expo, Linear, Quad, Quint, Sine)
  • emoji — Package provides methods for working with emojis
  • env — Package provides methods for working with environment variables
  • errors — Package provides methods for working with errors
  • events — Package provides methods and structs for creating event-driven systems
  • directio — Package provides methods for reading/writing files with direct io
  • fmtc — Package provides methods similar to fmt for colored output (more info and examples)
  • fmtutil — Package provides methods for output formatting
  • fmtutil/barcode — Package provides methods to generate colored representation of unique data
  • fmtutil/panel — Package contains methods for rendering panels with text
  • fmtutil/table — Package contains methods and structs for rendering data in tabular format
  • fsutil — Package provides methods for working with files on POSIX compatible systems (BSD/Linux/macOS)
  • hash — Package hash contains different hash algorithms and utilities
  • httputil — Package provides methods for working with HTTP request/responses
  • i18n — Package provides methods and structs for internationalization
  • initsystem — Package provides methods for working with different init systems (sysv, upstart, systemd)
  • initsystem/sdnotify — Package provides methods methods for sending notifications to systemd
  • jsonutil — Package provides methods for working with JSON data
  • knf — Package provides methods for working with configuration files in KNF format
  • knf/united — Package provides united configuration (knf + options + environment variables)
  • log — Package with an improved logger
  • lock — Package provides methods for working with lock files
  • lscolors — Package provides methods for colorizing file names based on colors from dircolors
  • mathutil — Package provides some additional math methods
  • netutil — Package provides methods for working with network
  • options — Package provides methods for working with command-line options
  • pager — Package provides methods for pager setup (like more/less)
  • passthru — Package provides Reader and Writer with information about the amount of data being passed
  • passwd — Package contains methods for working with passwords
  • path — Package for working with paths (fully compatible with base path package)
  • pid — Package for working with PID files
  • pluralize — Package provides methods for pluralization
  • progress — Package provides methods and structs for creating terminal progress bar
  • protip — Package for displaying usage tips
  • rand — Package for generating random data
  • req — Package simplify working with an HTTP requests
  • secstr — Package provides methods and structs for working with protected (secure) strings
  • setup — provides methods to install/unistall application as a service on the system
  • signal — Package provides methods for handling POSIX signals
  • sliceutil — Package provides methods for working with slices
  • sortutil — Package provides methods for sorting slices
  • spellcheck — Package provides spellcheck based on Damerau–Levenshtein distance algorithm
  • spinner — Package provides methods for creating spinner animation for long-running tasks
  • strutil — Package provides methods for working with strings
  • support — Package provides methods for collecting and printing support information about system
  • system — Package provides methods for working with system data (system metrics/users)
  • system/container — Package provides methods for checking container engine info
  • system/exec — Package provides methods for executing commands
  • system/process — Package provides methods for gathering information about active processes
  • system/procname — Package provides methods for changing process name in the process tree
  • system/sensors — Package provide methods for collecting sensors information
  • system/sysctl — Package provide methods for reading kernel parameters
  • terminal — Package provides methods for printing messages to terminal
  • terminal/input — Package provides methods for working with user input
  • terminal/tty — Package provides methods for working with TTY
  • timeutil — Package provides methods for working with time and date
  • tmp — Package provides methods for working with temporary data
  • usage — Package usage provides methods and structs for generating usage info for command-line tools
  • usage/update — Package contains update checkers for different services
  • usage/completion/bash — Package provides methods for generating bash completion
  • usage/completion/fish — Package provides methods for generating fish completion
  • usage/completion/zsh — Package provides methods for generating zsh completion
  • uuid — Package provides methods for generating version 4 and 5 UUID's
  • version — Package version provides methods for working with semver version info

Projects with EK

It's hard to show all the possibilities of all the subpackages. But you can take a look at these open source projects that use almost all the features of this package in real-world tasks.

  • aligo — Utility for checking and viewing Golang struct alignment info
  • artefactor — Utility for downloading artefacts from GitHub
  • atlassian-cloud-backuper — Tool for backuping Atlassian cloud services (Jira and Confluence)
  • Bastion — Utility for temporary disabling access to server
  • bibop — Utility for testing command-line tools
  • bop — Utility for generating bibop tests for RPM packages
  • Deadline — Simple utility for controlling application working time
  • fz — Simple tool for formatting go-fuzz output
  • GoHeft — Utility for listing sizes of all used static libraries compiled into golang binary
  • GoMakeGen — Utility for generating makefiles for golang applications
  • icecli — Command-line tools for Icecast
  • IMC — Simple terminal dashboard for Icecast
  • init-exporter — Utility for exporting services described by Procfile to init system
  • jira-reindex-runner — Application for periodical running Jira re-index process
  • knf — Simple utility for reading values from KNF files
  • MDToc — Utility for generating table of contents for markdown files
  • path — Dead simple tool for working with paths
  • perfecto — Tool for checking perfectly written RPM specs
  • RBInstall — Utility for installing prebuilt ruby to RBEnv
  • RDS — Tool for Redis orchestration
  • Redis CLI Monitor — Tiny redis client for renamed MONITOR commands
  • Redis Latency Monitor — Tiny Redis client for latency measurement
  • Redis Monitor Top — Tiny Redis client for aggregating stats from MONITOR flow
  • rep — YUM repository management utility
  • rsz — Simple utility for image resizing
  • scratch — Simple utility for generating blank files for Go apps, utilities and packages
  • SHDoc — Tool for viewing and exporting docs for shell scripts
  • Sonar — Utility for showing user Slack status in Atlassian Jira
  • SourceIndex — Utility for generating an index for source archives
  • SSLScan Client — Pretty awesome command-line client for public SSLLabs API
  • subdy — CLI for subdomain.center API
  • swptop — Simple utility for viewing swap consumption of processes
  • uc — Simple utility for counting unique lines
  • updown-badge-server — Service for generating badges for updown.io checks
  • yo — Command-line YAML processor

CI Status

Branch Status
master CI
develop CI

Contributing

Before contributing to this project please read our Contributing Guidelines.

License

Apache License, Version 2.0