main 6af0a61

ssh-keygen.sh RawHistoryFolder

1#!/bin/bash
2# Post-boot: Generate SSH key without password if email was provided
3
4# Read from environment variables (set by systemd service)
5EMAIL="$ARCHUP_EMAIL"
6USERNAME="$ARCHUP_USERNAME"
7
8if [ -z "$EMAIL" ] || [ -z "$USERNAME" ]; then
9  echo "Skipping SSH key generation (no email provided)"
10  exit 0
11fi
12
13# Get user home directory
14USER_HOME=$(eval echo ~"$USERNAME")
15SSH_DIR="$USER_HOME/.ssh"
16
17# Create .ssh directory if it doesn't exist
18if [ ! -d "$SSH_DIR" ]; then
19  mkdir -p "$SSH_DIR"
20  chmod 700 "$SSH_DIR"
21  chown "$USERNAME:$USERNAME" "$SSH_DIR"
22fi
23
24# Generate SSH key if it doesn't exist
25if [ ! -f "$SSH_DIR/id_ed25519" ]; then
26  echo "Generating SSH key for $USERNAME..."
27  su - "$USERNAME" -c "ssh-keygen -t ed25519 -C '$EMAIL' -f '$SSH_DIR/id_ed25519' -N ''"
28  echo "SSH key generated at $SSH_DIR/id_ed25519"
29else
30  echo "SSH key already exists, skipping generation"
31fi
32
33# Set proper permissions
34chmod 600 "$SSH_DIR/id_ed25519"
35chmod 644 "$SSH_DIR/id_ed25519.pub"
36chown "$USERNAME:$USERNAME" "$SSH_DIR/id_ed25519" "$SSH_DIR/id_ed25519.pub"
37
38# Configure git with user email and name
39echo "Configuring git..."
40su - "$USERNAME" -c "git config --global user.email '$EMAIL'"
41su - "$USERNAME" -c "git config --global user.name '$USERNAME'"
42echo "Git configured with email: $EMAIL and name: $USERNAME"
43
44echo "SSH key setup complete"

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 0

    ↑↓ moveenter openesc close