From 4189bbaf8b4861e73eea6eb7e7f439670c45b942 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Wed, 14 Feb 2024 17:04:44 +0100 Subject: [PATCH] check already loaded variables, remove costly docker check in alias --- assets/.bash_aliases | 5 +- assets/.bash_custom_aliases | 40 ++++++-- assets/.gitconfig | 1 + assets/.zshrc | 11 --- workflow_variables.sh | 181 +++++++++++++++++++----------------- 5 files changed, 128 insertions(+), 110 deletions(-) diff --git a/assets/.bash_aliases b/assets/.bash_aliases index 21bb748..6611a36 100644 --- a/assets/.bash_aliases +++ b/assets/.bash_aliases @@ -4,6 +4,5 @@ # done for my blog http://www.cipherbliss.com # # load variables -echo " chargement de bash aliases" -source ~/Nextcloud/ressources/workflow_nextcloud/public_workflow/workflow_variables.sh -source $WORKFLOW_PATH_PUBLIC/install/.bash_custom_aliases \ No newline at end of file +source ~/Nextcloud/ressources/workflow_nextcloud/workflow_variables.sh +source $WORKFLOW_PATH/install/.bash_custom_aliases \ No newline at end of file diff --git a/assets/.bash_custom_aliases b/assets/.bash_custom_aliases index 37b38b8..b403bfa 100644 --- a/assets/.bash_custom_aliases +++ b/assets/.bash_custom_aliases @@ -14,7 +14,11 @@ alias work="cd $www_folder/scripts/mapping_geojson_to_osm_tags" ########## lieux ########### alias dok="docker-compose" alias dc="docker-compose" -alias dckill="docker container kill $(docker container ls -q)" + +# tuer tous les conteneurs docker +function dckill() { + docker container kill $(docker container ls -q) +} alias gow="cd $WORKFLOW_PATH" # go to folder of nextcloud where i store my scripts ###### lieux locaux @@ -169,19 +173,35 @@ source $WORKFLOW_PATH/install/functions_sync.sh source $WORKFLOW_PATH/install/functions_tk.sh export HISTTIMEFORMAT="%d/%m/%y %T " -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm -[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion +#!/bin/bash + +if command -v nvm &> /dev/null +then + echo "nvm chargé" +else + export NVM_DIR="$HOME/.nvm" + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm + [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion +fi -#gowork # ------------------- work stuff -export DOTNET_ROOT=$HOME/.dotnet -export PATH=$PATH:$HOME/.dotnet:$HOME/.dotnet/tools -nvm use stable +# export DOTNET_ROOT=$HOME/.dotnet +# export PATH=$PATH:$HOME/.dotnet:$HOME/.dotnet/tools +#!/bin/bash + +if [ "$(pwd)" = "/var/www/html/" ] || [ "$(pwd)" = "/var/www/html/*" ]; then + echo "chargement de node version stable" + nvm use stable +fi #echo "loading zfs keys" -zfs load-key poule/encrypted -zfs mount -a +#!/bin/bash +# lancer le montage seulement si on est root +if [ "$(id -u)" = 0 ]; then + zfs load-key poule/encrypted + zfs mount -a + echo "root: partition ZFS déchiffrée et montée" +fi diff --git a/assets/.gitconfig b/assets/.gitconfig index 9478a6e..67803fd 100644 --- a/assets/.gitconfig +++ b/assets/.gitconfig @@ -23,3 +23,4 @@ defaultRemote = origin [core] editor = gedit + excludesFile = ~/.gitignore diff --git a/assets/.zshrc b/assets/.zshrc index bc61571..3d38210 100644 --- a/assets/.zshrc +++ b/assets/.zshrc @@ -75,12 +75,6 @@ plugins=(git cp colored-man-pages colorize command-not-found composer symfony2 p source $ZSH/oh-my-zsh.sh # User configuration -if [ -f ~/Nextcloud/ressources/workflow_nextcloud/workflow_variables.sh ]; then - . ~/Nextcloud/ressources/workflow_nextcloud/workflow_variables.sh -else - echo "/!\\ bashrc: fichier de variables workflow_nextcloud non trouvé:" - echo "~/Nextcloud/ressources/workflow_nextcloud/workflow_variables.sh" -fi # export MANPATH="/usr/local/man:$MANPATH" @@ -106,9 +100,4 @@ if [[ -n $SSH_CONNECTION ]]; then # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" -if [ "$debug" = true ]; then - echo "chargement des aliases ~/.bash_aliases" -fi - - source ~/.bash_aliases diff --git a/workflow_variables.sh b/workflow_variables.sh index f8acfb9..d517643 100644 --- a/workflow_variables.sh +++ b/workflow_variables.sh @@ -4,91 +4,100 @@ # source ~/Nextcloud/ressources/workflow_nextcloud/public_workflow/workflow_variables.sh # # +export load_only_once=true +#!/bin/bash export debug=true -if [ "$debug" = true ]; then - echo "# chargement des variables de workflow" +if [ -z ${load_only_once+x} ]; then + echo "premier chargement" + + if [ "$debug" = true ]; then + echo "# chargement des variables de workflow" + fi + + export main_user="tykayn" + + export main_archive_source_ssh_lan="tykayn@192.168.1.14" + export backup_laptop_archive_path="/home/poule/backup/encrypted" + + + export WORKFLOW_PATH=~/Nextcloud/ressources/workflow_nextcloud + export WORKFLOW_PATH_PUBLIC=~/Nextcloud/ressources/workflow_nextcloud/public_workflow + export WORKFLOW_PATH_ROOT=/home/$main_user/Nextcloud/ressources/workflow_nextcloud + export ALIASES_PATH=$WORKFLOW_PATH/install/.bash_custom_aliases + # fichiers orgmode, wiki personnel + export orgmode_path=~/Nextcloud/textes/orgmode + export inbox_orgmode=$orgmode_path/incoming_inbox.org + export orgroam_path=~/Nextcloud/textes/orgmode/org-roam + export backup_texts_folder=~/archives/backup_automatique + export HOME_OF_SCRIPTS=$www_folder/scripts + + # archives dans un pool zfs nommé poule + export stockage_syncable_folder=/home/poule/encrypted/stockage-syncable + + # dossier où stocker les projets de dev + export www_folder=$stockage_syncable_folder/www/development/html + + export node_version_expected=20 + + export today=`date` # to log current time + export ARCHIVE_SYNCABLE=$stockage_syncable_folder # place where we have our things sorted, other than home + export BORG_PASSCOMMAND="cat $ARCHIVE_SYNCABLE/.tk-borg-passphrase-light" # get the borg repo pass + + export a_dispatcher="$ARCHIVE_SYNCABLE/photos/a_dispatcher" # dossier où sont stockées les photos en provenance du smartphone + export PHOTOS_TO_DISPATCH="$a_dispatcher" + export PHOTOS_FOLDER="$ARCHIVE_SYNCABLE/photos/" + + export SPACESHIP_BORG_REPO="/home/poule/borg_archives/backup_land4to" + export SPACESHIP_NEW_BORG_REPO="/home/poule/borg_archives/borg2" + export BORG_REPO=$SPACESHIP_NEW_BORG_REPO + + export LOG_FILE_BACKUP="$ARCHIVE_SYNCABLE/www/backup/log_backup.log" + # log dates of execution of the script + export LOG_FILE_BACKUP_DATES="$ARCHIVE_SYNCABLE/www/backup/summary_log_backup.log" + + export main_archive_source_sftop_spaceship="/mnt/spaceship_poule" + export IP_DU_NAS="/mnt/spaceship_poule" + + export CURRENT_YEAR=$(date +%Y) + + # add custom workflow scripts + export PATH=$WORKFLOW_PATH:$PATH + + + ########## colors for logging ######### + # https://wiki.archlinux.org/title/Bash/Prompt_customization#List_of_colors_for_prompt_and_Bash + # + # echo -e "${txtred}asd${txtwht}" + # + ####################################### + + export txtblk='\e[0;30m' # Black - Regular + export txtred='\e[0;31m' # Red + export txtgrn='\e[0;32m' # Green + export txtylw='\e[0;33m' # Yellow + export txtblu='\e[0;34m' # Blue + export txtpur='\e[0;35m' # Purple + export txtcyn='\e[0;36m' # Cyan + export txtwht='\e[0;37m' # White + export txtbold='\e[1m' # bold + export txtreset='\e(B\e[m' # back to normal + + + # --------- gestion des exclusions de rsync -------- # + EXCLUDE=( ".yarn" ".nvm" "cache" ".cache" "Cache" "Steam" "steamapps" ".npm" ".yarn" "node_modules" ".mozilla" "vendor" "Steam" ".rbenv" ".config/borg" "@eaDir" "steamapps" "bower_components" ".cargo" ".gem" ".BOINC") + exclude_opts=() + for item in "${EXCLUDE[@]}"; do + exclude_opts+=( --exclude "$item" ) + done + + export exclude_opts + + if [ "$debug" = true ]; then + echo "# chargement des variables de workflow OK --------" + fi + + source $WORKFLOW_PATH_PUBLIC/variables.sh + +else + echo "pas premier chargement" fi - -export main_user="tykayn" - -export main_archive_source_ssh_lan="tykayn@192.168.1.14" -export backup_laptop_archive_path="/home/poule/backup/encrypted" - - -export WORKFLOW_PATH=~/Nextcloud/ressources/workflow_nextcloud -export WORKFLOW_PATH_PUBLIC=~/Nextcloud/ressources/workflow_nextcloud/public_workflow -export WORKFLOW_PATH_ROOT=/home/$main_user/Nextcloud/ressources/workflow_nextcloud -export ALIASES_PATH=$WORKFLOW_PATH/install/.bash_custom_aliases -# fichiers orgmode, wiki personnel -export orgmode_path=~/Nextcloud/textes/orgmode -export inbox_orgmode=$orgmode_path/incoming_inbox.org -export orgroam_path=~/Nextcloud/textes/orgmode/org-roam -export backup_texts_folder=~/archives/backup_automatique -export HOME_OF_SCRIPTS=$www_folder/scripts - -# archives dans un pool zfs nommé poule -export stockage_syncable_folder=/home/poule/encrypted/stockage-syncable - -# dossier où stocker les projets de dev -export www_folder=$stockage_syncable_folder/www/development/html - -export node_version_expected=20 - -export today=`date` # to log current time -export ARCHIVE_SYNCABLE=$stockage_syncable_folder # place where we have our things sorted, other than home -export BORG_PASSCOMMAND="cat $ARCHIVE_SYNCABLE/.tk-borg-passphrase-light" # get the borg repo pass - -export a_dispatcher="$ARCHIVE_SYNCABLE/photos/a_dispatcher" # dossier où sont stockées les photos en provenance du smartphone -export PHOTOS_TO_DISPATCH="$a_dispatcher" -export PHOTOS_FOLDER="$ARCHIVE_SYNCABLE/photos/" - -export SPACESHIP_BORG_REPO="/home/poule/borg_archives/backup_land4to" -export SPACESHIP_NEW_BORG_REPO="/home/poule/borg_archives/borg2" -export BORG_REPO=$SPACESHIP_NEW_BORG_REPO - -export LOG_FILE_BACKUP="$ARCHIVE_SYNCABLE/www/backup/log_backup.log" -# log dates of execution of the script -export LOG_FILE_BACKUP_DATES="$ARCHIVE_SYNCABLE/www/backup/summary_log_backup.log" - -export main_archive_source_sftop_spaceship="/mnt/spaceship_poule" -export IP_DU_NAS="/mnt/spaceship_poule" - -export CURRENT_YEAR=$(date +%Y) - -# add custom workflow scripts -export PATH=$WORKFLOW_PATH:$PATH - - -########## colors for logging ######### -# https://wiki.archlinux.org/title/Bash/Prompt_customization#List_of_colors_for_prompt_and_Bash -# -# echo -e "${txtred}asd${txtwht}" -# -####################################### - -export txtblk='\e[0;30m' # Black - Regular -export txtred='\e[0;31m' # Red -export txtgrn='\e[0;32m' # Green -export txtylw='\e[0;33m' # Yellow -export txtblu='\e[0;34m' # Blue -export txtpur='\e[0;35m' # Purple -export txtcyn='\e[0;36m' # Cyan -export txtwht='\e[0;37m' # White -export txtbold='\e[1m' # bold -export txtreset='\e(B\e[m' # back to normal - - -# --------- gestion des exclusions de rsync -------- # -EXCLUDE=( ".yarn" ".nvm" "cache" ".cache" "Cache" "Steam" "steamapps" ".npm" ".yarn" "node_modules" ".mozilla" "vendor" "Steam" ".rbenv" ".config/borg" "@eaDir" "steamapps" "bower_components" ".cargo" ".gem" ".BOINC") -exclude_opts=() - for item in "${EXCLUDE[@]}"; do - exclude_opts+=( --exclude "$item" ) - done - -export exclude_opts - -if [ "$debug" = true ]; then - echo "# chargement des variables de workflow OK --------" -fi - -source $WORKFLOW_PATH_PUBLIC/variables.sh \ No newline at end of file