Skip to content

Commit 0e688b2

Browse files
- remove manual direnv
- add direnv through mise - set ruby to a stable rn version - serialize config via yaml - use yaml for configs - migrate apps settings to this repo
1 parent 266042d commit 0e688b2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+1950
-2022
lines changed

.mise.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@
66
# Uncomment and adjust versions as needed:
77
# node = "22" # Node.js LTS
88
python = "3.13"
9-
ruby = "3.4.0"
9+
ruby = "3.2.2"
1010
java = "zulu-17"
1111
go = "1.23"
1212
rust = "stable"
13+
direnv = "2.37.1"
1314

1415
[env]
1516
# Environment variables for mise

README.md

Lines changed: 281 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,287 @@ Check out the **[osa-scripts repository](https://github.com/VirtualizeLLC/osa-sc
341341
- 📖 **[CONTRIBUTING.md](CONTRIBUTING.md)** - Code standards, testing, development workflow
342342
- 📖 **[tests/README.md](tests/README.md)** - Testing framework and test writing guide
343343

344+
## CLI Commands
345+
346+
The `osa-cli.zsh` script provides a comprehensive interface for setup and configuration management. After setup, all commands are available via the `osa` shortcut.
347+
348+
### Setup & Installation Modes
349+
350+
<table>
351+
<thead>
352+
<tr>
353+
<th>Command</th>
354+
<th>Arguments</th>
355+
<th>Description</th>
356+
<th>Use When</th>
357+
</tr>
358+
</thead>
359+
<tbody>
360+
<tr>
361+
<td><code>-i, --interactive</code></td>
362+
<td>None</td>
363+
<td>Start interactive setup wizard (prompts for each component)</td>
364+
<td>First-time setup, exploring options, customizing per component</td>
365+
</tr>
366+
<tr>
367+
<td><code>-a, --auto</code></td>
368+
<td>None</td>
369+
<td>Run automated setup using saved config from <code>~/.osa-config</code></td>
370+
<td>Reproducible setup on a new machine (requires prior save)</td>
371+
</tr>
372+
<tr>
373+
<td><code>--minimal</code></td>
374+
<td>None</td>
375+
<td>Quick install: core shell + mise runtime manager</td>
376+
<td>Fast lightweight setup, development environments, servers</td>
377+
</tr>
378+
<tr>
379+
<td><code>--all</code></td>
380+
<td>None</td>
381+
<td>Enable all available components</td>
382+
<td>Complete setup with everything OSA supports</td>
383+
</tr>
384+
<tr>
385+
<td><code>--config</code></td>
386+
<td><code>FILE</code> or <code>NAME</code></td>
387+
<td>Use JSON config file (auto-resolves from <code>configs/</code>)</td>
388+
<td>Preset configurations: <code>./osa-cli.zsh --config minimal</code></td>
389+
</tr>
390+
<tr>
391+
<td><code>--config-url</code></td>
392+
<td><code>HTTPS_URL</code></td>
393+
<td>Download and use JSON config from remote URL (HTTPS only)</td>
394+
<td>Team setups, GitHub gists, remote configs</td>
395+
</tr>
396+
<tr>
397+
<td><code>--dry-run</code></td>
398+
<td>None</td>
399+
<td>Show what would be installed without running any scripts</td>
400+
<td>Preview before committing, testing configs</td>
401+
</tr>
402+
</tbody>
403+
</table>
404+
405+
### Information & Reporting
406+
407+
<table>
408+
<thead>
409+
<tr>
410+
<th>Command</th>
411+
<th>Arguments</th>
412+
<th>Description</th>
413+
</tr>
414+
</thead>
415+
<tbody>
416+
<tr>
417+
<td><code>-h, --help</code></td>
418+
<td>None</td>
419+
<td>Show help message with all available options</td>
420+
</tr>
421+
<tr>
422+
<td><code>--list-configs</code></td>
423+
<td>None</td>
424+
<td>List all available preset configurations</td>
425+
</tr>
426+
<tr>
427+
<td><code>-l, --list</code></td>
428+
<td>None</td>
429+
<td>List all available components</td>
430+
</tr>
431+
<tr>
432+
<td><code>--info</code></td>
433+
<td>None</td>
434+
<td>Show platform information (OS, architecture, shell, git)</td>
435+
</tr>
436+
<tr>
437+
<td><code>--status</code></td>
438+
<td>None</td>
439+
<td>Show current configuration and enabled components</td>
440+
</tr>
441+
<tr>
442+
<td><code>--doctor</code></td>
443+
<td>None</td>
444+
<td>Validate installation and suggest fixes (no changes made)</td>
445+
</tr>
446+
<tr>
447+
<td><code>--report</code></td>
448+
<td>None</td>
449+
<td>Generate system report for debugging/bug reporting</td>
450+
</tr>
451+
<tr>
452+
<td><code>--report-json</code></td>
453+
<td>None</td>
454+
<td>Generate system report in JSON format</td>
455+
</tr>
456+
<tr>
457+
<td><code>--report-url</code></td>
458+
<td>None</td>
459+
<td>Generate pre-filled GitHub issue URL with environment info</td>
460+
</tr>
461+
</tbody>
462+
</table>
463+
464+
### Component Management
465+
466+
<table>
467+
<thead>
468+
<tr>
469+
<th>Command</th>
470+
<th>Arguments</th>
471+
<th>Description</th>
472+
</tr>
473+
</thead>
474+
<tbody>
475+
<tr>
476+
<td><code>--enable</code></td>
477+
<td><code>COMPONENT</code></td>
478+
<td>Enable a specific component (e.g., <code>--enable cocoapods</code>)</td>
479+
</tr>
480+
<tr>
481+
<td><code>--disable</code></td>
482+
<td><code>COMPONENT</code></td>
483+
<td>Disable a specific component (e.g., <code>--disable cocoapods</code>)</td>
484+
</tr>
485+
<tr>
486+
<td><code>--disable-osa-snippets</code></td>
487+
<td>None</td>
488+
<td>Skip osa-snippets installation (enabled by default)</td>
489+
</tr>
490+
<tr>
491+
<td><code>--disable-git</code></td>
492+
<td>None</td>
493+
<td>Skip Git configuration (default: configure git)</td>
494+
</tr>
495+
<tr>
496+
<td><code>--skip-cocoapods</code></td>
497+
<td>None</td>
498+
<td>Skip CocoaPods installation (useful for testing)</td>
499+
</tr>
500+
<tr>
501+
<td><code>--local</code></td>
502+
<td>None</td>
503+
<td>Skip global mise setup (only setup local configs)</td>
504+
</tr>
505+
</tbody>
506+
</table>
507+
508+
### Cleanup & Maintenance
509+
510+
<table>
511+
<thead>
512+
<tr>
513+
<th>Command</th>
514+
<th>Arguments</th>
515+
<th>Description</th>
516+
</tr>
517+
</thead>
518+
<tbody>
519+
<tr>
520+
<td><code>--clean</code></td>
521+
<td>None</td>
522+
<td>Remove all OSA data (combinable with <code>--minimal</code> or <code>--all</code> for clean reinstall)</td>
523+
</tr>
524+
<tr>
525+
<td><code>--clean-symlinks</code></td>
526+
<td>None</td>
527+
<td>Remove all OSA symlinks (with interactive confirmation)</td>
528+
</tr>
529+
<tr>
530+
<td><code>--clean-oh-my-zsh</code></td>
531+
<td>None</td>
532+
<td>Remove oh-my-zsh plugin symlinks only</td>
533+
</tr>
534+
<tr>
535+
<td><code>--unsafe</code></td>
536+
<td>None</td>
537+
<td>Skip confirmation prompts for destructive operations (use with caution)</td>
538+
</tr>
539+
</tbody>
540+
</table>
541+
542+
### Security
543+
544+
<table>
545+
<thead>
546+
<tr>
547+
<th>Command</th>
548+
<th>Arguments</th>
549+
<th>Description</th>
550+
</tr>
551+
</thead>
552+
<tbody>
553+
<tr>
554+
<td><code>--scan-secrets</code></td>
555+
<td>None</td>
556+
<td>Scan constructors for hardcoded secrets/credentials</td>
557+
</tr>
558+
<tr>
559+
<td><code>--migrate-secrets</code></td>
560+
<td>None</td>
561+
<td>Interactive wizard to move secrets to secure storage</td>
562+
</tr>
563+
<tr>
564+
<td><code>--setup-git-hook</code></td>
565+
<td>None</td>
566+
<td>Install pre-commit hook to prevent secret commits</td>
567+
</tr>
568+
</tbody>
569+
</table>
570+
571+
### Verbosity & Output
572+
573+
<table>
574+
<thead>
575+
<tr>
576+
<th>Command</th>
577+
<th>Arguments</th>
578+
<th>Description</th>
579+
</tr>
580+
</thead>
581+
<tbody>
582+
<tr>
583+
<td><code>-v, --verbose</code></td>
584+
<td>None</td>
585+
<td>Show detailed output from installers (git, oh-my-zsh, etc.)</td>
586+
</tr>
587+
</tbody>
588+
</table>
589+
590+
### Common Examples
591+
592+
```bash
593+
# First-time interactive setup
594+
./osa-cli.zsh --interactive
595+
596+
# Fast setup with core shell + mise
597+
./osa-cli.zsh --minimal
598+
599+
# Use a preset configuration
600+
./osa-cli.zsh --config react-native
601+
602+
# Test config without installing
603+
./osa-cli.zsh --config web --dry-run
604+
605+
# Download and use a team config
606+
./osa-cli.zsh --config-url https://raw.github.com/yourorg/osa-configs/main/team.json
607+
608+
# Enable just CocoaPods (requires prior setup)
609+
./osa-cli.zsh --enable cocoapods --auto
610+
611+
# Remove all OSA data for fresh reinstall
612+
./osa-cli.zsh --clean --minimal
613+
614+
# Check platform and current setup
615+
./osa-cli.zsh --info && ./osa-cli.zsh --status
616+
617+
# Generate debug report for bug reporting
618+
./osa-cli.zsh --report
619+
620+
# After setup, use the osa shortcut from anywhere
621+
osa --info
622+
osa --config android
623+
```
624+
344625
## Windows Native Setup
345626

346627
Windows doesn't have native bash/zsh support, so you'll need to manually configure scripts and tools. OSA primarily targets Unix-like environments, but we include some Windows utilities:

0 commit comments

Comments
 (0)