Compare commits
4 Commits
fe74632ae3
...
fc01a6f124
Author | SHA1 | Date | |
---|---|---|---|
fc01a6f124 | |||
4035f82baa | |||
57d155b52a | |||
8a91d7ee41 |
95
.gitea/workflows/publish.yml
Normal file
95
.gitea/workflows/publish.yml
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
name: Build & Publish Python Packages
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-publish:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: 📦 Cloner le dépôt
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: 🔍 Sélectionner les projets à publier
|
||||||
|
id: detect
|
||||||
|
env:
|
||||||
|
REGISTRY_URL: ${{ vars.REGISTRY_URL }}
|
||||||
|
REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }}
|
||||||
|
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
|
run: |
|
||||||
|
set +e # Ne pas interrompre le script en cas d'erreur
|
||||||
|
git fetch origin master --depth=2 || true
|
||||||
|
CHANGED=$(git diff --name-only HEAD~1 HEAD || echo "")
|
||||||
|
|
||||||
|
#echo "🔍 Fichiers modifiés: $CHANGED"
|
||||||
|
|
||||||
|
SELECTED=""
|
||||||
|
for dir in */; do
|
||||||
|
if [ ! -f "$dir/setup.py" ]; then
|
||||||
|
echo "⏭️ $dir ignoré (pas de setup.py)"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
NAME=$(cd "$dir" && python3 setup.py --name 2>/dev/null)
|
||||||
|
if [ -z "$NAME" ]; then
|
||||||
|
echo "⚠️ Aucun nom récupéré pour $dir"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
VERSION=$(cd "$dir" && python3 setup.py --version 2>/dev/null)
|
||||||
|
if [ -z "$VERSION" ]; then
|
||||||
|
echo "⚠️ Aucune version récupéré pour $dir"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
for f in $CHANGED; do
|
||||||
|
if [[ "$f" == "$dir"* ]]; then
|
||||||
|
echo "🟡 Modification détectée dans $dir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
API_URL="https://$REGISTRY_USERNAME:$REGISTRY_PASSWORD@$REGISTRY_URL/api/v1/packages/$REGISTRY_USERNAME/pypi/$NAME/$VERSION"
|
||||||
|
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$API_URL")
|
||||||
|
|
||||||
|
if [ "$STATUS_CODE" = "404" ]; then
|
||||||
|
echo "📦 $NAME version $VERSION n'existe pas (HTTP $STATUS_CODE)"
|
||||||
|
SELECTED+="$dir "
|
||||||
|
else
|
||||||
|
echo "🔄 $NAME version $VERSION déjà présente (HTTP $STATUS_CODE)"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "selected_projects=$SELECTED" >> $GITHUB_OUTPUT
|
||||||
|
echo "✅ Projets sélectionnés: $SELECTED"
|
||||||
|
|
||||||
|
- name: 🔧 Installer les outils Python
|
||||||
|
if: steps.detect.outputs.selected_projects != ''
|
||||||
|
run: |
|
||||||
|
python3 -m pip install --break-system-packages setuptools wheel twine
|
||||||
|
|
||||||
|
- name: 🚀 Publier les projets sélectionnés
|
||||||
|
if: steps.detect.outputs.selected_projects != ''
|
||||||
|
env:
|
||||||
|
REGISTRY_URL: ${{ vars.REGISTRY_URL }}
|
||||||
|
REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }}
|
||||||
|
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
|
run: |
|
||||||
|
for dir in ${{ steps.detect.outputs.selected_projects }}; do
|
||||||
|
echo "🚀 Publication de $dir"
|
||||||
|
cd "$dir"
|
||||||
|
python3 setup.py sdist
|
||||||
|
twine upload \
|
||||||
|
--repository-url https://$REGISTRY_URL/api/packages/$REGISTRY_USERNAME/pypi \
|
||||||
|
-u "$REGISTRY_USERNAME" \
|
||||||
|
-p "$REGISTRY_PASSWORD" \
|
||||||
|
dist/* || exit 1
|
||||||
|
cd -
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: ✅ Aucun projet à publier
|
||||||
|
if: steps.detect.outputs.selected_projects == ''
|
||||||
|
run: echo "✅ Aucun projet modifié ou nouveau. Rien à publier."
|
@ -1,7 +1,7 @@
|
|||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='HandBrake_recursive',
|
name='HandBrake-recursive',
|
||||||
version='0.1.0',
|
version='0.1.0',
|
||||||
description='Un script pour traiter les fichiers vidéo avec HandBrake de manière récursive.',
|
description='Un script pour traiter les fichiers vidéo avec HandBrake de manière récursive.',
|
||||||
py_modules=['HandBrake_recursive'],
|
py_modules=['HandBrake_recursive'],
|
||||||
|
26
README.md
26
README.md
@ -35,9 +35,7 @@ pipx ensurepath
|
|||||||
Un outil pour encoder des vidéos de manière récursive en utilisant HandBrake. Il permet de traiter des fichiers vidéo dans un répertoire donné, en utilisant des presets définis pour le transcodage. Il génère également un résumé des opérations effectuées dans un fichier Excel.
|
Un outil pour encoder des vidéos de manière récursive en utilisant HandBrake. Il permet de traiter des fichiers vidéo dans un répertoire donné, en utilisant des presets définis pour le transcodage. Il génère également un résumé des opérations effectuées dans un fichier Excel.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://git.netdldata.net/lionel/ProjetsPython.git
|
pipx install --pip-args="--extra-index-url https://git.netdldata.net/api/packages/lionel/pypi/simple/" HandBrake-recursive
|
||||||
cd ProjetsPython/HandBrake_recursive
|
|
||||||
pipx install .
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### proxmox_export_disk
|
### proxmox_export_disk
|
||||||
@ -45,9 +43,7 @@ pipx install .
|
|||||||
Un script pour exporter des informations sur les disques depuis Proxmox. Il récupère les détails des disques des machines virtuelles et des conteneurs sur un serveur Proxmox, et exporte ces informations dans un fichier Excel ou ODS.
|
Un script pour exporter des informations sur les disques depuis Proxmox. Il récupère les détails des disques des machines virtuelles et des conteneurs sur un serveur Proxmox, et exporte ces informations dans un fichier Excel ou ODS.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://git.netdldata.net/lionel/ProjetsPython.git
|
pipx install --pip-args="--extra-index-url https://git.netdldata.net/api/packages/lionel/pypi/simple/" proxmox-export-disk
|
||||||
cd ProjetsPython/proxmox_export_disk
|
|
||||||
pipx install .
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### tree_stream
|
### tree_stream
|
||||||
@ -55,9 +51,7 @@ pipx install .
|
|||||||
Un utilitaire pour afficher la structure des répertoires sous forme de flux. Il permet de visualiser l'arborescence des fichiers et des dossiers avec des informations supplémentaires sur les fichiers vidéo, comme les flux et les chapitres.
|
Un utilitaire pour afficher la structure des répertoires sous forme de flux. Il permet de visualiser l'arborescence des fichiers et des dossiers avec des informations supplémentaires sur les fichiers vidéo, comme les flux et les chapitres.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://git.netdldata.net/lionel/ProjetsPython.git
|
pipx install --pip-args="--extra-index-url https://git.netdldata.net/api/packages/lionel/pypi/simple/" tree-stream
|
||||||
cd ProjetsPython/tree_stream
|
|
||||||
pipx install .
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### multiplex
|
### multiplex
|
||||||
@ -66,17 +60,5 @@ Un script Python pour assembler des pistes vidéo, audio et sous-titres issues d
|
|||||||
Il gère la priorité des pistes françaises, la définition des pistes par défaut, la gestion des chapitres et le renommage intelligent des pistes.
|
Il gère la priorité des pistes françaises, la définition des pistes par défaut, la gestion des chapitres et le renommage intelligent des pistes.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://git.netdldata.net/lionel/ProjetsPython.git
|
pipx install --pip-args="--extra-index-url https://git.netdldata.net/api/packages/lionel/pypi/simple/" multiplex
|
||||||
cd ProjetsPython/multiplex
|
|
||||||
pipx install .
|
|
||||||
```
|
|
||||||
|
|
||||||
### Installer tous les projets
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://git.netdldata.net/lionel/ProjetsPython.git
|
|
||||||
cd ProjetsPython
|
|
||||||
for dir in */; do
|
|
||||||
(cd "$dir" && pipx install .)
|
|
||||||
done
|
|
||||||
```
|
```
|
||||||
|
3
multiplex/.gitignore
vendored
Normal file
3
multiplex/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
build
|
||||||
|
multiplex.egg-info
|
||||||
|
.venv
|
@ -1,7 +1,7 @@
|
|||||||
from setuptools import setup
|
from setuptools import setup
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='proxmox_export_disk',
|
name='proxmox-export-disk',
|
||||||
version='0.1.0',
|
version='0.1.0',
|
||||||
description='Un script pour récupérer l\'utilisation des disques des VMs dans Proxmox.',
|
description='Un script pour récupérer l\'utilisation des disques des VMs dans Proxmox.',
|
||||||
py_modules=['proxmox_export_disk'],
|
py_modules=['proxmox_export_disk'],
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="tree_stream",
|
name="tree-stream",
|
||||||
version="0.1.0",
|
version="0.1.0",
|
||||||
description="Affiche une arborescence enrichie des fichiers vidéo avec chapitres et flux",
|
description="Affiche une arborescence enrichie des fichiers vidéo avec chapitres et flux",
|
||||||
author="TonNom",
|
author="TonNom",
|
||||||
|
Reference in New Issue
Block a user