NAME

Lazy::Utils - Utilities for lazy

VERSION

version 1.05

SYNOPSIS

Utilities for lazy

Methods

trim($str)

trims given string

$str: string will be trimed

return value: trimed string

ltrim($str)

trims left given string

$str: string will be trimed

return value: trimed string

rtrim($str)

trims right given string

$str: string will be trimed

return value: trimed string

file_get_contents($path)

gets all contents of file in string type

$path: path of file

return value: file contents in string type, otherwise undef because of errors

file_put_contents($path, $contents)

puts all contents of file in string type

$path: path of file

$contents: file contents in string type

return value: success 1, otherwise undef

shellmeta($s)

escapes metacharacters of double-quoted shell string

$s: double-quoted shell string

return value: escaped string

_system($cmd, @argv)

executes a system command like Perl system call

$cmd: command

@argv: command line arguments

return value: exit code of command. 511 if fatal error occurs

returned $?: return code of wait call like on Perl system call

returned $!: system error message like on Perl system call

bashReadLine($prompt)

reads a line using bash

$prompt: prompt

return value: line

commandArgs($prefs, @argv)

resolves command line arguments, eg: -opt1 -opt2=val2 --opt3 val3 --opt4=val4 cmd param1 param2 ... -- long parameter

$prefs: preferences in hash type

    optionAtAll: accepts options after command or first parameter otherwise evaluates as parameter, by default 0

    noCommand: use first parameter instead of command, by default 0

@argv: command line arguments

return value: { -opt1 => '', --opt2 => 'val2', --opt3 => 'val3', --opt4 => 'val4', command => 'cmd', parameters => ['param1', 'param2', ...], long => 'long parameter' }

cmdArgs(@argv)

resolves command line arguments using commandArgs with default preferences

whereisBin($name, $path)

searches valid binary in search path

$name: binary name

$path: search path, by default "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

return value: binary path founded in search path, otherwise undef

fileCache($tag, $expiry, $subref)

gets most recent cached value in file cache by given tag and caller function if there is cached value in expiry period. Otherwise tries to get current value using $subref, puts value in cache and cleanups old cache values.

$tag: tag for cache

$expiry: cache expiry period

    <0: always gets most recent cached value if there is any cached value. Otherwise tries to get current value using $subref, puts and cleanups.

    =0: never gets cached value. Always tries to get current value using $subref, puts and cleanups.

    >0: gets most recent cached value in cache if there is cached value in expiry period. Otherwise tries to get current value using $subref, puts and cleanups.

$subref: sub reference to get current value

return value: cached or current value, otherwise undef if there isn't cached value and current value doesn't get

INSTALLATION

To install this module type the following

perl Makefile.PL
make
make test
make install

from CPAN

cpan -i Lazy::Utils

DEPENDENCIES

This module requires these other modules and libraries:

  • Switch

  • FindBin

  • Cwd

  • File::Basename

  • JSON

REPOSITORY

GitHub https://github.com/orkunkaraduman/Lazy-Utils

CPAN https://metacpan.org/release/Lazy-Utils

AUTHOR

Orkun Karaduman <orkunkaraduman@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2017 Orkun Karaduman <orkunkaraduman@gmail.com>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.