mirror of
https://forge.chapril.org/tykayn/workflow
synced 2025-10-04 17:04:55 +02:00
up ckeck installed
This commit is contained in:
parent
3942a254b6
commit
cb1e4934b5
5 changed files with 90 additions and 284 deletions
0
bin/borg
Normal file → Executable file
0
bin/borg
Normal file → Executable file
8
bin/guessfilename
Executable file
8
bin/guessfilename
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import re
|
||||
import sys
|
||||
from guessfilename import main
|
||||
if __name__ == '__main__':
|
||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||
sys.exit(main())
|
73
initialization/check_installed.sh
Executable file
73
initialization/check_installed.sh
Executable file
|
@ -0,0 +1,73 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "========== Checking installed programs and files ======="
|
||||
source $HOME/Nextcloud/ressources/workflow_nextcloud/public_workflow/workflow_variables.sh
|
||||
|
||||
# Check if apt-installed packages are present
|
||||
echo "Checking apt-installed packages..."
|
||||
PACKAGES="adduser ansible arp-scan automysqlbackup borgbackup calibre certbot curl docker docker-compose etckeeper eza fail2ban geeqie git gnupg htop jq meld nano ncdu nginx npm pandoc php-curl php-mysql php-xml php8.4 php8.4-fpm php8.4-xml python3 python3-pip python3-setuptools rbenv restic rsync smartmontools snapd sshfs syncthing testdisk texlive tig unattended-upgrades vrms zsh"
|
||||
|
||||
MISSING_PACKAGES=""
|
||||
for pkg in $PACKAGES; do
|
||||
if ! dpkg -l | grep -q " $pkg "; then
|
||||
MISSING_PACKAGES="$MISSING_PACKAGES $pkg"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$MISSING_PACKAGES" ]; then
|
||||
echo -e "\e[31mThe following packages are missing:$MISSING_PACKAGES\e[0m"
|
||||
else
|
||||
echo "All apt packages are installed."
|
||||
fi
|
||||
|
||||
# Check if snap-installed packages are present
|
||||
echo "Checking snap-installed packages..."
|
||||
SNAP_PACKAGES="btop emacs"
|
||||
|
||||
MISSING_SNAP_PACKAGES=""
|
||||
for pkg in $SNAP_PACKAGES; do
|
||||
if ! snap list | grep -q "$pkg"; then
|
||||
MISSING_SNAP_PACKAGES="$MISSING_SNAP_PACKAGES $pkg"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$MISSING_SNAP_PACKAGES" ]; then
|
||||
echo -e "\e[31mThe following snap packages are missing:$MISSING_SNAP_PACKAGES\e[0m"
|
||||
else
|
||||
echo "All snap packages are installed."
|
||||
fi
|
||||
|
||||
cd $WORKFLOW_PATH_PUBLIC/bin
|
||||
# Check if AppImages are present
|
||||
echo "Checking AppImages..."
|
||||
if [ ! -f "$WORKFLOW_PATH_PUBLIC/bin/Nextcloud-3.16.6-x86_64.AppImage" ]; then
|
||||
echo -e "\e[31m Nextcloud AppImage is missing.\e[0m"
|
||||
fi
|
||||
|
||||
if [ ! -f "$WORKFLOW_PATH_PUBLIC/bin/VeraCrypt-1.26.24-x86_64.AppImage" ]; then
|
||||
echo -e "\e[31m VeraCrypt AppImage is missing.\e[0m"
|
||||
fi
|
||||
|
||||
if [ ! -f "$HOME/Nextcloud/ressources/workflow_nextcloud/secrets_vars.sh" ]; then
|
||||
echo -e "\e[31m secret vars file is missing. $HOME/Nextcloud/ressources/workflow_nextcloud/secrets_vars.sh \e[0m"
|
||||
fi
|
||||
|
||||
# Check if configuration files are present in home directory
|
||||
echo "Checking configuration files in home directory..."
|
||||
# Note: .bash_custom_aliases is downloaded as .bash_aliases in fast.sh
|
||||
CONFIG_FILES=".bash_aliases .bashrc .zshrc"
|
||||
|
||||
MISSING_CONFIG_FILES=""
|
||||
for file in $CONFIG_FILES; do
|
||||
if [ ! -f "$HOME/$file" ]; then
|
||||
MISSING_CONFIG_FILES="$MISSING_CONFIG_FILES $file"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -n "$MISSING_CONFIG_FILES" ]; then
|
||||
echo -e "\e[31mThe following configuration files are missing in your home directory:$MISSING_CONFIG_FILES\e[0m"
|
||||
else
|
||||
echo "All configuration files are present in your home directory."
|
||||
fi
|
||||
|
||||
echo "========== Check completed ======="
|
|
@ -1,167 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Script to search for installed packages in bash and zsh history
|
||||
# It looks for installations via apt, apt-get, snap, pipx, pip, and npm
|
||||
|
||||
# Define arrays to store package names
|
||||
declare -a APT_PACKAGES=()
|
||||
declare -a APTGET_PACKAGES=()
|
||||
declare -a SNAP_PACKAGES=()
|
||||
declare -a PIPX_PACKAGES=()
|
||||
declare -a PIP_PACKAGES=()
|
||||
declare -a NPM_PACKAGES=()
|
||||
|
||||
# Function to extract package names from apt install commands
|
||||
extract_apt_packages() {
|
||||
local line="$1"
|
||||
# Remove sudo and apt install/apt-get install part
|
||||
local packages=$(echo "$line" | sed -E 's/^.*apt(-get)? install(-y)? //g')
|
||||
# Split by spaces and add to array
|
||||
for pkg in $packages; do
|
||||
# Skip options that start with -
|
||||
if [[ ! "$pkg" =~ ^- ]]; then
|
||||
APT_PACKAGES+=("$pkg")
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Function to extract package names from apt-get install commands
|
||||
extract_aptget_packages() {
|
||||
local line="$1"
|
||||
# Remove sudo and apt-get install part
|
||||
local packages=$(echo "$line" | sed -E 's/^.*apt-get install(-y)? //g')
|
||||
# Split by spaces and add to array
|
||||
for pkg in $packages; do
|
||||
# Skip options that start with -
|
||||
if [[ ! "$pkg" =~ ^- ]]; then
|
||||
APTGET_PACKAGES+=("$pkg")
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Function to extract package names from snap install commands
|
||||
extract_snap_packages() {
|
||||
local line="$1"
|
||||
# Remove sudo and snap install part
|
||||
local packages=$(echo "$line" | sed -E 's/^.*snap install //g')
|
||||
# Split by spaces and add to array
|
||||
for pkg in $packages; do
|
||||
# Skip options that start with -
|
||||
if [[ ! "$pkg" =~ ^- && ! "$pkg" =~ ^--classic$ ]]; then
|
||||
SNAP_PACKAGES+=("$pkg")
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Function to extract package names from pipx install commands
|
||||
extract_pipx_packages() {
|
||||
local line="$1"
|
||||
# Remove pipx install part
|
||||
local packages=$(echo "$line" | sed -E 's/^.*pipx install //g')
|
||||
# Split by spaces and add to array
|
||||
for pkg in $packages; do
|
||||
# Skip options that start with -
|
||||
if [[ ! "$pkg" =~ ^- ]]; then
|
||||
PIPX_PACKAGES+=("$pkg")
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Function to extract package names from pip install commands
|
||||
extract_pip_packages() {
|
||||
local line="$1"
|
||||
# Remove pip/pip3 install part
|
||||
local packages=$(echo "$line" | sed -E 's/^.*(pip|pip3) install //g')
|
||||
# Split by spaces and add to array
|
||||
for pkg in $packages; do
|
||||
# Skip options that start with -
|
||||
if [[ ! "$pkg" =~ ^- ]]; then
|
||||
PIP_PACKAGES+=("$pkg")
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Function to extract package names from npm install commands
|
||||
extract_npm_packages() {
|
||||
local line="$1"
|
||||
# Remove npm install part
|
||||
local packages=$(echo "$line" | sed -E 's/^.*npm install(-g)? //g')
|
||||
# Split by spaces and add to array
|
||||
for pkg in $packages; do
|
||||
# Skip options that start with -
|
||||
if [[ ! "$pkg" =~ ^- ]]; then
|
||||
NPM_PACKAGES+=("$pkg")
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
echo "Searching for installed packages in bash and zsh history..."
|
||||
|
||||
# Parse bash history if it exists
|
||||
if [ -f ~/.bash_history ]; then
|
||||
echo "Parsing bash history..."
|
||||
while IFS= read -r line; do
|
||||
if [[ "$line" =~ apt\ install ]]; then
|
||||
extract_apt_packages "$line"
|
||||
elif [[ "$line" =~ apt-get\ install ]]; then
|
||||
extract_aptget_packages "$line"
|
||||
elif [[ "$line" =~ snap\ install ]]; then
|
||||
extract_snap_packages "$line"
|
||||
elif [[ "$line" =~ pipx\ install ]]; then
|
||||
extract_pipx_packages "$line"
|
||||
elif [[ "$line" =~ (pip|pip3)\ install ]]; then
|
||||
extract_pip_packages "$line"
|
||||
elif [[ "$line" =~ npm\ install ]]; then
|
||||
extract_npm_packages "$line"
|
||||
fi
|
||||
done < ~/.bash_history
|
||||
else
|
||||
echo "Bash history file not found."
|
||||
fi
|
||||
|
||||
# Parse zsh history if it exists
|
||||
if [ -f ~/.zsh_history ]; then
|
||||
echo "Parsing zsh history..."
|
||||
while IFS= read -r line; do
|
||||
# ZSH history has a different format, we need to extract the command part
|
||||
# Format is typically: : timestamp:0;command
|
||||
cmd=$(echo "$line" | sed -E 's/^: [0-9]+:[0-9];(.*)$/\1/')
|
||||
|
||||
if [[ "$cmd" =~ apt\ install ]]; then
|
||||
extract_apt_packages "$cmd"
|
||||
elif [[ "$cmd" =~ apt-get\ install ]]; then
|
||||
extract_aptget_packages "$cmd"
|
||||
elif [[ "$cmd" =~ snap\ install ]]; then
|
||||
extract_snap_packages "$cmd"
|
||||
elif [[ "$cmd" =~ pipx\ install ]]; then
|
||||
extract_pipx_packages "$cmd"
|
||||
elif [[ "$cmd" =~ (pip|pip3)\ install ]]; then
|
||||
extract_pip_packages "$cmd"
|
||||
elif [[ "$cmd" =~ npm\ install ]]; then
|
||||
extract_npm_packages "$cmd"
|
||||
fi
|
||||
done < ~/.zsh_history
|
||||
else
|
||||
echo "ZSH history file not found."
|
||||
fi
|
||||
|
||||
# Display results
|
||||
echo -e "\n=== Packages installed via apt ==="
|
||||
printf '%s\n' "${APT_PACKAGES[@]}" | sort -u
|
||||
|
||||
echo -e "\n=== Packages installed via apt-get ==="
|
||||
printf '%s\n' "${APTGET_PACKAGES[@]}" | sort -u
|
||||
|
||||
echo -e "\n=== Packages installed via snap ==="
|
||||
printf '%s\n' "${SNAP_PACKAGES[@]}" | sort -u
|
||||
|
||||
echo -e "\n=== Packages installed via pipx ==="
|
||||
printf '%s\n' "${PIPX_PACKAGES[@]}" | sort -u
|
||||
|
||||
echo -e "\n=== Packages installed via pip/pip3 ==="
|
||||
printf '%s\n' "${PIP_PACKAGES[@]}" | sort -u
|
||||
|
||||
echo -e "\n=== Packages installed via npm ==="
|
||||
printf '%s\n' "${NPM_PACKAGES[@]}" | sort -u
|
||||
|
||||
echo -e "\nSearch complete."
|
|
@ -3,141 +3,33 @@ sudo apt update -y
|
|||
sudo apt upgrade -y
|
||||
sudo apt autoremove -y
|
||||
|
||||
# Liste des programmes à installer avec apt
|
||||
APT_PACKAGES=(
|
||||
ansible
|
||||
python3-pip
|
||||
arp-scan
|
||||
borgbackup
|
||||
curl
|
||||
docker
|
||||
docker-compose
|
||||
etckeeper
|
||||
git
|
||||
gnupg
|
||||
jq
|
||||
meld
|
||||
nano
|
||||
ncdu
|
||||
nginx
|
||||
restic
|
||||
npm
|
||||
pandoc
|
||||
php8.4
|
||||
python3
|
||||
python3-pip
|
||||
tig
|
||||
zsh
|
||||
testdisk
|
||||
texlive
|
||||
rbenv
|
||||
htop
|
||||
python3-setuptools
|
||||
automysqlbackup
|
||||
certbot
|
||||
smartmontools
|
||||
fail2ban
|
||||
snapd
|
||||
unattended-upgrades
|
||||
php8.4-fpm
|
||||
php-xml
|
||||
php-mysql
|
||||
rsync
|
||||
php8.4-xml
|
||||
php-curl
|
||||
vrms
|
||||
syncthing
|
||||
sshfs
|
||||
geeqie
|
||||
calibre
|
||||
adduser
|
||||
snapd
|
||||
borgbackup
|
||||
eza
|
||||
adduser
|
||||
)
|
||||
|
||||
# Fonction pour vérifier l'installation des programmes
|
||||
verify_installation() {
|
||||
echo "Vérification de l'installation des programmes..."
|
||||
local missing_packages=()
|
||||
|
||||
for package in "${APT_PACKAGES[@]}"; do
|
||||
# Vérification simplifiée - on pourrait améliorer avec dpkg -l | grep -q "^ii.*$package"
|
||||
if ! command -v "$package" &> /dev/null && ! dpkg -l | grep -q "$package"; then
|
||||
missing_packages+=("$package")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${#missing_packages[@]} -eq 0 ]; then
|
||||
echo "✅ Tous les programmes ont été installés avec succès."
|
||||
else
|
||||
echo "❌ Les programmes suivants n'ont pas été installés correctement:"
|
||||
for package in "${missing_packages[@]}"; do
|
||||
echo " - $package"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# Fonction pour vérifier l'existence des alias
|
||||
verify_aliases() {
|
||||
echo "Vérification des alias..."
|
||||
local missing_aliases=()
|
||||
|
||||
# Vérification de l'alias gst
|
||||
if ! alias gst &> /dev/null; then
|
||||
missing_aliases+=("gst")
|
||||
fi
|
||||
|
||||
# Vérification de l'alias phps
|
||||
if ! alias phps &> /dev/null; then
|
||||
missing_aliases+=("phps")
|
||||
fi
|
||||
|
||||
if [ ${#missing_aliases[@]} -eq 0 ]; then
|
||||
echo "✅ Tous les alias requis sont disponibles."
|
||||
else
|
||||
echo "❌ Les alias suivants ne sont pas disponibles:"
|
||||
for alias_name in "${missing_aliases[@]}"; do
|
||||
echo " - $alias_name"
|
||||
done
|
||||
echo "Note: Les alias sont définis dans le fichier .bash_aliases, assurez-vous de l'avoir chargé avec 'source ~/.bash_aliases'"
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir -p $HOME/Nextcloud/ressources/workflow_nextcloud/
|
||||
cd $HOME/Nextcloud/ressources/workflow_nextcloud/
|
||||
git clone https://source.cipherbliss.com/tykayn/workflow public_workflow
|
||||
cd public_workflow
|
||||
cd $HOME/Nextcloud/ressources/workflow_nextcloud/public_workflow
|
||||
git pull
|
||||
|
||||
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B188E2B695BD4743
|
||||
|
||||
source $HOME/Nextcloud/ressources/workflow_nextcloud/public_workflow/workflow_variables.sh
|
||||
source "$HOME/Nextcloud/ressources/workflow_nextcloud/public_workflow/workflow_variables.sh"
|
||||
source "$HOME/Nextcloud/ressources/workflow_nextcloud/secrets_vars.sh"
|
||||
|
||||
# Installation des paquets
|
||||
echo "Installation des paquets apt..."
|
||||
sudo apt install -y "${APT_PACKAGES[@]}"
|
||||
apt install ansible python3-pip arp-scan borgbackup curl docker docker-compose etckeeper git gnupg jq meld nano ncdu nginx restic npm pandoc php8.4 python3 python3-pip tig zsh testdisk texlive rbenv htop python3-setuptools automysqlbackup certbot smartmontools fail2ban snapd unattended-upgrades php8.4-fpm php-xml php-mysql rsync php8.4-xml php-curl vrms syncthing sshfs geeqie calibre adduser snapd borgbackup eza adduser
|
||||
|
||||
cd $HOME/Nextcloud/ressources/workflow_nextcloud/public_workflow/bin
|
||||
wget https://github.com/nextcloud-releases/desktop/releases/download/v3.16.6/Nextcloud-3.16.6-x86_64.AppImage
|
||||
chmod +x Nextcloud-3.16.6-x86_64.AppImage
|
||||
wget https://launchpad.net/veracrypt/trunk/1.26.24/+download/VeraCrypt-1.26.24-x86_64.AppImage
|
||||
chmod +x VeraCrypt-1.26.24-x86_64.AppImage
|
||||
|
||||
snap install btop
|
||||
snap install czkawka
|
||||
snap install emacs --classic
|
||||
|
||||
cd
|
||||
wget https://source.cipherbliss.com/tykayn/workflow/raw/branch/main/assets/.bash_custom_aliases -O .bash_aliases
|
||||
wget https://source.cipherbliss.com/tykayn/workflow/raw/branch/main/assets/.bashrc
|
||||
wget https://source.cipherbliss.com/tykayn/workflow/raw/branch/main/assets/.zshrc
|
||||
|
||||
curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh > install_oh_my_zsh.sh
|
||||
bash install_oh_my_zsh.sh
|
||||
|
||||
# Charger les alias pour pouvoir les vérifier
|
||||
source ~/.bash_aliases
|
||||
|
||||
# Vérification des installations et des alias
|
||||
verify_installation
|
||||
verify_aliases
|
||||
|
||||
echo "========== Fin de l'initialisation du workflow ======="
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue