Skip to content

Commit

Permalink
allow different os-releases and hyprland setup (#1013)
Browse files Browse the repository at this point in the history
* allow different os-releases and hypr setup

* Update core/src/inner.rs

Co-authored-by: Adam Perkowski <[email protected]>

* Update core/tabs/system-setup/debian/hyprland-kool-deb.sh

Co-authored-by: Adam Perkowski <[email protected]>

* Update core/tabs/system-setup/arch/hyprland-kool.sh

Co-authored-by: Adam Perkowski <[email protected]>

* Update core/tabs/system-setup/fedora/hyprland-kool-fed.sh

Co-authored-by: Adam Perkowski <[email protected]>

* Update core/tabs/system-setup/tab_data.toml

Co-authored-by: Adam Perkowski <[email protected]>

* Update core/tabs/system-setup/tab_data.toml

Co-authored-by: Adam Perkowski <[email protected]>

* Update core/tabs/system-setup/tab_data.toml

Co-authored-by: Adam Perkowski <[email protected]>

* Update core/tabs/system-setup/tab_data.toml

Co-authored-by: Adam Perkowski <[email protected]>

* Update core/tabs/system-setup/ubuntu/hyprland-kool-ubuntu24.sh

Co-authored-by: Adam Perkowski <[email protected]>

* 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 <[email protected]>

* Update core/tabs/system-setup/debian/hyprland-kool-deb.sh

Co-authored-by: nyx <[email protected]>

* Update core/tabs/system-setup/fedora/hyprland-kool-fed.sh

Co-authored-by: nyx <[email protected]>

* Update core/tabs/system-setup/arch/hyprland-kool.sh

Co-authored-by: nyx <[email protected]>

* Update core/tabs/system-setup/debian/hyprland-kool-deb.sh

Co-authored-by: nyx <[email protected]>

* Update core/tabs/system-setup/debian/hyprland-kool-deb.sh

Co-authored-by: nyx <[email protected]>

* Update core/tabs/system-setup/arch/hyprland-kool.sh

Co-authored-by: nyx <[email protected]>

* Update core/tabs/system-setup/arch/hyprland-kool.sh

Co-authored-by: nyx <[email protected]>

* Update core/tabs/system-setup/arch/hyprland-kool.sh

Co-authored-by: nyx <[email protected]>

* Update core/tabs/system-setup/arch/hyprland-kool.sh

Co-authored-by: nyx <[email protected]>

* fix bashisms

* Switch to SH from bash

---------

Co-authored-by: Adam Perkowski <[email protected]>
Co-authored-by: Liam <[email protected]>
Co-authored-by: nyx <[email protected]>
  • Loading branch information
4 people authored Feb 6, 2025
1 parent a6ccaf4 commit efa6ff9
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 16 deletions.
23 changes: 11 additions & 12 deletions core/src/inner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,12 +111,10 @@ fn default_true() -> bool {
}

#[derive(Deserialize)]
#[serde(rename_all = "snake_case")]
enum EntryType {
#[serde(rename = "entries")]
Entries(Vec<Entry>),
#[serde(rename = "command")]
Command(String),
#[serde(rename = "script")]
Script(PathBuf),
}

Expand All @@ -132,14 +130,16 @@ impl Entry {
match data {
SystemDataType::Environment(var_name) => std::env::var(var_name)
.is_ok_and(|var| values.contains(&var) == *matches),
SystemDataType::File(path) => {
std::fs::read_to_string(path).is_ok_and(|data| {
values.iter().all(|matching| data.contains(matching)) == *matches
})
}
SystemDataType::ContainingFile(file) => std::fs::read_to_string(file)
.is_ok_and(|data| {
values
.iter()
.all(|matching| data.contains(matching) == *matches)
}),
SystemDataType::CommandExists => values
.iter()
.all(|command| which::which(command).is_ok() == *matches),
SystemDataType::FileExists => values.iter().all(|p| Path::new(p).is_file()),
}
},
)
Expand All @@ -157,12 +157,11 @@ struct Precondition {
}

#[derive(Deserialize)]
#[serde(rename_all = "snake_case")]
enum SystemDataType {
#[serde(rename = "environment")]
Environment(String),
#[serde(rename = "file")]
File(PathBuf),
#[serde(rename = "command_exists")]
ContainingFile(PathBuf),
FileExists,
CommandExists,
}

Expand Down
15 changes: 15 additions & 0 deletions core/tabs/system-setup/arch/hyprland-kool.sh
Original file line number Diff line number Diff line change
@@ -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 changes: 9 additions & 0 deletions core/tabs/system-setup/debian/hyprland-kool-deb.sh
Original file line number Diff line number Diff line change
@@ -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 changes: 10 additions & 0 deletions core/tabs/system-setup/fedora/hyprland-kool-fed.sh
Original file line number Diff line number Diff line change
@@ -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
54 changes: 50 additions & 4 deletions core/tabs/system-setup/tab_data.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,22 @@ task_list = "SI D"
multi_select = false

[[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"
script = "arch/linux-neptune.sh"
task_list = "I PFM K"

[[data.entries.preconditions]]
matches = true
data = { file = "/sys/devices/virtual/dmi/id/board_vendor" }
values = [ "Valve" ]
data = { containing_file = "/sys/devices/virtual/dmi/id/board_vendor" }
values = ["Valve"]

[[data.entries]]
name = "Nvidia Drivers && Hardware Acceleration"
Expand All @@ -50,6 +57,20 @@ description = "Yet Another Yogurt - An AUR Helper Written in Go. To know more ab
script = "arch/yay-setup.sh"
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]]
name = "Fedora"

Expand All @@ -64,6 +85,12 @@ description = "Optimizes DNF for parallel downloads"
script = "fedora/configure-dnf.sh"
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]]
name = "Multimedia Codecs"
description = "This script is designed to install multimedia codecs, and to ensure RPM Fusion repositories are installed."
Expand Down Expand Up @@ -103,7 +130,26 @@ task_list = "I PFM SS"
[[data.preconditions]]
matches = true
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]]
name = "Build Prerequisites"
Expand Down
10 changes: 10 additions & 0 deletions core/tabs/system-setup/ubuntu/hyprland-kool-ubuntu24.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit efa6ff9

Please sign in to comment.