Skip to content

BashLib64 is a Bash library that provides a simple abstraction layer for developing multi-platform scripts

License

Notifications You must be signed in to change notification settings

automation64/bashlib64

Repository files navigation

Project: BashLib64

██████╗  █████╗ ███████╗██╗  ██╗██╗     ██╗██████╗  ██████╗ ██╗  ██╗
██╔══██╗██╔══██╗██╔════╝██║  ██║██║     ██║██╔══██╗██╔════╝ ██║  ██║
██████╔╝███████║███████╗███████║██║     ██║██████╔╝███████╗ ███████║
██╔══██╗██╔══██║╚════██║██╔══██║██║     ██║██╔══██╗██╔═══██╗╚════██║
██████╔╝██║  ██║███████║██║  ██║███████╗██║██████╔╝╚██████╔╝     ██║
╚═════╝ ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚══════╝╚═╝╚═════╝  ╚═════╝      ╚═╝

Overview

BashLib64 is a Bash library that provides a simple abstraction layer for developing multi-platform automation scripts.

Module Purpose
bl64-api Interact with RESTful APIs
bl64-ans Interact with Ansible
bl64-arc Manage archive files
bl64-aws Interact with Amazon AWS
bl64-bsh Interact with Bash shell
bl64-check Check for conditions and report status
bl64-cnt Interact with container engines
bl64-cryp Cryptography tools
bl64-dbg Show shell debugging information
bl64-fmt Format text data
bl64-fs Manage local filesystem
bl64-gcp Interact with Google Cloud
bl64-hlm Interact with Helm
bl64-iam Manage OS identity and access service
bl64-k8s Interact with Kubernetes
bl64-lib Setup script run-time environment
bl64-log Write messages to logs
bl64-mdb Interact with MongoDB
bl64-msg Display messages
bl64-os Identify OS attributes and provide command aliases
bl64-pkg Manage native OS packages
bl64-py Interact with Python
bl64-rbac Manage role based access service
bl64-rnd Generate random data
bl64-rxtx Transfer and Receive data over the network
bl64-tf Interact with Terraform
bl64-time Manage date-time data
bl64-txt Manipulate text files content
bl64-ui User Interface
bl64-vcs Manage Version Control System
bl64-xsv Manipulate CSV like text files

Deployment

OS Compatibility

The library has been tested on the following operating systems:

  • AlmaLinux: 8,9
  • Alpine: 3
  • AmazonLinux: 2023
  • CentOS: 7,8,9
  • Debian: 9,10,11
  • Fedora: 33,34,35,36,37,38,39,40,41
  • MacOS (*): 12,13,14,15
  • OracleLinux; 7,8,9
  • RedHatEnterpriseLinux: 8,9
  • RockyLinux: 8,9
  • SuSELinuxEnterpriseServer: 15
  • Ubuntu: 18,20,21,22,23,24

(*) Requires Bash4 (e.g. homebrew install bash)

Prerequisites

  • Minimum Bash version: 4

Installation

  • Download the library to the project directory

    curl -O https://raw.githubusercontent.com/automation64/bashlib64/main/bashlib64.bash
  • Add the library loader to the target script:

    source "<PROJECT_DIR>/bashlib64.bash"
  • The library is also available as release assets:

    • bashlib64-stand-alone.tgz: single library file (bashlib64.bash) with all modules.
    • bashlib64-split.tgz: two library files: bashlib64-core.bash for main modules and bashlib64-opt.bash for remaining ones.
    • bashlib64-modular.tgz: one file per module (bashlib64-module-*.bash)

Contributing

Help on implementing new features and maintaining the code base is welcomed.

License

Apache-2.0

Author

About

BashLib64 is a Bash library that provides a simple abstraction layer for developing multi-platform scripts

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks