-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathbootstrap-workstation.sh
More file actions
executable file
·147 lines (104 loc) · 2.5 KB
/
bootstrap-workstation.sh
File metadata and controls
executable file
·147 lines (104 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/bin/bash
# Strict error handling
set -euo pipefail
# Validate environment
_SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")"
_LIB_FILE="${_SCRIPT_DIR}/bootstrap-lib.sh"
# Source library with error handling
if [[ ! -f "${_LIB_FILE}" ]]; then
printf "ERROR: Required library file not found: %s" "${_LIB_FILE}" >&2
exit 1
fi
# shellcheck source=./bootstrap-lib.sh
source "${_LIB_FILE}"
# Check distribution
fn_check_distro
if [[ "${ID}" == "debian" ]]; then
# local user ssh agent
fn_local_user_ssh_agent
fn_system_setup_crostini
# rustup
fn_local_install_rustup
# fn_local_install_neovim
fi
if [[ "${ID}" == "Termux" ]]; then
fn_system_setup_termux
fi
if [[ "${ID}" == "rhel" || "${ID}" == "redhat" || "${ID}" == "centos" || "${ID}" == "fedora" ]]; then
fn_system_setup_fedora_el
# virtualenvwrapper
fn_local_install_virtualenvwrapper
fi
# Only setup gcloud if inside a Fedora toolbox
if [[ "${ID}" == "fedora" ]] && ! [[ -z "${TOOLBOX_PATH:-}" ]]; then
fn_system_install_gcloud
fi
# setup vim plug
fn_local_install_vim_plug
# k8s stuff
fn_local_install_minikube
fn_local_install_kind
fn_local_install_helm
fn_local_install_kustomize
fn_local_install_kubectl
fn_local_install_k9s
fn_local_install_kubebuilder
fn_local_install_operator_sdk
# rosa
fn_local_install_rosa
# terraform
fn_local_install_terraform
# uv tool install
fn_local_uv_tool_install
# rootless distrobox
fn_local_install_distrobox
# OPA
fn_local_install_opa
# GH cli
fn_local_install_gh
# Task
fn_local_install_task
# yq
fn_local_install_yq
# syft
fn_local_install_syft
# grype
fn_local_install_grype
# cosign
fn_local_install_cosign
# cheat.sh
fn_local_install_chtsh
# aws cli
fn_local_install_aws
# go-blueprint
fn_local_install_go_blueprint
#shfmt
fn_local_install_shfmt
# goose
fn_local_install_goose # waiting on r0x0d/goose copr to fix some things
# container-use (goose sandbox extension)
fn_local_install_container_use
# ollama
fn_local_install_ollama
# claude code
fn_local_install_claude_code
fn_local_install_super_claude
#fn_local_install_beads # waiting on r0x0d/beads to fix some things
#fn_local_install_claude_code_requirements_builder
# openai codex
fn_local_install_openai_codex
# gemini cli
fn_local_install_gemini
# cursor cli
fn_local_install_cursor_cli
# OpenCode
fn_local_install_opencode
# bash language server
fn_local_bash_language_server
# charms
fn_local_install_charm_apps
# Agent Skills
fn_local_install_skills
# print errors if there are any
fn_print_errors
printf "Done!\n"