6 Commits

17 changed files with 848 additions and 128 deletions

30
LICENSE
View File

@@ -1,11 +1,29 @@
Copyright (c) <year> <owner>. Copyright 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: This is distributed with BSD-3-Clause license with the following terms and
condition:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

122
history.txt Normal file
View File

@@ -0,0 +1,122 @@
------------------------------------------------------------------------------
Initial version from Beyond Linux From Scratch by
* James Robertson <jameswrobertson@earthlink.net>
* Dagmar d'Surreal <rivyqntzne@pbzpnfg.arg>
------------------------------------------------------------------------------
Current version from Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
------------------------------------------------------------------------------
Version history:
------------------------------------------------------------------------------
# 21/11/2022 v3.2.2
Fixed taz compression level analysis
Fixed typo in dpkgs
# 20/11/2022 v3.2.1
Fix some messages
Make dpkgs rpm aware (more to come)
Removed version history from main script and revert declaration order
Added required license information in all files
Completed LICENSE file
# 18/11/2022 v3.2.0
Created disp command for display and make use of it
# 10/11/2022 v3.1.1
genpwd: test if password is doable
# 08/11/2022 v3.1.0
Added password generator
# 07/11/2022 v3.0.1
Added concatenation to rmspc
Added ku
Error managed in meteo
# 27/08/2022 v3.0.0
Splitted everything in several files
Added rain screensaver
# 29/07/2022 v2.8.2
Added warning for non bash or zsh users
# 19/07/2022 v2.8.1
Few cleanups, fixes and optimizations
# 24/06/2022 v2.8.0
Added backtrace, error and settrace
[bugfix] corrected showinfo
# 22/06/2022 v2.7.1
[bugfix] few minor corrections
Added help command
# 21/06/2022 v2.7.0
Added isipv4 and isipv6 and use it in rmhost as an improvement
Removed konsole save and restore not working
# 18/10/2021 v2.6.3
Changed PS1 for status bar style version
Few minor improvements
# 26/02/2021 v2.6.2
[bugfix] taz: corrected bug with trailing slash on directories
# 25/12/2020 v2.6.1
Add check on rmhost
Improvements rmspc
Created expendlist
# 24/10/2020 v2.6.0
Added session save and restore for Konsole
# 11/09/2020 v2.5.3
Few more aliases, improved code consistancy and typo,
Improved utaz, removed showdiskmap, removed remaining French,
Added license information for future publication
# 06/03/2020 v2.5.2
Few aliases sorted out
# 05/03/2020 v2.5.1
Language consistancy fix
Added pigz support in taz
# 03/03/2020 v2.5.0
Added command taz and rmspc
Renamed auzip => utaz and improved it
# 02/03/2020 v2.4.0
Added command auzip
# 31/01/2020 v2.3.2
Figlet: changed default font to ansi_shadow
# 16/01/2020 v2.3.1
[bugfix] non-interactive were blocked with some functions
# 08/01/2020 v2.3.0
Added use of figlet and neofetch as a motd replace
# 16/12/2019 v2.2.0
Added showinfo
Primary write of showdiskmap
# 24/09/2019 v2.1.2
[bugfix] bug in profile version display
# 23/09/2019 v2.1.1
[bugfix] dpkgs
# 16/09/2018 v2.1.0
Added rmhost, setc, setfr
More locales management
# 04/02/2017 v2.0.1
clean improvements (--shell)
# 24/10/2015 v2.0.0
Added advanced functionnalities (clean, srr, etc.)
# 16/02/2013 v1.0.0
Initial version

View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Smartly uncompress archives (zip only) # Smartly uncompress archives (zip only)
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@@ -33,7 +68,7 @@ utaz()
;; ;;
"-"*) "-"*)
echo "Invalid option, use \"utaz --help\" to display options list" disp E "Invalid option, use \"utaz --help\" to display options list"
echo echo
return 1 return 1
;; ;;
@@ -45,55 +80,54 @@ utaz()
esac esac
done done
[[ $createdir && $nodir ]] && echo "*** Error: --create-dir and --no-dir options are mutually exclusive." [[ $createdir && $nodir ]] && disp E "The --create-dir and --no-dir options are mutually exclusive."
[[ ! $LIST ]] && local LIST="." [[ ! $LIST ]] && local LIST="."
for zitem in $LIST; do for zitem in $LIST; do
[[ $(ls $zitem/*.zip 2> /dev/null | wc -l) -eq 0 ]] && [[ $(ls $zitem/*.zip 2> /dev/null | wc -l) -eq 0 ]] &&
echo "$zitem contains no supported archive file, skipping." && disp W "$zitem contains no supported archive file, skipping." &&
continue continue
for f in $zitem/*.zip; do for f in $zitem/*.zip; do
echo -n "Processing archive $zitem/$f... " disp I "Processing archive $zitem/$f... "
local dir=${f::-4} local dir=${f::-4}
mkdir -p $dir mkdir -p $dir
[[ $? -gt 0 ]] && [[ $? -gt 0 ]] &&
echo "[ filesystem can't create directories, exit ]" && disp E "The filesystem can't create directories, exit!" &&
return 1 return 1
unzip -o $f -d $dir > /dev/null 2>&1 unzip -o $f -d $dir > /dev/null 2>&1
case $? in case $? in
0) 0)
[[ $willrm ]] && rm -f $f && echo -n "Deleted ! " [[ $willrm ]] && rm -f $f && disp I "File $zitem/$f deleted."
;; ;;
1) 1)
echo "No deletion on warnings " disp W "Compression program returned a warning: deletion canceled."
;; ;;
*) *)
echo "[ zip file corrupted, failed ]" disp E "The zip file seems corrupted, failed."
rm -rf $dir > /dev/null 2>&1 rm -rf $dir > /dev/null 2>&1
continue continue
;; ;;
esac esac
if [[ $createdir ]]; then if [[ $createdir ]]; then
echo -n "[ subdir created, " disp I "Archive extracted successfully in subdirectory."
elif [[ $nodir ]]; then elif [[ $nodir ]]; then
mv ./$dir/* ./ && rmdir $dir mv ./$dir/* ./ && rmdir $dir
echo -n "[ No subdir, " disp I "Archive extracted successfully, no subdirectory needed."
else else
subdirs=$(find $dir -maxdepth 1 | wc -l) subdirs=$(find $dir -maxdepth 1 | wc -l)
if [[ $subdirs -eq 2 ]]; then if [[ $subdirs -eq 2 ]]; then
mv ./$dir/* ./ && rmdir $dir mv ./$dir/* ./ && rmdir $dir
echo -n "[ No subdir, " disp I "Archive extracted successfully, no subdirectory needed."
else else
echo -n "[ subdir created, " disp I "Archive extracted successfully in subdirectory."
fi fi
fi fi
echo " OK ]"
done done
done done
} }
@@ -107,15 +141,15 @@ taz ()
_doxz() _doxz()
{ {
command -v xz >/dev/null 2>&1 || { command -v xz >/dev/null 2>&1 || {
echo -e >&2 "\t*** The program 'xz' is not installed, aborting." disp E "The program 'xz' is not installed, aborting."
return 127 return 127
} }
[[ $4 ]] && local verb='-v' [[ $4 ]] && local verb='-v'
# Display a warning for this format # Display a warning for this format
echo -e "\t! Warning: xz format is not suited for long term archiving." disp W "xz format is not suited for long term archiving."
echo -e "\t See https://www.nongnu.org/lzip/xz_inadequate.html for details." disp I "See https://www.nongnu.org/lzip/xz_inadequate.html for details."
# Compresse to xz (lzma2) - Deprecated # Compresse to xz (lzma2) - Deprecated
xz $verb --compress --keep -$3 -T $2 $1 xz $verb --compress --keep -$3 -T $2 $1
@@ -129,14 +163,14 @@ taz ()
command -v plzip >/dev/null 2>&1 || { command -v plzip >/dev/null 2>&1 || {
command -v lzip >/dev/null 2>&1 || { command -v lzip >/dev/null 2>&1 || {
echo -e >&2 "\t*** Program 'plzip' or 'lzip' are not installed, aborting." disp E "Program 'plzip' or 'lzip' are not installed, aborting."
return 127 return 127
} }
local command=lzip local command=lzip
local procopt="" local procopt=""
[[ $2 -gt 1 ]] && [[ $2 -gt 1 ]] &&
echo -e "\t! Warning: lzip doesn't support multithreading, falling back to 1 thread." && disp W "lzip doesn't support multithreading, falling back to 1 thread." &&
echo -e "\t* Consitder installing plzip to obtain multithreading abilities." disp W "Consitder installing plzip to obtain multithreading abilities."
} }
[[ $4 ]] && local verb="-vv" [[ $4 ]] && local verb="-vv"
@@ -153,14 +187,14 @@ taz ()
command -v pigz >/dev/null 2>&1 || { command -v pigz >/dev/null 2>&1 || {
command -v gzip >/dev/null 2>&1 || { command -v gzip >/dev/null 2>&1 || {
echo -e >&2 "\t*** Programs 'pigz' or 'gzip' are not installed, aborting." disp E "Programs 'pigz' or 'gzip' are not installed, aborting."
return 127 return 127
} }
local command="gzip --compress" local command="gzip --compress"
local procopt="" local procopt=""
[[ $2 -gt 1 ]] && [[ $2 -gt 1 ]] &&
echo -e "\t! Warning: gzip doesn't support multithreading, falling back to 1 thread." && disp W "gzip doesn't support multithreading, falling back to 1 thread." &&
echo -e "\t* Consitder installing pigz to obtain multithreading abilities." disp W "Consitder installing pigz to obtain multithreading abilities."
} }
[[ $4 ]] && local verb="--verbose" [[ $4 ]] && local verb="--verbose"
@@ -177,14 +211,14 @@ taz ()
command -v pbzip2 >/dev/null 2>&1 || { command -v pbzip2 >/dev/null 2>&1 || {
command -v bzip2 >/dev/null 2>&1 || { command -v bzip2 >/dev/null 2>&1 || {
echo -e >&2 "\t*** The program 'pbzip2' or 'bzip2' are not installed, aborting." disp E "The program 'pbzip2' or 'bzip2' are not installed, aborting."
return 127 return 127
} }
local command=bzip2 local command=bzip2
local procopt="" local procopt=""
[[ $2 -gt 1 ]] && [[ $2 -gt 1 ]] &&
echo -e "\t! Warning: bzip2 doesn't support multithreading, falling back to 1 thread." && disp W "bzip2 doesn't support multithreading, falling back to 1 thread." &&
echo -e "\t* Consitder installing pbzip2 to obtain multithreading abilities." disp W "Consitder installing pbzip2 to obtain multithreading abilities."
} }
[[ $4 ]] && local verb="-v" [[ $4 ]] && local verb="-v"
@@ -197,12 +231,12 @@ taz ()
_dolzo() _dolzo()
{ {
command -v lzop >/dev/null 2>&1 || { command -v lzop >/dev/null 2>&1 || {
echo -e >&2 "\t*** The program 'lzop' is not installed, aborting." disp E "The program 'lzop' is not installed, aborting."
return 127 return 127
} }
[[ $4 ]] && local verb='-v' [[ $4 ]] && local verb='-v'
[[ $2 -gt 1 ]] && echo -e "\t! Warning: lzop doesn't support multithreading, falling back to 1 thread." [[ $2 -gt 1 ]] && disp W "lzop doesn't support multithreading, falling back to 1 thread."
# Compresse au format lzo # Compresse au format lzo
lzop --keep -$3 $1 lzop --keep -$3 $1
@@ -223,7 +257,8 @@ taz ()
echo " given, the smalest is kept" echo " given, the smalest is kept"
echo " -p, --parallel Number of threads to use (if allowed by underlying utility)" echo " -p, --parallel Number of threads to use (if allowed by underlying utility)"
echo " -v, --verbose Display progress where possible" echo " -v, --verbose Display progress where possible"
echo " -1, .., -9 Compression level to use [1=fast/big, 9=slow/small]" echo " -q, --quiet Display less messages (only errors and warnings)"
echo " -1, .., -9 Compression level to use [1=fast/biggest, 9=slow/smallest]"
echo echo
echo "Supported archive format:" echo "Supported archive format:"
echo " Param.| programs | Algo. | Description" echo " Param.| programs | Algo. | Description"
@@ -254,14 +289,17 @@ taz ()
local verbose=1 local verbose=1
;; ;;
"-"[1..9]) "-q"|"--quiet")
local complevel=$(echo $opt | sed 's/-//') QUIET=1
;; ;;
"-"*) "-"*)
echo "Invalid option, use taz --help to display options list" local complevel=$(echo $opt | sed 's/-//')
echo if ! [[ $complevel =~ ^[1-9]+$ ]]; then
return 1 disp E "Invalid option, use taz --help to display options list"
echo
return 1
fi
;; ;;
*) *)
@@ -273,22 +311,23 @@ taz ()
[[ ! $compform ]] && compform=lz # safe and efficient (unless data are already compressed) [[ ! $compform ]] && compform=lz # safe and efficient (unless data are already compressed)
[[ ! $nproc ]] && nproc=1 [[ ! $nproc ]] && nproc=1
[[ ! $complevel ]] && complevel=6 [[ ! $complevel ]] && complevel=6
[[ $verbose -gt 1 && $QUIET -gt 1 ]] &&
disp E "The --verbose and --quiet options can't be used together."
for item in $LIST; do for item in $LIST; do
local donetar=0 local donetar=0
echo "--- Processing $item..." disp I "Processing $item..."
if [[ -d $item ]]; then if [[ -d $item ]]; then
echo -ne "\t* Creating $item.tar... " disp I "\t Creating $item.tar... "
tar -cf $item{.tar,} tar -cf $item{.tar,}
if [[ ! $? -eq 0 ]]; then if [[ ! $? -eq 0 ]]; then
echo "[ failed, skipping ]" disp E "tar file creation failed, skipping to next item."
continue continue
fi fi
local donetar=1 local donetar=1
echo "[ OK ]"
fi fi
local fname=$item local fname=$item
@@ -296,15 +335,15 @@ taz ()
# Skip compression part if tar is asked # Skip compression part if tar is asked
if [[ $compform != "tar" ]]; then if [[ $compform != "tar" ]]; then
echo -e "\t* Compressing archive..." disp I "\t Compressing archive..."
_do$compform $fname $nproc $complevel $verbose _do$compform $fname $nproc $complevel $verbose
[[ ! $? -eq 0 ]] && case $? in [[ ! $? -eq 0 ]] && case $? in
127) 127)
echo -e "\t*** Compression program unavailable, aborting." disp E "Compression program unavailable, aborting."
return 127 return 127
;; ;;
*) *)
echo -e "\t*** Compression program returned an error, not deleting anything if asked, skipping to next item." disp E "Compression program returned an error, not deleting anything if asked, skipping to next item."
continue continue
;; ;;
esac esac
@@ -313,12 +352,10 @@ taz ()
fi fi
if [[ $willrm ]]; then if [[ $willrm ]]; then
echo -en "\t* Deleting original source as asked... " disp I "\t Deleting original source as asked... "
rm -r $item && echo '[ OK ]' || echo '[ failed ]' rm -r $item
fi fi
echo "--- Done"
done done
unset QUIET
} }
export -f taz export -f taz

View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Display a backtrace # Display a backtrace
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@@ -52,18 +87,18 @@ settrace ()
;; ;;
"--on") "--on")
if [[ $status == "on" ]]; then if [[ $status == "on" ]]; then
echo "Warning: ERR signal trap is already set, replacing previous trap!" disp W "ERR signal trap is already set, replacing previous trap!"
fi fi
trap "error" ERR trap "error" ERR
;; ;;
"--off") "--off")
if [[ $status != "on" ]]; then if [[ $status != "on" ]]; then
echo "Warning: ERR signal trap is already unset!" disp W "ERR signal trap is already unset!"
fi fi
trap - ERR trap - ERR
;; ;;
"--status") "--status")
echo "ERR trap signal is ${status}." disp "ERR trap signal is ${status}."
;; ;;
esac esac
done done

148
profile.d/disp.sh Normal file
View File

@@ -0,0 +1,148 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------
# Color definitions
# ------------------------------------------------------------------------------
# Standard 16 colors display declaration
export DEFAULTFG="\e[0;39m"
export DEFAULTBG="\e[0;49m"
export DEFAULTCOL=${DEFAULTBG}${DEFAULTFG}
# Regular Colors
export Black='\e[0;30m'
export Red='\e[0;31m'
export Green='\e[0;32m'
export Yellow='\e[0;33m'
export Blue='\e[0;34m'
export Purple='\e[0;35m'
export Cyan='\e[0;36m'
export White='\e[0;37m'
# Bold
export BBlack='\e[1;30m'
export BRed='\e[1;31m'
export BGreen='\e[1;32m'
export BYellow='\e[1;33m'
export BBlue='\e[1;34m'
export BPurple='\e[1;35m'
export BCyan='\e[1;36m'
export BWhite='\e[1;37m'
# Underline
export UBlack='\e[4;30m'
export URed='\e[4;31m'
export UGreen='\e[4;32m'
export UYellow='\e[4;33m'
export UBlue='\e[4;34m'
export UPurple='\e[4;35m'
export UCyan='\e[4;36m'
export UWhite='\e[4;37m'
# Background
export On_Black='\e[40m'
export On_Red='\e[41m'
export On_Green='\e[42m'
export On_Yellow='\e[43m'
export On_Blue='\e[44m'
export On_Purple='\e[45m'
export On_Cyan='\e[46m'
export On_White='\e[47m'
# High Intensity
export IBlack='\e[0;90m'
export IRed='\e[0;91m'
export IGreen='\e[0;92m'
export IYellow='\e[0;93m'
export IBlue='\e[0;94m'
export IPurple='\e[0;95m'
export ICyan='\e[0;96m'
export IWhite='\e[0;97m'
# Bold High Intensity
export BIBlack='\e[1;90m'
export BIRed='\e[1;91m'
export BIGreen='\e[1;92m'
export BIYellow='\e[1;93m'
export BIBlue='\e[1;94m'
export BIPurple='\e[1;95m'
export BICyan='\e[1;96m'
export BIWhite='\e[1;97m'
# High Intensity backgrounds
export On_IBlack='\e[0;100m'
export On_IRed='\e[0;101m'
export On_IGreen='\e[0;102m'
export On_IYellow='\e[0;103m'
export On_IBlue='\e[0;104m'
export On_IPurple='\e[0;105m'
export On_ICyan='\e[0;106m'
export On_IWhite='\e[0;107m'
# ------------------------------------------------------------------------------
# Display a message
# ------------------------------------------------------------------------------
disp()
{
case $1 in
"I")
local heads="[ ${IGreen}info${DEFAULTFG} ]"
shift
[[ -z $QUIET || $QUIET -ne 1 ]] && echo -e "${heads} $@"
;;
"W")
local heads="[ ${IYellow}Warning${DEFAULTFG} ]"
shift
echo -e "${heads} $@" >&2
;;
"E")
local heads="[ ${IRed}ERROR${DEFAULTFG} ]"
shift
echo -e "${heads} $@" >&2
;;
"D")
local heads"[ ${ICyan}debug${DEFAULTFG} ]"
shift
[[ -n $DEBUG && $DEBUG -gt 1 ]] && echo -e "${heads} $@"
;;
"*")
local heads=""
[[ -z $QUIET || $QUIET -ne 1 ]] && echo -e "$@"
;;
esac
unset heads
}
export -f disp

View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# expandlist : treat wildcards in a file/directory list # expandlist : treat wildcards in a file/directory list
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@@ -47,7 +82,7 @@ clean ()
;; ;;
"-"*) "-"*)
echo "Invalid option, use \"clean --help\" to display usage." disp E "Invalid option, use \"clean --help\" to display usage."
echo echo
return 1 return 1
;; ;;
@@ -86,8 +121,8 @@ export -f clean
mcd () mcd ()
{ {
if [[ ! $# -eq 1 ]] ; then if [[ ! $# -eq 1 ]] ; then
echo "Create a directory then goes inside." disp E "Create a directory then goes inside."
echo "Usage: mcd <directory>" disp E "Usage: mcd <directory>"
return 1 return 1
fi fi
mkdir -pv $1 && cd $1 mkdir -pv $1 && cd $1
@@ -112,7 +147,7 @@ rmspc ()
echo " -h, --help Display that help screen" echo " -h, --help Display that help screen"
echo " -r, --recursive Treat subdirectories of the given directory" echo " -r, --recursive Treat subdirectories of the given directory"
echo " -c, --subst-char Change the replacement character (default is underscore)" echo " -c, --subst-char Change the replacement character (default is underscore)"
echo " -v, --verbose Display what is being done" echo " -v, --verbose Display more details (recursive mode only)"
echo " -s, --shell Do nothing and display commands that would be executed" echo " -s, --shell Do nothing and display commands that would be executed"
echo echo
echo "Note: if the --subst-char option is given without parameters, spaces will be" echo "Note: if the --subst-char option is given without parameters, spaces will be"
@@ -142,7 +177,7 @@ rmspc ()
;; ;;
*) *)
echo "Invalid parameter, use \"rmspc --help\" to display options list" disp E "Invalid parameter, use \"rmspc --help\" to display options list"
echo echo
return 1 return 1
;; ;;
@@ -155,12 +190,12 @@ rmspc ()
for f in *; do for f in *; do
[[ $recurs ]] && [[ -d "$f" ]] && ( [[ $recurs ]] && [[ -d "$f" ]] && (
[[ $verb ]] && echo "-- Entering directory $(pwd)/$f ..." [[ $verb ]] && disp I "Entering directory $(pwd)/$f ..."
local lastdir=$f local lastdir=$f
pushd "$f" > /dev/null pushd "$f" > /dev/null
rmspc $@ rmspc $@
popd > /dev/null popd > /dev/null
[[ $verb ]] && echo "-- Leaving directory $(pwd)/$lastdir" [[ $verb ]] && disp I "Leaving directory $(pwd)/$lastdir"
unset lastdir unset lastdir
) )

View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Display list of commands and general informations # Display list of commands and general informations
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------

View File

@@ -1,9 +1,44 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Show profile version # Show profile version
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
ver () ver ()
{ {
echo "Profile version $PROFVERSION." disp "Profile version $PROFVERSION."
} }
export -f ver export -f ver
@@ -17,7 +52,7 @@ meteo ()
[[ $# -eq 0 ]] && local cities=$DEFAULT_CITY [[ $# -eq 0 ]] && local cities=$DEFAULT_CITY
for city in $cities; do for city in $cities; do
curl https://wttr.in/$city || echo "Failed fetching datas for $city." curl https://wttr.in/$city || disp E "Failed fetching datas for $city."
done done
} }
export -f meteo export -f meteo

View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Change locale to French # Change locale to French
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------

View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Determine if parameter is a valid IPv4 address # Determine if parameter is a valid IPv4 address
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@@ -15,13 +50,13 @@ isipv4 ()
if [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ if [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]; then && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]; then
if [[ -t 1 ]]; then if [[ -t 1 ]]; then
echo "The given IPv4 is valid." disp "The given IPv4 is valid."
fi fi
return 0 return 0
fi fi
fi fi
if [[ -t 1 ]]; then if [[ -t 1 ]]; then
echo "The given parameter is NOT a valid IPv4." disp "The given parameter is NOT a valid IPv4."
fi fi
return 1 return 1
} }
@@ -37,12 +72,12 @@ isipv6 ()
local regex='^([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4}$' local regex='^([0-9a-fA-F]{0,4}:){1,7}[0-9a-fA-F]{0,4}$'
if [[ $ip =~ $regex ]]; then if [[ $ip =~ $regex ]]; then
if [[ -t 1 ]]; then if [[ -t 1 ]]; then
echo "The given IPv6 is valid." disp "The given IPv6 is valid."
fi fi
return 0 return 0
fi fi
if [[ -t 1 ]]; then if [[ -t 1 ]]; then
echo "The given parameter is not a valid IPv6." disp "The given parameter is not a valid IPv6."
fi fi
return 1 return 1
} }

View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Look for a package within installed one # Look for a package within installed one
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
@@ -14,7 +49,7 @@ dpkgs ()
;; ;;
"-"*) "-"*)
echo "Invalid option, use \"dpkgs --help\" to display usage." disp E "Invalid option, use \"dpkgs --help\" to display usage."
echo echo
return 1 return 1
;; ;;
@@ -23,20 +58,23 @@ dpkgs ()
local pkg=$1 && shift local pkg=$1 && shift
count=$(( $count + 1 )) count=$(( $count + 1 ))
[[ $count -gt 1 ]] && [[ $count -gt 1 ]] &&
echo "*** Error: Please specify a package name, without space, eventually partial." && disp E "Please specify a package name, without space, eventually partial." &&
return 1 return 1
;; ;;
esac esac
done done
[[ $count -lt 1 ]] && [[ $count -lt 1 ]] &&
echo "*** Error: Please specify a package name, without space, eventually partial." && disp E "Please specify a package name, without space, eventually partial." &&
return 1 return 1
[[ -x /usr/sbin/dpkg ]] && if [[ $(command -v dpkg >/dev/null 2>&1) ]]; then
echo "*** Error: dpkg command seems unavialable." && dpkg -l | grep $pkg
return 2 elif [[ $(command -v rpm >/dev/null 2>&1) ]]; then
rpm -qa | grep $pkg
dpkg -l | grep $pkg else
disp E "No usable package manager seems unavialable."
return 2
fi
} }
export -f dpkgs export -f dpkgs

View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Search processes matching the given string # Search processes matching the given string
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------

View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# timer_* functions : internal timing function for prompt # timer_* functions : internal timing function for prompt
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------

54
profile.d/pwd.sh Executable file → Normal file
View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# genpwd : generate a password with different criteria # genpwd : generate a password with different criteria
# default 16 car with up and low car, symbol and number # default 16 car with up and low car, symbol and number
@@ -13,7 +48,7 @@ genpwd()
for opt in $@; do for opt in $@; do
case $opt in case $opt in
"-h"|"--help") "-h"|"--help")
echo "genpwd: generate a secure random password." echo "genpwd: generate one or more secure random password."
echo echo
echo "Usage: genpwd [options] [--extracars=<cars>] [--length=<n>] [nb_passwd]" echo "Usage: genpwd [options] [--extracars=<cars>] [--length=<n>] [nb_passwd]"
echo echo
@@ -58,24 +93,24 @@ genpwd()
"-L"?*|"--length"?*) "-L"?*|"--length"?*)
local length=$(echo "$opt" | cut -f 2- -d '=') local length=$(echo "$opt" | cut -f 2- -d '=')
if ! [[ $length =~ ^[0-9]+$ ]]; then if ! [[ $length =~ ^[0-9]+$ ]]; then
echo "The --length parameter requires a number." disp E "The --length parameter requires a number."
return 1 return 1
fi fi
;; ;;
"-o"?*|"--occurences"?*) "-o"?*|"--occurences"?*)
local occurs=$(echo "$opt" | cut -f 2- -d '=') local occurs=$(echo "$opt" | cut -f 2- -d '=')
if ! [[ $occurs =~ ^[1-9]+$ ]]; then if ! [[ $occurs =~ ^[1-9]+$ ]]; then
echo "The --occurs parameter requires a number from 1 to 9." disp E "The --occurs parameter requires a number from 1 to 9."
return 1 return 1
fi fi
;; ;;
"-*") "-*")
echo "Unknow parameter ${opt}." disp E "Unknow parameter ${opt}."
return 1 return 1
;; ;;
*) *)
if ! [[ $opt =~ ^[1-9]+$ ]]; then if ! [[ $opt =~ ^[1-9]+$ ]]; then
echo "Unknow parameter ${opt}." disp E "Unknow parameter ${opt}."
return 1 return 1
else else
local nbpwd=$opt local nbpwd=$opt
@@ -99,7 +134,7 @@ genpwd()
echo "$char" echo "$char"
} }
echo "Generating $nbpwd passwords, please wait..." disp I "Generating $nbpwd passwords, please wait..."
for n in $( seq 1 $nbpwd ); do for n in $( seq 1 $nbpwd ); do
{ {
local carset='' # store final caracter set to use local carset='' # store final caracter set to use
@@ -133,6 +168,13 @@ genpwd()
(( rlength++ )) (( rlength++ ))
fi fi
# Check if we have enough car to have something viable
if [[ ${#carset} -lt $length ]]; then
disp E 'Not enought caracters are authorised for the password length.'
disp E 'Please allow more caracter (preferably) or reduce password lentgh.'
return 1
fi
for i in $( seq 1 $(( $length - $rlength )) ); do for i in $( seq 1 $(( $length - $rlength )) ); do
pickcar "$carset" pickcar "$carset"
done done

View File

@@ -1,3 +1,38 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Let the rain fall # Let the rain fall
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------

View File

@@ -1,11 +1,46 @@
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details.
#
# * Redistribution and use in source and binary forms,
# * with or without modification, are permitted provided
# * that the following conditions are met:
# *
# * Redistributions of source code must retain the above
# * copyright notice, this list of conditions and the
# * following disclaimer.
# *
# * Redistributions in binary form must reproduce the above
# * copyright notice, this list of conditions and the following
# * disclaimer in the documentation and/or other materials
# * provided with the distribution.
# *
# * Neither the name of the copyright holder nor the names
# * of any other contributors may be used to endorse or
# * promote products derived from this software without
# * specific prior written permission.
# *
# * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Remove host from know_host (name and IP) for the active user # Remove host from know_host (name and IP) for the active user
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
rmhost () rmhost ()
{ {
if [[ "$#" -lt 1 ]]; then if [[ "$#" -lt 1 ]]; then
echo "Error: incorrect number of parameters." disp E "Incorrect number of parameters."
echo "Usage: rmhost <hostname|ip> [hostname2|ip2 [...]]" disp E "Usage: rmhost <hostname|ip> [hostname2|ip2 [...]]"
return 1 return 1
fi fi
@@ -25,16 +60,16 @@ rmhost ()
if [[ ! $ip && $hst ]]; then if [[ ! $ip && $hst ]]; then
ip=$(host $hst | grep "has address" | awk '{print $NF}') ip=$(host $hst | grep "has address" | awk '{print $NF}')
[[ ! $? ]] && [[ ! $? ]] &&
echo "*** rmhost(): Error extracting IP from hostname." && disp E "Impossible to extract IP from hostname." &&
return 1 return 1
fi fi
if [[ $hst ]]; then if [[ $hst ]]; then
echo "Removing host $hst from ssh known_host..." disp I "Removing host $hst from ssh known_host..."
ssh-keygen -R $hst > /dev/null ssh-keygen -R $hst > /dev/null
fi fi
if [[ $ip ]]; then if [[ $ip ]]; then
echo "Removing IP $ip from ssh known_host..." disp I "Removing IP $ip from ssh known_host..."
ssh-keygen -R $ip > /dev/null ssh-keygen -R $ip > /dev/null
fi fi
unset hst ip unset hst ip
@@ -60,7 +95,7 @@ ssr ()
done done
[[ ! $1 ]] && [[ ! $1 ]] &&
echo "Please specify the server you want to log in." && disp E "Please specify the server you want to log in." &&
return 1 return 1
local srv=$1 && shift local srv=$1 && shift

View File

@@ -1,41 +1,6 @@
#!/bin/bash #!/bin/bash
# Begin profile # Begin profile
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# Initial version from Beyond Linux From Scratch by
# * James Robertson <jameswrobertson@earthlink.net>
# * Dagmar d'Surreal <rivyqntzne@pbzpnfg.arg>
# ------------------------------------------------------------------------------
# Current version from Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# 16/02/2013 v1.0.0 : Initial version
# 24/10/2015 v2.0.0 : Added advanced functionnalities (clean, srr, etc.)
# 04/02/2017 v2.0.1 : clean improvements (--shell)
# 16/09/2018 v2.1.0 : Added rmhost, setc, setfr, more locales management
# 23/09/2019 v2.1.1 : [bugfix] dpkgs
# 24/09/2019 v2.1.2 : [bugfix] bug in profile version display
# 16/12/2019 v2.2.0 : Added showinfo, primary write of showdiskmap
# 08/01/2020 v2.3.0 : Added use of figlet and neofetch as a motd replace
# 16/01/2020 v2.3.1 : [bugfix] non-interactive were blocked with some functions
# 31/01/2020 v2.3.2 : Figlet: changed default font to ansi_shadow
# 02/03/2020 v2.4.0 : Added command auzip
# 03/03/2020 v2.5.0 : Added command taz and rmspc, auzip => utaz improved
# 05/03/2020 v2.5.1 : Language consistancy fix, added pigz support in taz
# 06/03/2020 v2.5.2 : Few aliases sorted out
# 11/09/2020 v2.5.3 : Few more aliases, improved code consistancy and typo,
# : improved utaz, removed showdiskmap, removed remaining French,
# : added license information for future publication
# 24/10/2020 v2.6.0 : Added session save and restore for Konsole
# 25/12/2020 v2.6.1 : Add check on rmhost, improvements rmspc, created expendlist
# 26/02/2021 v2.6.2 : [bugfix] taz: corrected bug with trailing slash on directories
# 18/10/2021 v2.6.3 : changed PS1 for status bar style version, few minor improvements
# 21/06/2022 v2.7.0 : added isipv4 and isipv6, use it in rmhost as an improvement
# 22/06/2022 v2.7.1 : [bugfix] few minor corrections, added help command
# 24/06/2022 v2.8.0 : Added backtrace, error and settrace, corrected showinfo
# 19/07/2022 v2.8.1 : few cleanup, fixes and optimizations
# 29/07/2022 v2.8.2 : added warning for non bash users
# 27/08/2022 v3.0.0 : splitted everything, added rain screensaver
# 07/11/2022 v3.0.1 : added concatenation to rmspc, added ku, error managed in meteo
# 08/11/2022 v3.1.0 : added password generator
# ------------------------------------------------------------------------------
# Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org> # Copyright (c) 2013-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
# Protected by the BSD3 license. Please read bellow for details. # Protected by the BSD3 license. Please read bellow for details.
# #
@@ -70,13 +35,13 @@
# * OF SUCH DAMAGE. # * OF SUCH DAMAGE.
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
export PROFVERSION="3.1.0" export PROFVERSION="3.2.2"
export DEFAULT_CITY="Toulouse" export DEFAULT_CITY="Toulouse"
if [[ ! $(echo $SHELL | grep bash) ]]; then if [[ ! $(echo $SHELL | grep bash) ]]; then
echo "That script is designed to be used with bash as being the shell." echo "That environmet script is designed to be used with bash or zsh being the shell."
echo "Please consider using bash instead, or patch me ;) !" echo "Please consider using bash or zsh instead, or patch me ;)!"
return 1 return 1
fi fi
@@ -195,7 +160,7 @@ if [[ $INTERACTIVE ]]; then
# Set default language # Set default language
setfr setfr
showinfo showinfo
echo "Profile version $PROFVERSION chargé..." disp I "Profile version $PROFVERSION chargé..."
fi fi
# Cleanup # Cleanup