os: Initial support for Bedrock Linux

This commit is contained in:
Dylan Araps 2019-01-07 20:56:38 +02:00
parent e155df7a72
commit d36ee68f2c
1 changed files with 25 additions and 10 deletions

View File

@ -829,7 +829,7 @@ get_distro() {
case "$os" in case "$os" in
"Linux" | "BSD" | "MINIX") "Linux" | "BSD" | "MINIX")
if [[ -f "/bedrock/etc/bedrock-release" ]] && [[ $PATH == */bedrock/cross/* ]]; then if [[ -f /bedrock/etc/bedrock-release && $PATH == */bedrock/cross/* ]]; then
case "$distro_shorthand" in case "$distro_shorthand" in
"on" | "tiny") distro="Bedrock Linux" ;; "on" | "tiny") distro="Bedrock Linux" ;;
*) distro="$(< /bedrock/etc/bedrock-release)" *) distro="$(< /bedrock/etc/bedrock-release)"
@ -1277,6 +1277,16 @@ get_packages() {
pac() { (($1 > 0)) && { managers+=("$1 (${manager})"); manager_string+="${manager}, "; }; } pac() { (($1 > 0)) && { managers+=("$1 (${manager})"); manager_string+="${manager}, "; }; }
tot() { IFS=$'\n' read -d "" -ra pkgs < <("$@");((packages+="${#pkgs[@]}"));pac "${#pkgs[@]}"; } tot() { IFS=$'\n' read -d "" -ra pkgs < <("$@");((packages+="${#pkgs[@]}"));pac "${#pkgs[@]}"; }
# Redefine tot() for Bedrock Linux.
[[ -f /bedrock/etc/bedrock-release && "$PATH" == */bedrock/cross/* ]] && {
tot() {
IFS=$'\n' read -d "" -ra pkgs < <(for s in $(brl list); do strat -r "$s" "$@"; done)
((packages+="${#pkgs[@]}"))
pac "${#pkgs[@]}"
}
br_prefix="/bedrock/strata/*"
}
case "$os" in case "$os" in
"Linux" | "BSD" | "iPhone OS" | "Solaris") "Linux" | "BSD" | "iPhone OS" | "Solaris")
# Package Manager Programs. # Package Manager Programs.
@ -1296,15 +1306,20 @@ get_packages() {
has "butch" && tot butch list has "butch" && tot butch list
# Counting files/dirs. # Counting files/dirs.
has "emerge" && dir /var/db/pkg/*/*/ # Variables need to be unquoted here. Only Bedrock Linux is affected.
has "nix-env" && dir /nix/store/*/ # $br_prefix is fixed and won't change based on user input so this is safe either way.
has "guix" && dir /gnu/store/*/ # shellcheck disable=SC2086
has "Compile" && dir /Programs/*/ {
has "eopkg" && dir /var/lib/eopkg/package/* has "emerge" && dir ${br_prefix}/var/db/pkg/*/*/
has "crew" && dir /usr/local/etc/crew/meta/*.filelist has "nix-env" && dir ${br_prefix}/nix/store/*/
has "pkgtool" && dir /var/log/packages/* has "guix" && dir ${br_prefix}/gnu/store/*/
has "cave" && dir /var/db/paludis/repositories/cross-installed/*/data/*/ \ has "Compile" && dir ${br_prefix}/Programs/*/
/var/db/paludis/repositories/installed/data/*/ has "eopkg" && dir ${br_prefix}/var/lib/eopkg/package/*
has "crew" && dir ${br_prefix}/usr/local/etc/crew/meta/*.filelist
has "pkgtool" && dir ${br_prefix}/var/log/packages/*
has "cave" && dir ${br_prefix}/var/db/paludis/repositories/cross-installed/*/data/*/ \
${br_prefix}/var/db/paludis/repositories/installed/data/*/
}
# Other (Needs complex command) # Other (Needs complex command)
has "kpm-pkg" && ((packages+="$(kpm --get-selections | grep -cv deinstall$)")) has "kpm-pkg" && ((packages+="$(kpm --get-selections | grep -cv deinstall$)"))