mirror of
https://github.com/ChrisTitusTech/linutil.git
synced 2025-02-24 01:47:02 +00:00
allow different os-releases and hyprland setup (#1013)
* allow different os-releases and hypr setup * Update core/src/inner.rs Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * Update core/tabs/system-setup/debian/hyprland-kool-deb.sh Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * Update core/tabs/system-setup/arch/hyprland-kool.sh Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * Update core/tabs/system-setup/fedora/hyprland-kool-fed.sh Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * Update core/tabs/system-setup/tab_data.toml Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * Update core/tabs/system-setup/tab_data.toml Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * Update core/tabs/system-setup/tab_data.toml Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * Update core/tabs/system-setup/tab_data.toml Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * Update core/tabs/system-setup/ubuntu/hyprland-kool-ubuntu24.sh Co-authored-by: Adam Perkowski <adas1per@protonmail.com> * refactor: Improve File Contains precondition (#1016) * Update inner.rs (#1021) * Update inner.rs (#1022) * revert to liams commit * Update core/tabs/system-setup/arch/hyprland-kool.sh Co-authored-by: nyx <nnyyxxxx@protonmail.com> * Update core/tabs/system-setup/debian/hyprland-kool-deb.sh Co-authored-by: nyx <nnyyxxxx@protonmail.com> * Update core/tabs/system-setup/fedora/hyprland-kool-fed.sh Co-authored-by: nyx <nnyyxxxx@protonmail.com> * Update core/tabs/system-setup/arch/hyprland-kool.sh Co-authored-by: nyx <nnyyxxxx@protonmail.com> * Update core/tabs/system-setup/debian/hyprland-kool-deb.sh Co-authored-by: nyx <nnyyxxxx@protonmail.com> * Update core/tabs/system-setup/debian/hyprland-kool-deb.sh Co-authored-by: nyx <nnyyxxxx@protonmail.com> * Update core/tabs/system-setup/arch/hyprland-kool.sh Co-authored-by: nyx <nnyyxxxx@protonmail.com> * Update core/tabs/system-setup/arch/hyprland-kool.sh Co-authored-by: nyx <nnyyxxxx@protonmail.com> * Update core/tabs/system-setup/arch/hyprland-kool.sh Co-authored-by: nyx <nnyyxxxx@protonmail.com> * Update core/tabs/system-setup/arch/hyprland-kool.sh Co-authored-by: nyx <nnyyxxxx@protonmail.com> * fix bashisms * Switch to SH from bash --------- Co-authored-by: Adam Perkowski <adas1per@protonmail.com> Co-authored-by: Liam <33645555+lj3954@users.noreply.github.com> Co-authored-by: nyx <nnyyxxxx@protonmail.com>
This commit is contained in:
parent
a6ccaf4a4e
commit
efa6ff9cd2
|
@ -111,12 +111,10 @@ fn default_true() -> bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
|
#[serde(rename_all = "snake_case")]
|
||||||
enum EntryType {
|
enum EntryType {
|
||||||
#[serde(rename = "entries")]
|
|
||||||
Entries(Vec<Entry>),
|
Entries(Vec<Entry>),
|
||||||
#[serde(rename = "command")]
|
|
||||||
Command(String),
|
Command(String),
|
||||||
#[serde(rename = "script")]
|
|
||||||
Script(PathBuf),
|
Script(PathBuf),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,14 +130,16 @@ impl Entry {
|
||||||
match data {
|
match data {
|
||||||
SystemDataType::Environment(var_name) => std::env::var(var_name)
|
SystemDataType::Environment(var_name) => std::env::var(var_name)
|
||||||
.is_ok_and(|var| values.contains(&var) == *matches),
|
.is_ok_and(|var| values.contains(&var) == *matches),
|
||||||
SystemDataType::File(path) => {
|
SystemDataType::ContainingFile(file) => std::fs::read_to_string(file)
|
||||||
std::fs::read_to_string(path).is_ok_and(|data| {
|
.is_ok_and(|data| {
|
||||||
values.iter().all(|matching| data.contains(matching)) == *matches
|
values
|
||||||
})
|
.iter()
|
||||||
}
|
.all(|matching| data.contains(matching) == *matches)
|
||||||
|
}),
|
||||||
SystemDataType::CommandExists => values
|
SystemDataType::CommandExists => values
|
||||||
.iter()
|
.iter()
|
||||||
.all(|command| which::which(command).is_ok() == *matches),
|
.all(|command| which::which(command).is_ok() == *matches),
|
||||||
|
SystemDataType::FileExists => values.iter().all(|p| Path::new(p).is_file()),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
@ -157,12 +157,11 @@ struct Precondition {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize)]
|
#[derive(Deserialize)]
|
||||||
|
#[serde(rename_all = "snake_case")]
|
||||||
enum SystemDataType {
|
enum SystemDataType {
|
||||||
#[serde(rename = "environment")]
|
|
||||||
Environment(String),
|
Environment(String),
|
||||||
#[serde(rename = "file")]
|
ContainingFile(PathBuf),
|
||||||
File(PathBuf),
|
FileExists,
|
||||||
#[serde(rename = "command_exists")]
|
|
||||||
CommandExists,
|
CommandExists,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
15
core/tabs/system-setup/arch/hyprland-kool.sh
Normal file
15
core/tabs/system-setup/arch/hyprland-kool.sh
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../common-script.sh
|
||||||
|
|
||||||
|
printf "%b\n" "${YELLOW}Starting Hyprland JaKooLit installation${RC}"
|
||||||
|
|
||||||
|
if ! pacman -Q base-devel >/dev/null 2>&1; then
|
||||||
|
printf "%b\n" "${YELLOW}Installing base-devel...${RC}"
|
||||||
|
"$ESCALATION_TOOL" pacman -S --noconfirm base-devel
|
||||||
|
fi
|
||||||
|
|
||||||
|
git clone --depth=1 https://github.com/JaKooLit/Arch-Hyprland.git "$HOME/Arch-Hyprland" || { printf "%b\n" "${RED}Failed to clone Jakoolits Arch-Hyprland repo${RC}"; exit 1; }
|
||||||
|
cd "$HOME/Arch-Hyprland" || { printf "%b\n" "${RED}Failed to navigate to Arch-Hyprland directory${RC}"; exit 1; }
|
||||||
|
chmod +x install.sh
|
||||||
|
./install.sh
|
9
core/tabs/system-setup/debian/hyprland-kool-deb.sh
Normal file
9
core/tabs/system-setup/debian/hyprland-kool-deb.sh
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../common-script.sh
|
||||||
|
|
||||||
|
printf "%b\n" "${YELLOW}Starting Hyprland JaKooLit installation${RC}"
|
||||||
|
git clone --depth=1 https://github.com/JaKooLit/Debian-Hyprland.git "$HOME/Debian-Hyprland" || { printf "%b\n" "${RED}Failed to clone Jakoolits Debian-Hyprland repo${RC}"; exit 1; }
|
||||||
|
cd "$HOME/Debian-Hyprland" || { printf "%b\n" "${RED}Failed to navigate to Debian-Hyprland directory${RC}"; exit 1; }
|
||||||
|
chmod +x install.sh
|
||||||
|
./install.sh
|
10
core/tabs/system-setup/fedora/hyprland-kool-fed.sh
Normal file
10
core/tabs/system-setup/fedora/hyprland-kool-fed.sh
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../common-script.sh
|
||||||
|
|
||||||
|
printf "%b\n" "${YELLOW}Starting Hyprland JaKooLit installation${RC}"
|
||||||
|
|
||||||
|
git clone --depth=1 https://github.com/JaKooLit/Fedora-Hyprland.git "$HOME/Fedora-Hyprland" || { printf "%b\n" "${RED}Failed to clone Jakoolits Fedora-Hyprland repo${RC}"; exit 1; }
|
||||||
|
cd "$HOME/Fedora-Hyprland" || { printf "%b\n" "${RED}Failed to navigate to Fedora-Hyprland directory${RC}"; exit 1; }
|
||||||
|
chmod +x install.sh
|
||||||
|
./install.sh
|
|
@ -16,15 +16,22 @@ task_list = "SI D"
|
||||||
multi_select = false
|
multi_select = false
|
||||||
|
|
||||||
[[data.entries]]
|
[[data.entries]]
|
||||||
name ="Linux Neptune for SteamDeck"
|
name = "Hyprland JaKooLit"
|
||||||
|
description = "Install JaKooLit's Hyprland configuration"
|
||||||
|
script = "arch/hyprland-kool.sh"
|
||||||
|
task_list = "I MP"
|
||||||
|
multi_select = false
|
||||||
|
|
||||||
|
[[data.entries]]
|
||||||
|
name = "Linux Neptune for SteamDeck"
|
||||||
description = "Valve's fork of Linux Kernel for the SteamDeck"
|
description = "Valve's fork of Linux Kernel for the SteamDeck"
|
||||||
script = "arch/linux-neptune.sh"
|
script = "arch/linux-neptune.sh"
|
||||||
task_list = "I PFM K"
|
task_list = "I PFM K"
|
||||||
|
|
||||||
[[data.entries.preconditions]]
|
[[data.entries.preconditions]]
|
||||||
matches = true
|
matches = true
|
||||||
data = { file = "/sys/devices/virtual/dmi/id/board_vendor" }
|
data = { containing_file = "/sys/devices/virtual/dmi/id/board_vendor" }
|
||||||
values = [ "Valve" ]
|
values = ["Valve"]
|
||||||
|
|
||||||
[[data.entries]]
|
[[data.entries]]
|
||||||
name = "Nvidia Drivers && Hardware Acceleration"
|
name = "Nvidia Drivers && Hardware Acceleration"
|
||||||
|
@ -50,6 +57,20 @@ description = "Yet Another Yogurt - An AUR Helper Written in Go. To know more ab
|
||||||
script = "arch/yay-setup.sh"
|
script = "arch/yay-setup.sh"
|
||||||
task_list = "I"
|
task_list = "I"
|
||||||
|
|
||||||
|
[[data]]
|
||||||
|
name = "Debian"
|
||||||
|
|
||||||
|
[[data.preconditions]]
|
||||||
|
matches = true
|
||||||
|
data = { containing_file = "/etc/os-release" }
|
||||||
|
values = ["ID=debian"]
|
||||||
|
|
||||||
|
[[data.entries]]
|
||||||
|
name = "Hyprland JaKooLit"
|
||||||
|
description = "Install JaKooLit's Hyprland configuration"
|
||||||
|
script = "debian/hyprland-kool-deb.sh"
|
||||||
|
task_list = "I MP"
|
||||||
|
|
||||||
[[data]]
|
[[data]]
|
||||||
name = "Fedora"
|
name = "Fedora"
|
||||||
|
|
||||||
|
@ -64,6 +85,12 @@ description = "Optimizes DNF for parallel downloads"
|
||||||
script = "fedora/configure-dnf.sh"
|
script = "fedora/configure-dnf.sh"
|
||||||
task_list = "PFM"
|
task_list = "PFM"
|
||||||
|
|
||||||
|
[[data.entries]]
|
||||||
|
name = "Hyprland JaKooLit"
|
||||||
|
description = "Install JaKooLit's Hyprland configuration"
|
||||||
|
script = "fedora/hyprland-kool-fed.sh"
|
||||||
|
task_list = "I MP"
|
||||||
|
|
||||||
[[data.entries]]
|
[[data.entries]]
|
||||||
name = "Multimedia Codecs"
|
name = "Multimedia Codecs"
|
||||||
description = "This script is designed to install multimedia codecs, and to ensure RPM Fusion repositories are installed."
|
description = "This script is designed to install multimedia codecs, and to ensure RPM Fusion repositories are installed."
|
||||||
|
@ -103,7 +130,26 @@ task_list = "I PFM SS"
|
||||||
[[data.preconditions]]
|
[[data.preconditions]]
|
||||||
matches = true
|
matches = true
|
||||||
data = "command_exists"
|
data = "command_exists"
|
||||||
values = [ "btrfs" ]
|
values = ["btrfs"]
|
||||||
|
|
||||||
|
[[data]]
|
||||||
|
name = "Ubuntu"
|
||||||
|
|
||||||
|
[[data.preconditions]]
|
||||||
|
matches = true
|
||||||
|
data = { containing_file = "/etc/os-release" }
|
||||||
|
values = ["ID=ubuntu"]
|
||||||
|
|
||||||
|
[[data.entries]]
|
||||||
|
name = "Hyprland JaKooLit"
|
||||||
|
description = "Install JaKooLit's Hyprland configuration"
|
||||||
|
script = "ubuntu/hyprland-kool-ubuntu24.sh"
|
||||||
|
task_list = "I MP"
|
||||||
|
|
||||||
|
[[data.preconditions]]
|
||||||
|
matches = true
|
||||||
|
data = { containing_file = "/etc/os-release" }
|
||||||
|
values = ['VERSION_ID="24.04"']
|
||||||
|
|
||||||
[[data]]
|
[[data]]
|
||||||
name = "Build Prerequisites"
|
name = "Build Prerequisites"
|
||||||
|
|
10
core/tabs/system-setup/ubuntu/hyprland-kool-ubuntu24.sh
Normal file
10
core/tabs/system-setup/ubuntu/hyprland-kool-ubuntu24.sh
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../common-script.sh
|
||||||
|
|
||||||
|
printf "%b\n" "${YELLOW}Starting Hyprland JaKooLit installation${RC}"
|
||||||
|
|
||||||
|
git clone -b 24.04 --depth=1 https://github.com/JaKooLit/Ubuntu-Hyprland.git "$HOME/Ubuntu-Hyprland-24.04" || { printf "%b\n" "${RED}Failed to clone Jakoolits Ubuntu-Hyprland repo${RC}"; exit 1; }
|
||||||
|
cd "$HOME/Ubuntu-Hyprland-24.04" || { printf "%b\n" "${RED}Failed to navigate to Ubuntu-Hyprland-24.04 directory${RC}"; exit 1; }
|
||||||
|
chmod +x install.sh
|
||||||
|
./install.sh
|
Loading…
Reference in New Issue
Block a user