| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- #!/bin/bash
- # v.0.0.0.2
- # 23.4.2024
- # is_number(value)
- # checks if value is whole number numeric string
- # returns: 0 - not a number
- # 1 - is a number
- is_number() {
- local value="$1"
- re='^[0-9]+$'
- if ! [[ $value =~ $re ]] ; then
- return 0
- else
- return 1
- fi
- }
- # is_email(value)
- # checks if value is valid email string
- # returns: 0 - not a email
- # 1 - is a email
- is_email() {
- local email="$1"
- local regex="^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$"
- if [[ "$email" =~ $regex ]]; then
- return 1
- else
- return 0
- fi
- }
- # argument_exists(argument_value argument_name)
- # checks if argument is empty, then print message and exit with code 1
- # returns: 0 - not exists
- # 1 - exists
- argument_exists() {
- # Zkontroluj, zda je zadán první argument
- if [ -z "$1" ]; then
- echo "$2 argument must be filled."
- return 0
- fi
- return 1
- }
- # dir_get_size(path_to_dir)
- # returns directory size if exists, otherwise exit 1
- # returns: size - size in bytes
- # exit 1 - path_to_dir not exists
- dir_get_size(){
- # Zkontroluj, zda existuje adresář path_to_dir
- local dir="$1"
- if [ ! -d $dir ]; then
- exit 1
- fi
- result=$(du -sb $dir | cut -f1)
- echo $result
- }
- # dir_ensure_trailing_slash(path_to_dir)
- # returns full path with trailing slash at the end, therefore full path not exists.
- # returns: full path wirh trailing slash
- dir_ensure_trailing_slash() {
- local path="$1"
- if [[ ! "$path" == */ ]]; then
- path="${path}/"
- fi
- echo "$path"
- }
- # dir_get_name(path_to_dir)
- # returns directory name from full path, therefore full path not exists.
- # returns: name of directory
- dir_get_name() {
- local full_path=$(dir_ensure_trailing_slash "$1")
- local directory_name="${full_path##*/}"
- echo "$directory_name"
- }
- # filename_get_ymwd(prefix extension)
- # creates filename that contains <prefix>_<year>_<month>_<week>_<day-of-week>.<extension>
- # returns: filename
- filename_get_ymwd(){
- # Získání aktuálního data
- local current_date=$(date +'%Y-%m-%d') # Například: 2024-04-22
- # Získání čísla roku
- local year=$(date +'%Y') # Například: 2024
- # Získání čísla měsíce
- local month=$(date +'%m') # Například: 04
- # Získání čísla týdne v roce
- local week_number=$(date +'%U') # Například: 16
- # Získání čísla dne v týdnu (0 = neděle, 1 = pondělí, ..., 6 = sobota)
- local day_of_week=$(date +'%w') # Například: 6 (sobota)
- # Sestavení jména souboru
- local file_name="$1_${year}_${month}_${week_number}_${day_of_week}.$2"
- echo $file_name
- }
- # mail_send(recipient subject body is-test)
- # sends text email with subject and body to recipient via sendmail
- # if is-test="true" then just print message if set to "false" or argument is missing send via sendmail
- mail_send(){
- local recipient=$1
- local subject="$2"
- local body="$3"
- local is-test=$4
- is_email $recipient
- if [ $? -eq 0 ]; then
- echo "<recipient> argument '$recipient' is not valid email address."
- exit 1
- fi
- argument_exists "$subject" "<subject>"
- echo "$body" | mail -s "$subject" $recipient
- }
|