Skip to content

Commit aaa895a

Browse files
committed
deps
1 parent 7c7bfa1 commit aaa895a

File tree

6 files changed

+1321
-0
lines changed

6 files changed

+1321
-0
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ Victoria is Elcano's AI agent that connects to programmatic advertising reports
1414

1515
#### Dependencies
1616

17+
You may either install these manually or via a script. See the [dependencies](./dependencies) folder for more info.
18+
1719
* `ghostty`[ghostty.org](https://ghostty.org/) *(optional but recommended)*
1820
* `git` - open a terminal and type `git` to install it via Xcode on a Mac, if you are on Linux it should be preinstalled.
1921
* `crush`[GitHub](https://github.com/charmbracelet/crush)
@@ -53,6 +55,8 @@ Victoria is Elcano's AI agent that connects to programmatic advertising reports
5355

5456
#### Dependencies
5557

58+
You may either install these manually or via a script. See the [dependencies](./dependencies) folder for more info.
59+
5660
* [Windows Terminal](https://aka.ms/terminal)
5761
* [Git for Windows](https://git-scm.com/download/win)
5862
* [crush](https://github.com/charmbracelet/crush)

dependencies/README.md

Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
# Prerequisites Installer Scripts
2+
3+
This repository contains three installer scripts that automatically install the required dependencies for your project across different operating systems.
4+
5+
## Overview
6+
7+
The installer scripts will install the following dependencies:
8+
9+
### Required Dependencies
10+
- **Git** - Version control system
11+
- **Python 3** - Programming language and runtime
12+
- **uv** - Fast Python package manager and project manager
13+
- **crush** - AI coding agent for terminal
14+
15+
### Optional Dependencies
16+
- **ghostty** - Modern, fast terminal emulator (recommended but optional)
17+
18+
## Platform-Specific Scripts
19+
20+
### 1. macOS Installer (`install_prerequisites_macos.sh`)
21+
22+
**Requirements:**
23+
- macOS 10.15 or later
24+
- Internet connection
25+
- Terminal access
26+
27+
**Installation Methods Used:**
28+
- **Homebrew** (primary method) - Automatically installs if not present
29+
- **Xcode Command Line Tools** (fallback for Git and Python)
30+
- **Standalone installers** (fallback for uv)
31+
- **Go installation** (fallback for crush)
32+
33+
**Usage:**
34+
```bash
35+
# Download and run the script
36+
curl -O https://raw.githubusercontent.com/your-repo/install_prerequisites_macos.sh
37+
chmod +x install_prerequisites_macos.sh
38+
./install_prerequisites_macos.sh
39+
```
40+
41+
**What it does:**
42+
1. Installs Homebrew if not present
43+
2. Installs Git via Homebrew or Xcode Command Line Tools
44+
3. Installs Python via Homebrew or Xcode Command Line Tools
45+
4. Installs uv via Homebrew or standalone installer
46+
5. Installs crush via Homebrew or Go
47+
6. Optionally installs ghostty via Homebrew or manual download
48+
49+
### 2. Linux Installer (`install_prerequisites_linux.sh`)
50+
51+
**Requirements:**
52+
- Linux distribution (Ubuntu, Debian, Fedora, RHEL, CentOS, Arch, openSUSE, Alpine)
53+
- Internet connection
54+
- sudo privileges
55+
- Terminal access
56+
57+
**Supported Distributions:**
58+
- **Ubuntu/Debian** - Uses apt package manager
59+
- **Fedora/RHEL/CentOS** - Uses dnf/yum package manager
60+
- **Arch Linux/Manjaro** - Uses pacman and AUR
61+
- **openSUSE/SLES** - Uses zypper package manager
62+
- **Alpine Linux** - Uses apk package manager
63+
64+
**Usage:**
65+
```bash
66+
# Download and run the script
67+
curl -O https://raw.githubusercontent.com/your-repo/install_prerequisites_linux.sh
68+
chmod +x install_prerequisites_linux.sh
69+
./install_prerequisites_linux.sh
70+
```
71+
72+
**What it does:**
73+
1. Detects your Linux distribution automatically
74+
2. Updates package manager repositories
75+
3. Installs Git via distribution package manager
76+
4. Installs Python via distribution package manager
77+
5. Installs uv via distribution packages or standalone installer
78+
6. Installs crush via distribution repositories or Go
79+
7. Optionally installs ghostty via distribution packages or community packages
80+
81+
### 3. Windows Installer (`install_prerequisites_windows.ps1`)
82+
83+
**Requirements:**
84+
- Windows 10 or later
85+
- PowerShell 5.1 or later
86+
- Internet connection
87+
- Administrator privileges (recommended)
88+
89+
**Installation Methods Used:**
90+
- **WinGet** (Windows Package Manager) - Primary method
91+
- **Scoop** - Alternative package manager
92+
- **Chocolatey** - Alternative package manager
93+
- **npm** - For crush installation
94+
- **Manual downloads** - Fallback method
95+
96+
**Usage:**
97+
```powershell
98+
# Download and run the script in PowerShell (Run as Administrator recommended)
99+
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/your-repo/install_prerequisites_windows.ps1" -OutFile "install_prerequisites_windows.ps1"
100+
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
101+
.\install_prerequisites_windows.ps1
102+
```
103+
104+
**What it does:**
105+
1. Installs WinGet if not present
106+
2. Installs Windows Terminal
107+
3. Installs Git via WinGet, Chocolatey, or Scoop
108+
4. Installs Python via WinGet, Chocolatey, or Scoop
109+
5. Installs uv via WinGet, Scoop, or standalone installer
110+
6. Installs crush via WinGet, Scoop, or npm
111+
7. Optionally installs ghostty via manual download
112+
113+
## Features
114+
115+
### Smart Detection
116+
- All scripts detect if dependencies are already installed
117+
- Skip installation if a dependency is already present
118+
- Provide version information for installed dependencies
119+
120+
### Multiple Installation Methods
121+
- Each script tries multiple installation methods
122+
- Falls back to alternative methods if primary method fails
123+
- Provides manual installation instructions as last resort
124+
125+
### User-Friendly Output
126+
- Color-coded status messages
127+
- Clear success/warning/error indicators
128+
- Progress information throughout installation
129+
130+
### Safety Features
131+
- Linux script prevents running as root
132+
- Windows script handles execution policy
133+
- All scripts use error handling to prevent partial installations
134+
135+
## Troubleshooting
136+
137+
### Common Issues
138+
139+
**macOS:**
140+
- If Homebrew installation fails, install Xcode Command Line Tools manually: `xcode-select --install`
141+
- If you get permission errors, ensure your user account has admin privileges
142+
143+
**Linux:**
144+
- If package manager updates fail, check your internet connection
145+
- For distribution-specific issues, ensure your system is up to date
146+
- Some distributions may require enabling additional repositories
147+
148+
**Windows:**
149+
- If PowerShell execution is blocked, run: `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser`
150+
- If WinGet is not available, the script will install alternative package managers
151+
- Run PowerShell as Administrator for best results
152+
153+
### Manual Installation
154+
155+
If the automated scripts fail, you can install dependencies manually:
156+
157+
1. **Git**: Visit [git-scm.com](https://git-scm.com/downloads)
158+
2. **Python**: Visit [python.org](https://www.python.org/downloads/)
159+
3. **uv**: Visit [docs.astral.sh/uv](https://docs.astral.sh/uv/getting-started/installation/)
160+
4. **crush**: Visit [github.com/charmbracelet/crush](https://github.com/charmbracelet/crush)
161+
5. **ghostty**: Visit [ghostty.org](https://ghostty.org/docs/install/binary)
162+
163+
## Verification
164+
165+
After running any installer script, verify the installations by running:
166+
167+
```bash
168+
# Check versions of installed tools
169+
git --version
170+
python3 --version # or python --version on Windows
171+
uv --version
172+
crush --version
173+
ghostty --version # if installed
174+
```
175+
176+
## Support
177+
178+
If you encounter issues with these installer scripts:
179+
180+
1. Check the troubleshooting section above
181+
2. Ensure your system meets the requirements
182+
3. Try running the script again (it's safe to re-run)
183+
4. For persistent issues, install dependencies manually using the links provided
184+
185+
## License
186+
187+
These installer scripts are provided as-is for convenience. Please refer to the individual software licenses for each dependency being installed.
188+

0 commit comments

Comments
 (0)