Sure! Pl
This commit is contained in:
140
README.md
Normal file
140
README.md
Normal file
@@ -0,0 +1,140 @@
|
||||
# GetGit - Git Repository Setup Tool
|
||||
|
||||
A simple bash script that helps users set up SSH keys and clone repositories from a private git server.
|
||||
|
||||
## Features
|
||||
|
||||
- **SSH Key Generation**: Automatically generates SSH keys if they don't exist
|
||||
- **Dynamic User Support**: Works with any username on the git server
|
||||
- **Repository Discovery**: Automatically discovers available repositories for the user
|
||||
- **Interactive Selection**: Allows users to choose which repository to clone
|
||||
- **Dotfiles Support**: Special handling for dotfiles repositories with automatic setup execution
|
||||
|
||||
## Usage
|
||||
|
||||
1. Make the script executable:
|
||||
```bash
|
||||
chmod +x setup.sh
|
||||
```
|
||||
|
||||
2. Run the script:
|
||||
```bash
|
||||
./setup.sh
|
||||
```
|
||||
|
||||
3. Follow the prompts:
|
||||
- Enter your git username
|
||||
- Generate SSH key (if needed)
|
||||
- Add the SSH key to your git account
|
||||
- Select which repository to clone
|
||||
|
||||
## How It Works
|
||||
|
||||
### 1. Username Input
|
||||
The script prompts for your git username, which is used to:
|
||||
- Discover available repositories
|
||||
- Construct repository URLs
|
||||
- Set up proper directory structure
|
||||
|
||||
### 2. SSH Key Management
|
||||
- Checks for existing SSH key (`~/.ssh/id_ed25519`)
|
||||
- Generates a new key if none exists
|
||||
- Displays the public key for copying to your git account
|
||||
|
||||
### 3. Repository Discovery
|
||||
The script automatically checks for common repository patterns:
|
||||
- `username/dotfiles`
|
||||
- `username/scripts`
|
||||
- `username/configs`
|
||||
- `username/tools`
|
||||
- `username/projects`
|
||||
- `username/notes`
|
||||
- `username/backup`
|
||||
- `username/workspace`
|
||||
|
||||
### 4. Repository Selection
|
||||
Users can:
|
||||
- Select from numbered list of discovered repositories
|
||||
- Press Enter to use `username/dotfiles` (if available)
|
||||
- Type `custom` to enter a custom repository path
|
||||
|
||||
### 5. Cloning and Setup
|
||||
- Clones the selected repository to the appropriate directory
|
||||
- For dotfiles repositories: runs `setup.sh` automatically
|
||||
- For other repositories: simply clones to `~/repository-name`
|
||||
|
||||
## Configuration
|
||||
|
||||
The script can be configured by modifying the settings at the top:
|
||||
|
||||
```bash
|
||||
### === SETTINGS === ###
|
||||
GIT_SERVER="git.del-c.net" # Change to your git server
|
||||
```
|
||||
|
||||
## Directory Structure
|
||||
|
||||
- **Dotfiles**: `~/.dotfiles/`
|
||||
- **Other repos**: `~/repository-name/`
|
||||
|
||||
## Requirements
|
||||
|
||||
- Bash shell
|
||||
- Git installed
|
||||
- SSH client
|
||||
- Access to the configured git server
|
||||
|
||||
## Example Flow
|
||||
|
||||
```
|
||||
$ ./setup.sh
|
||||
[?] Enter your git username:
|
||||
Username: john
|
||||
|
||||
[+] No SSH key found. Need to generate a new SSH key...
|
||||
[+] If you are using the correct user, please enter your email for the SSH key.
|
||||
Enter your email for the SSH key: john@example.com
|
||||
|
||||
[*] Add the following public key to your GitHub account:
|
||||
----------------------------------------
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGx... john@example.com
|
||||
----------------------------------------
|
||||
Press Enter after you've added the key...
|
||||
|
||||
[+] Fetching available git projects for user: john...
|
||||
[*] Available repositories:
|
||||
1. john/dotfiles
|
||||
2. john/scripts
|
||||
3. john/tools
|
||||
|
||||
[?] Which project would you like to download?
|
||||
Enter the number of the repository from the list above, or:
|
||||
- Press Enter to use john/dotfiles (if available)
|
||||
- Type 'custom' to enter a custom repository path
|
||||
|
||||
Enter your choice: 1
|
||||
[*] Selected repository: git@git.del-c.net:john/dotfiles.git
|
||||
[*] Download directory: /Users/john/.dotfiles
|
||||
|
||||
[+] Cloning selected repository...
|
||||
[+] Launching dotfiles setup using Bash...
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### SSH Key Issues
|
||||
- Ensure the SSH key is added to your git account
|
||||
- Check SSH connection: `ssh -T git@git.del-c.net`
|
||||
|
||||
### Repository Not Found
|
||||
- Verify the repository exists on the server
|
||||
- Check username spelling
|
||||
- Ensure you have access to the repository
|
||||
|
||||
### Permission Denied
|
||||
- Confirm SSH key is properly added to git account
|
||||
- Verify you have read access to the repository
|
||||
|
||||
## Contributing
|
||||
|
||||
Feel free to submit issues and enhancement requests!
|
||||
Reference in New Issue
Block a user