-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcommit.bat
More file actions
75 lines (56 loc) · 2.03 KB
/
Copy pathcommit.bat
File metadata and controls
75 lines (56 loc) · 2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
@echo on
@setlocal enabledelayedexpansion
:: Demander la passphrase une seule fois (masquée via PowerShell)
for /f "delims=" %%P in ('powershell -Command "Read-Host -AsSecureString | ConvertFrom-SecureString | Out-String"') do (
set "PassPhrase=%%P"
)
:: Boucle sur les arguments (paires de "dossier", "message")
:loop
if "%~1"=="" goto check_last_arg
:: Extraire le dossier (1er argument de la paire)
set "folder=%~1"
:: Enlever les guillemets et parenthèses
set "folder=!folder:~1,-2!"
:: Extraire le message (2ème argument de la paire)
shift
set "message=%~1"
:: Enlever les guillemets et parenthèses
set "message=!message:~1,-2!"
:: Afficher le dossier et le message
@echo.
echo ==== Commit pour !folder! ====
@echo.
:: Mémoriser la passphrase avant git add
@echo %PassPhrase% | @gpg --passphrase-fd 0 --clearsign --output - @NUL > @NUL 2>&1
:: Ajouter les fichiers du dossier
git add !folder!
:: Mémoriser la passphrase après git add
@echo %PassPhrase% | @gpg --passphrase-fd 0 --clearsign --output - @NUL > @NUL 2>&1
:: Faire le commit signé
git commit -S -m "!message!"
:: Mémoriser la passphrase après git commit
@echo %PassPhrase% | @gpg --passphrase-fd 0 --clearsign --output - @NUL > @NUL 2>&1
:: Passer à la paire suivante
shift
goto loop
:check_last_arg
:: Commit pour le reste (si le dernier argument est ".")
if "%~1"=="(.," (
shift
set "message=%~1"
:: Enlever les guillemets et la parenthèse finale
set "message=!message:~1,-2!"
@echo.
echo ==== Commit pour le reste ====
@echo.
:: Mémoriser la passphrase avant git add
@echo %PassPhrase% | @gpg --passphrase-fd 0 --clearsign --output - @NUL > @NUL 2>&1
:: Ajouter tous les fichiers
git add .
:: Mémoriser la passphrase après git add
@echo %PassPhrase% | @gpg --passphrase-fd 0 --clearsign --output - @NUL > @NUL 2>&1
:: Faire le commit signé
git commit -S -m "!message!"
:: Mémoriser la passphrase après git commit
@echo %PassPhrase% | @gpg --passphrase-fd 0 --clearsign --output - @NUL > @NUL 2>&1
)