-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackages.lua
More file actions
114 lines (110 loc) · 3.49 KB
/
Copy pathpackages.lua
File metadata and controls
114 lines (110 loc) · 3.49 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
-- Example package definitions with pre/post-install commands
return {
-- Simple package without any commands
editor = {
description = "Neovim text editor",
arch = "neovim",
fedora = "neovim",
debian = "neovim"
},
-- Package with repository setup (common use case)
docker = {
description = "Docker container platform",
arch = "docker",
fedora = "docker-ce",
debian = "docker-ce",
pre_install = {
debian = {
"curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg",
"echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian bullseye stable' | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null",
"sudo apt update"
},
fedora = {
"sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo"
}
},
post_install = {
arch = {
"sudo systemctl enable docker",
"sudo systemctl start docker",
"sudo usermod -aG docker $USER"
},
fedora = {
"sudo systemctl enable docker",
"sudo systemctl start docker",
"sudo usermod -aG docker $USER"
},
debian = {
"sudo systemctl enable docker",
"sudo systemctl start docker",
"sudo usermod -aG docker $USER"
}
}
},
-- Package with configuration setup
git = {
description = "Git version control system",
arch = "git",
fedora = "git",
debian = "git",
post_install = {
arch = {
"git config --global init.defaultBranch main"
},
fedora = {
"git config --global init.defaultBranch main"
},
debian = {
"git config --global init.defaultBranch main"
}
}
},
-- Package requiring kernel headers (common for drivers)
virtualbox = {
description = "VirtualBox virtualization software",
arch = "virtualbox",
fedora = "VirtualBox",
debian = "virtualbox",
pre_install = {
arch = {
"sudo pacman -S --needed linux-headers"
},
fedora = {
"sudo dnf install kernel-devel kernel-headers"
},
debian = {
"sudo apt install linux-headers-$(uname -r)"
}
},
post_install = {
arch = {
"sudo modprobe vboxdrv"
},
fedora = {
"sudo /sbin/vboxconfig"
},
debian = {
"sudo modprobe vboxdrv"
}
}
},
-- Package with PPA setup (Ubuntu/Debian specific)
vscode = {
description = "Visual Studio Code editor",
arch = "visual-studio-code-bin",
fedora = "code",
debian = "code",
pre_install = {
debian = {
"wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg",
"sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/",
"sudo sh -c 'echo \"deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main\" > /etc/apt/sources.list.d/vscode.list'",
"sudo apt update"
},
fedora = {
"sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc",
"sudo sh -c 'echo -e \"[code]\\nname=Visual Studio Code\\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\\nenabled=1\\ngpgcheck=1\\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc\" > /etc/yum.repos.d/vscode.repo'"
}
}
}
}