feat: add features to generate gitconfig & ssh key files
This commit is contained in:
parent
a729d4e36f
commit
0bf139cd91
@ -1,15 +1,21 @@
|
|||||||
pallav:
|
pallav:
|
||||||
|
name: Pallav Vasa
|
||||||
|
email: pallav@infilytics.in
|
||||||
rw:
|
rw:
|
||||||
- darshan
|
- darshan
|
||||||
- param
|
- param
|
||||||
|
|
||||||
darshan:
|
darshan:
|
||||||
|
name: Darshan Parmar
|
||||||
|
email: darshan@infilytics.in
|
||||||
rw:
|
rw:
|
||||||
- param
|
- param
|
||||||
ro:
|
ro:
|
||||||
- pallav
|
- pallav
|
||||||
|
|
||||||
param:
|
param:
|
||||||
|
name: Param Makawana
|
||||||
|
email: param@infilytics.in
|
||||||
ro:
|
ro:
|
||||||
- pallav
|
- pallav
|
||||||
- darshan
|
- darshan
|
||||||
|
39
generate-user-config.sh
Executable file
39
generate-user-config.sh
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
YAML_FILE="access.yml"
|
||||||
|
TEMPLATE_FILE="gitconfig.template"
|
||||||
|
USER="$1"
|
||||||
|
|
||||||
|
# Extract user fields from YAML
|
||||||
|
GIT_NAME=$(yq ".\"$USER\".name" "$YAML_FILE")
|
||||||
|
GIT_EMAIL=$(yq ".\"$USER\".email" "$YAML_FILE")
|
||||||
|
|
||||||
|
# Ensure fields are not empty
|
||||||
|
if [[ -z "$GIT_NAME" || -z "$GIT_EMAIL" ]]; then
|
||||||
|
echo "❌ Error: User '$USER' not found or missing name/email in $YAML_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create output directory
|
||||||
|
USER_DIR="files/$USER"
|
||||||
|
mkdir -p "$USER_DIR"
|
||||||
|
|
||||||
|
# Generate .gitconfig
|
||||||
|
env GIT_NAME="$GIT_NAME" GIT_EMAIL="$GIT_EMAIL" \
|
||||||
|
envsubst <"$TEMPLATE_FILE" >"$USER_DIR/gitconfig"
|
||||||
|
|
||||||
|
echo "✅ .gitconfig created at $USER_DIR/gitconfig"
|
||||||
|
|
||||||
|
# Generate SSH keypair if it doesn't exist
|
||||||
|
KEYFILE="$USER_DIR/id_ed25519"
|
||||||
|
|
||||||
|
if [[ -f "$KEYFILE" ]]; then
|
||||||
|
echo "🔑 SSH key already exists for $USER at $KEYFILE"
|
||||||
|
else
|
||||||
|
ssh-keygen -t ed25519 -N "" -C "$GIT_EMAIL" -f "$KEYFILE"
|
||||||
|
echo "✅ SSH keypair generated at:"
|
||||||
|
echo " 🔐 Private: $KEYFILE"
|
||||||
|
echo " 🔓 Public : $KEYFILE.pub"
|
||||||
|
fi
|
Loading…
x
Reference in New Issue
Block a user