Skip to content

a bash library to make life a little bit easier

License

Notifications You must be signed in to change notification settings

MediaEase/mflibs

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

60 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CodeFactor Grade Bash Version 4 License GitHub stars GitHub code size in bytes

a bash library to make life a little bit easier
Report Bug Β· Request Feature
explore the docs

Table of Contents
  1. About mflibs
  2. Getting Started
  3. Usage
  4. Libraries
  5. Contributing
  6. License
  7. Authors
  8. Acknowledgments

🧐 About mflibs

A collection of various functions and scripts for BASH 4.0 or greater:

reduce duplicated code

add your own libraries with ease

πŸš€ Getting Started

Prerequisites

  • git

Installation

mfserv can be installed via a git clone:

git clone https://github.com/mschf-dev/mflibs ./opt/mflibs

🎈 Usage

mflibs can be sourced by adding the following to your script:

. /path/to/mflibs/src/init

libraries are able to be imported by:

mflibs::import lib1,lib2

πŸ—‚ Libraries

array

the array library handles retrieving information and manipulating information in arrays

mflibs::array::contains()

check if item is in array

arguments:
  • $1: needle
  • $2: haystack
return codes:
  • 0 success
  • 1 no match
  • 2 missing arguments
example:
declare -a array=("chocolate" "berries" "truffle")
mflibs::array::contains "berries" ${array[@]}

mflibs::array::is_empty()

check if array is empty

arguments:
  • $1: array to be checked
return codes:
  • 0 empty
  • 2 not empty
example:
declare -a array=("chocolate" "berries" "truffle")
mflibs::array::is_empty "${array[@]}"

mflibs::array::glue()

join array elements with a delimiter

arguments:
  • $1: glue
  • $2: array to be glued
return codes:
  • 0 success
  • 2 missing arguments
example:
declare -a array=("chocolate" "berries" "truffle")
mflibs::array::glue "," "${array[@]}"

mflibs::array::merge()

merge two arrays

arguments:
  • $1: first array
  • $2: second array
return codes:
  • 0 success
  • 2 missing arguments
example:
declare -a array=("chocolate" "berries")
declare -a array2=("apples" "banana")
mflibs::array::merge "array[@]" "array2[@]"
#example assign:
readarray -t b <<< $(mflibs::array::merge "array[@]" "array2[@]")

dir

the dir library handles directory manipulation

mflibs::dir::mkcd()

creates and moves into directory

arguments:
  • $1: dir
return codes:
  • 0 success
  • 1 mkdir fail
  • 2 cd fail
  • 3 missing arguments
example:
mflibs::dir::mkcd "newdir"

distro

a library for distro related functions

mflibs::distro::codename()

identify linux codename

function has no arguments

return codes:
  • 0 success
  • 1 unable to detect
example:
mflibs::distro::codename

mflibs::distro::version()

identify linux version

function has no arguments

return codes:
  • 0 success
  • 1 unable to detect
example:
mflibs::distro::version

file

a library for file functions

mflibs::file::extract()

extracts based on extension

arguments:
  • $1: file to extract
return codes:
  • 0 success
  • 1 unable to extract
  • 2 invalid amount of arguments
  • 3 file does not exist
example:
mflibs::file::extract file.tar.gz

info

a library for information functions

mflibs::info::ipv4::dig()

outputs IPv4 address via dig

return codes:
  • 0 success
  • 1 unable to resolve ip
example:
mflibs::info::ipv4::dig

mflibs::info::ipv4::local()

outputs local IPv4 address

return codes:
  • 0 success
  • 1 unable to resolve ip
example:
mflibs::info::ipv4::local

log

a library for logging functions

mflibs::log()

runs and logs command

arguments:
  • 1: command to log
example:
mflibs::log "echo hi"

shell

a library for shell output functions

NOTE: ALL FUNCTIONS THAT HAVE mflibs::shell::text can be appended with colors: mflibs::shell::text::white::bold is an example

mflibs::shell::misc::nl()

outputs new line

function has no arguments

mflibs::shell::output()

standard shell output

arguments:
  • $1: string
example:
mflibs::shell::text "hi"

mflibs::shell::text::bold()

bold shell output

arguments:
  • $1: string
example:
mflibs::shell::text::bold "hi"

mflibs::shell::text::underline()

underline shell output

arguments:
  • $1: string
example:
mflibs::shell::text::underline "hi"

mflibs::shell::text::standout()

standout shell output

arguments:
  • $1: string
example:
mflibs::shell::text::standout "hi"

mflibs::shell::icon::arrow()

arrow shell functions

arguments:
  • $1: string
example:
mflibs::shell::icon::arrow "hi"

mflibs::shell::icon::warning()

warning shell outputs

arguments:
  • $1: string
example:
mflibs::shell::icon::warning "hi"

mflibs::shell::icon::check()

check shell outputs

arguments:
  • $1: string
example:
mflibs::shell::icon::check "hi"

mflibs::shell::icon::cross()

cross shell outputs

arguments:
  • $1: string
example:
mflibs::shell::icon::cross "hi"

status

a library for status handling

mflibs::status::error()

outputs error to term

arguments:
  • $1: error message
example:
mflibs::status::error "error_message" 1

mflibs::status::kill()

outputs error to term and exits with provided return

arguments:
  • $1: error message
  • $2: exit code
example:
mflibs::status::kill "error_message" 1

mflibs::status::warn()

outputs warn to term

arguments:
  • $1: error message
example:
mflibs::status::warn "warning_message" 1

mflibs::status::success()

outputs success to term

arguments:
  • $1: success message
example:
mflibs::status::success "success_message"

mflibs::status::info()

outputs info to term

arguments:
  • $1: info message
example:
mflibs::status::info "info_message"

verify

a library for verification functions

mflibs::verify::email()

verifies that arg1 is valid email address

arguments:
  • $1: email
return codes:
  • 0 valid email
  • 1 invalid email
  • 2 missing arguments
example:
if mflibs::verify::email "[email protected]"; then echo valid; fi

mflibs::verify::ipv6()

verifies that arg1 is valid ipv6 address

arguments:
  • $1: ipv6 address
return codes:
  • 0 valid ipv6
  • 1 invalid ipv6
  • 2 missing arguments
example:
if mflibs::verify::ipv6 "2001:db8:85a3:8d3:1319:8a2e:370:7348"; then echo valid; fi

mflibs::verify::ipv4()

verifies that arg1 is valid ipv4 address

arguments:
  • $1: ipv4 address
return codes:
  • 0 valid ipv4
  • 1 invalid ipv4
  • 2 missing arguments
example:
if mflibs::verify::ipv4 "192.168.0.1"; then echo valid; fi

mflibs::verify::alpha()

verifies that arg1 is alpha

arguments:
  • $1: string to verify
return codes:
  • 0 valid input
  • 1 invalid input
  • 2 missing arguments
example:
if mflibs::verify::alpha "abc"; then echo valid; fi

mflibs::verify::alpha_numeric()

verifies that arg1 is alpha-numeric

arguments:
  • $1: string to verify
return codes:
  • 0 valid input
  • 1 invalid input
  • 2 missing arguments
example:
if mflibs::verify::alpha_numeric "abc123"; then echo valid; fi

mflibs::verify::numeric()

verifies that arg1 is alpha-numeric

arguments:
  • $1: string to verify
return codes:
  • 0 valid input
  • 1 invalid input
  • 2 missing arguments
example:
if mflibs::verify::numeric "123"; then echo valid; fi

mflibs::verify::alpha_dash()

verifies that arg1 is alpha (with underscores/dashes)

arguments:
  • $1: string to verify
return codes:
  • 0 valid input
  • 1 invalid input
  • 2 missing arguments
example:
if mflibs::verify::alpha_dash "abc_"; then echo valid; fi

mflibs::verify::version()

compares two numbers

arguments:
  • $1: version number to verify
  • $2: version number to verify
return codes:
  • 0 equal
  • 1 $1 -gt $2
  • 2 $1 -lt $2
  • 3 missing arguments
  • 4 invalid format
example:
mflibs::verify::version "3.0.0" "3.0.1"
echo $?

mflibs::verify::sudo()

checks if root or sudo

function has no arguments

return codes:
  • 0 success
  • 1 fail
example:
mflibs::verify::sudo

mflibs::verify::command()

verifies that arg1 is a valid command

arguments:
  • $1: command to verify
return codes:
  • 0 command exists
  • 1 command doesn't exist
  • 2 missing arguments
example:
mflibs::verify::command "nginx"

verbose

verbosity can be enabled on import, there are no additional commands as the libraries will output if it detects the "verbose" lib:

mflibs::import verbose

🀝 Contributing

Contributions are what make the world go around. We would love to be able to accept any new contributions, but I have not written the contribution guidelines yet.

πŸ“ƒ License

Distributed under the BSD-3-Clause License. See license for more information.

✍️ Authors

@mschf2175 - Idea & Initial work

See the list of contributors who participated in this project.

πŸ“£ Acknowledgements

  • bash-utility - some functions have been used and or adapted from this github
  • shields - A service for concise, consistent badges.
  • codefactor - Automated code review for GitHub.

(back to top)

About

a bash library to make life a little bit easier

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%