offirmo-shell-lib
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:A collection of useful bash reusable functions for robust and advanced shell scripts. Used to power cvm and simpli.
Offirmo-shell-lib
=================

The Offirmo Shell Lib (OSL) is a collection of useful shell functions for robust and advanced shell scripts.

Requirements : I use bash.

Available at : https://github.com/Offirmo/offirmo-shell-lib

Note : The OSL has unit tests for maximum quality.


Introduction
============

The user story
--------------
I found myself having to write a lot of shell scripts, for work and for home.

Over the time, I had to develop a lot of useful functions.

One day, I cleaned them up and packed them in this lib. Enjoy !

Requirements
------------
The OSL is targeted at bash. Never tested with another shell.

Installation
------------
Get a copy of the files and set your path to point to the OSL "bin" dir.
You can check if it works by typing :

 `osl_help.sh`

In your scripts, add this as soon as possible (ideally first instruction in your script for maximum features) :

 `source osl_lib_init.sh`

Usage
-----

On demand, source other OSL files as needed :

libs :
- `osl_lib_archive.sh     `  --> decompress any archive file
- `osl_lib_capabilities.sh`  --> detect version and check capabilities of host OS
- `osl_lib_debug.sh       `  --> traces
- `osl_lib_exit.sh        `  --> to abort execution with nice messages
- `osl_lib_file.sh        `  --> path manipulations, ensure a line is
- `osl_lib_init.sh        `  --> allow output saving and various nice hacks
- `osl_lib_mutex.sh       `  --> create and use mutexes (note : use 'rsrc' wrapper for additional features)
- `osl_lib_output.sh      `  --> various display functions : error, warnings...
- `osl_lib_rsrc.sh        `  --> safe rsrc manipulation protected by mutex
- `osl_lib_sspec.sh       `  --> shell unit tests, inspired from rspec
- `osl_lib_stamp.sh       `  --> manip of stamp files to detect access time and interferences (note : use 'rsrc' wrapper for additional features)
- `osl_lib_string.sh      `  --> string utilities
- `osl_lib_ui.sh          `  --> UI functions like asking yes or no, pause...
- `osl_lib_version.sh     `  --> version comparison utilities (newer/older)
- `osl_inc_ansi_codes.sh  `  --> defines ANSI codes for color

Special files :
- `osl_help.sh`  --> callable, display current OSL version
- `osl_inc_env.sh`  --> various constants

Experimental / in progress :
- `osl_lib_interrupt_func.sh`  --> exit hook (for mutex auto release)

Env variables : OSL will respond to a few environment variables :
* OSL_console_has_light_scheme=true (default false) will adjust colored output styles to be more readable on a white background

That's it. You can now use the features.


The functions
=============

For now, look inside the unit tests of the file you're interested in, or look in the file itself.

TODO
====

- Better doc ;)
- improve decompression function
- refactor mutex code to avoid duplication
- mutex switch from read to write ?
- forward and aggregate state in rsrc fuctions
- Make default values redefinable
- Make it easier to disable color
- remove "bashisms"
- asserts ?
- More...


本源码包内暂不包含可直接显示的源代码文件,请下载源码包。