Format.lua

From Alpine Linux
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

dostounix

INPUT:
This library function required the following inputs/parameters.

  • file contents
    • Example: c = file:read("*a")
  • String with EOL

OUTPUT:
This library function deliverers the following output/parameters.

  • Output is returned minus the \r characters

CODING EXAMPLE:

-- Include/Call for this library
require("format")
-- file test.txt is from dos/windows
require "format"
f = io.open("test.txt")
c = f:read("*a")
file = format.dostounix(c)
f:close()
--file now contains the contents of test.txt without the \r char

remove_blanks_comments

INPUT:
This library function required the following inputs/parameters.

  • Path
    • Example: /root/mynotes

OUTPUT:
This library function deliverers the following output/parameters.

  • Returns a table to iterate over minus the blank and commented lines

CODING EXAMPLE:

-- Include/Call for this library
require("format")
f = io.open("/etc/shorewall/rules")
c = f:read("*a")
t = format.remove_blanks_comments(c)
f:close()
-- t is a table with only pertinent lines

table_to_string

INPUT:
This library required the following inputs/parameters.

  • Delimiter
    • Could be one or more chars.
  • Array
    • Data which is to be joined into a string.

OUTPUT:
This library deliverers the following output/parameters.

  • String
    • Could be something like "Word, Word, Word, Word"

CODING EXAMPLE:

-- Set variable/Call for this library
require "format"
-- Create a array of data (Not sure if the next row is correct)
arraytojoin = { "Bird", "Fish", "Cow", "Hammer" }
-- Process the data (note the delimiter)
liboutput = format.table_to_string(";", arraytojoin)
Bird;Fish;Cow;Hammer

string_to_table

NOTE: for cut functionality do something like
print(format.string_to_table(" ", "This is a test")[2])
gives you the second field which is .... is

INPUT:
This library required the following inputs/parameters.

  • Delimiter
    • Could be one or more chars.
  • String or line from a file: bobo~foo~bar~baz~1
    • Data is to be split into a table

OUTPUT:
This library deliverers the following output/parameters.

  • Table
    • { 1 = "bobo", 2 = "foo", 3 = "bar", 4 = "baz", 5 = 1}

CODING EXAMPLE:

-- Set variable/Call for this library
require "format"
-- Grab the line from a file or input it into the funtcion
line = "bobo~foo~bar~baz~1"
-- Process the data (note the delimiter)
t = format.string_to_table("~", line)
't' would contain: 
{ 1 = "bobo", 2 = "foo", 3 = "bar", 4 = "baz", 5 = 1}
for a,b in ipairs(t) do print(a,b) end
1 bobo
2 foo
3 bar
4 baz
5 1

cap_begin_word

INPUT:
This library required the following inputs/parameters.

  • String

OUTPUT:
This library deliverers the following output/parameters.

  • String with all first letters of words capitalized

CODING EXAMPLE:

-- Set variable/Call for this library
require "format"
-- Grab the line from a file or input it into the function
line = "The rain in spain stays mainly in the plain"
-- Process the data (note the delimiter)
print(format.cap_begin_word(line))
--The Rain In Spain Stays Mainly In The Plain

search_replace

INPUT:
This library required the following inputs/parameters.

  • File path or Table

OUTPUT:
This library deliverers the following output/parameters.

  • Table

CODING EXAMPLE:

-- Set variable/Call for this library
require "format"
t = { "The man ran home", "See the man walk", "The man laughed"}
print(format.search_replace(t, "[Th]he man", "The boy")[1])
--The boy ran home

search_for_lines

INPUT:
This library required the following inputs/parameters.

  • File path or table

OUTPUT:
This library deliverers the following output/parameters.

  • Table
    • THIS WILL SEARCH FOR THE WHOLE LINE CONTAINING THE MATCH

CODING EXAMPLE:

-- Set variable/Call for this library
--say have file like /etc/conf.d/cron with CRON_OPTS="" or more will find them
require "format"
for a,b in ipairs(format.search_for_lines("/etc/conf.d/cron", "OPTS")) do print(a,b) end

Expand Bash Syntax Vars

Expand a string with bash-like variables with lua variables

INPUT:
This library requires the following inputs/parameters.

  • String

OUTPUT:
This library deliverers the following output/parameters.

  • String

CODING EXAMPLE:

animal = { cows=3, dogs=2 }
print (expand_bash_syntax_vars ("You have ${animal.dogs} dogs"))

You have 2 dogs