Fs.lua: Difference between revisions

From Alpine Linux
Line 110: Line 110:


===search_replace ===
===search_replace ===
 
'''INPUT:'''<BR>
 
This library function required the following inputs/parameters.
* Path to file
** Example: /root/mynotes
* Search
** What to find
*Replace
**What to replace the found items with
'''OUTPUT:'''<BR>
This library function deliverers the following output/parameters.
* Table
'''CODING EXAMPLE:'''
-- Include/Call for this library
require("fs")
t = fs.search_replace("/etc/shorewall/interfaces", "eth0", "eth1")
--t will be a table that contains /etc/shorewall/interfaces with eth0 replaced as eth1


=== write_file ===
=== write_file ===

Revision as of 16:41, 22 November 2007

is_dir

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

  • Path to directory
    • Example: /var/log/snort

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

  • nil or "directory"
    • If inputstring is a existing directory, the output is "directory" (not nil)

CODING EXAMPLE:

-- Include/Call for this library
require("fs")
-- Check if url is a folder
liboutput = fs.is_dir("/var/log/snort")

If directory exist 'liboutput' would contain string:

directory

In directory is missing 'liboutput' would contain nil (nothing).

is_file

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

  • Path to file
    • Example: /var/log/messages

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

  • nil or "file"
    • If inputstring is a existing file, the output is "file" (not nil)

CODING EXAMPLE:

-- Include/Call for this library
require("fs")
-- Check if url is a file
liboutput = fs.is_file("/var/log/messages")

If file exist 'liboutput' would contain string:

file

In file is missing 'liboutput' would contain nil (nothing).


is_link

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

  • Path to link
    • Example: /etc/rcL.d/S50sshd

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

  • nil or "file"
    • If inputstring is a existing file, the output is "file" (not nil)

CODING EXAMPLE:

-- Include/Call for this library
require("fs")
-- Check if url is a file
liboutput = fs.is_link("/etc/rcL.d/S50sshd")

If file exist 'liboutput' would contain string:

file

In file is missing 'liboutput' would contain nil (nothing).

read_file / read_file_as_array

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

  • Path to file
    • Example: /var/log/messages

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

  • Filecontent
    • The filecontent is presented as a string (output comes as a table if 'read_file_as_array' is used)

CODING EXAMPLE:

-- Include/Call for this library
require("fs")
-- Get filecontent
liboutput = fs.read_file("/var/log/messages")

'liboutput' could contain something like:

Nov  6 13:17:01 inspiron /USR/SBIN/CRON[21751]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Nov  6 13:43:31 inspiron -- MARK --

CODING EXAMPLE (read_file_as_array):
If 'read_file_as_array' is used, you could do something like this see the output:

for a,b in ipairs(liboutput) do print(a,b) end

The output would look something like:

1 Nov  6 13:17:01 inspiron /USR/SBIN/CRON[21751]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
2 Nov  6 13:43:31 inspiron -- MARK --

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("fs")
-- file test.txt is from dos/windows
require "fs"
f = io.open("test.txt")
c = f:read("*a")
file = fs.dostounix(c)
--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("fs")
t = fs.remove_blanks_comments("/etc/shorewall/rules")
-- t is a table with only pertinent lines

search_replace

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

  • Path to file
    • Example: /root/mynotes
  • Search
    • What to find
  • Replace
    • What to replace the found items with

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

  • Table

CODING EXAMPLE:

-- Include/Call for this library
require("fs")
t = fs.search_replace("/etc/shorewall/interfaces", "eth0", "eth1")
--t will be a table that contains /etc/shorewall/interfaces with eth0 replaced as eth1

write_file

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

  • Path to file
    • Example: /root/mynotes
  • String
    • Content that should be written to file

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

  • Output is written to file
    • The content of the inputstring is written to the file.
    • Data is not appended to file

CODING EXAMPLE:

-- Include/Call for this library
require("fs")
-- Write to file
fs.write_file("/var/log/messages", "Hello World!")

find

Lets you search for dir entries matching filespec.
Could be compared to 'find / -type d | grep tmp' (not sure)
INPUT:
This library function required the following inputs/parameters.

  • SearchString
    • This string is what we are searching for in the dirnames.
  • Path
    • This path is where we start searching
    • Search is recursive (not sure)

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

  • SearchResult
    • The SearchResult as a table (array)

CODING EXAMPLE:

-- Include/Call for this library
require("fs")
-- Search for dir
liboutput = fs.find("tmp", "/") 

You could do something like this see the output:

for a,b in ipairs(liboutput) do print(a,b) end

The output would look something like:

1 /usr/tmp
2 /usr/tmp/apk_add