Commit 7e6b967e authored by Ivan Mazhukin's avatar Ivan Mazhukin Committed by Vitaly Lipatov

epm desktop: add metapackage's support (eterbug #17617)

parent 3831ddf5
...@@ -36,12 +36,14 @@ copy_files_if_absent() { ...@@ -36,12 +36,14 @@ copy_files_if_absent() {
sudorun mkdir -p "$target_dir" sudorun mkdir -p "$target_dir"
for file in "$source_dir"/*.json; do for file in "$source_dir"/*.json; do
filename=$(basename "$file") filename=$(basename "$file")
target_file="$target_dir/$filename" target_file="$target_dir/$filename"
if [ ! -f "$target_file" ]; then if [ ! -f "$target_file" ] || ! grep -q "metapackages" "$target_file"; then
sudorun cp "$file" "$target_file" sudorun cp "$file" "$target_file"
fi fi
done done
} }
...@@ -123,6 +125,12 @@ get_repo_version() { ...@@ -123,6 +125,12 @@ get_repo_version() {
fi fi
fi fi
} }
install_de_meta() {
local metapackages=$(get_value "$de_name" "metapackages")
[ -n "$metapackages" ] && epm install --manual-requires $metapackages
return
}
install_de() { install_de() {
local de_name=$1 local de_name=$1
...@@ -135,13 +143,15 @@ install_de() { ...@@ -135,13 +143,15 @@ install_de() {
fi fi
message "Installing $de_name with dependencies: $dependencies" message "Installing $de_name with dependencies: $dependencies"
if ! install_de_meta $metapackages; then
message "Failed to install $de_name." && return 1
fi
if epm install $dependencies; then if epm install $dependencies; then
message "$de_name successfully installed." message "$de_name successfully installed."
update_installed_status "$de_name" true update_installed_status "$de_name" true
else else
message "Failed to install $de_name." message "Failed to install $de_name." && return 1
return 1
fi fi
} }
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
"version": "46.4", "version": "46.4",
"installed": false, "installed": false,
"dependencies": ["gnome-shell", "gdm"], "dependencies": ["gnome-shell", "gdm"],
"description": "Window management and application launching for GNOME" "description": "Window management and application launching for GNOME",
"metapackages": ["test"]
} }
\ No newline at end of file
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
"version": "0.42.0", "version": "0.42.0",
"installed": false, "installed": false,
"dependencies": [ "hyprland", "kitty", "waybar", "wlogout", "fonts-ttf-fira-code-nerd", "hyprpaper", "hyprshot", "wofi", "pwvucontrol", "cliphist", "polkit-gnome"], "dependencies": [ "hyprland", "kitty", "waybar", "wlogout", "fonts-ttf-fira-code-nerd", "hyprpaper", "hyprshot", "wofi", "pwvucontrol", "cliphist", "polkit-gnome"],
"description": "Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on its looks" "description": "Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on its looks",
"metapackages": [ "hyprland" ]
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment