progress as of 6/12
This commit is contained in:
parent
7ae624cee7
commit
aa29a4a030
@ -4,15 +4,15 @@ all:
|
||||
@echo Run \'make install\'.
|
||||
|
||||
install:
|
||||
mkdir -p $(DESTDIR)/etc/glacier
|
||||
mkdir -p $(DESTDIR)/usr/glacier
|
||||
mkdir -p $(DESTDIR)/usr/glacier/index
|
||||
install ../src/bin/gpkg $(DESTDIR)/usr/bin
|
||||
install ../src/bin/gquery $(DESTDIR)/usr/bin
|
||||
install ../src/bin/syspkg $(DESTDIR)/usr/bin
|
||||
install ../src/bin/gpc $(DESTDIR)/usr/bin
|
||||
install ../src/bin/glist $(DESTDIR)/usr/bin
|
||||
install ../src/bin/glacier-mkprofile $(DESTDIR)/usr/bin
|
||||
install ../src/etc/glacier.conf /etc
|
||||
install ../src/etc/make.conf /etc
|
||||
install ../src/etc/call-hooks /etc/glacier
|
||||
mkdir -p $(PREFIX)/etc/glacier
|
||||
mkdir -p $(PREFIX)/usr/glacier
|
||||
mkdir -p $(PREFIX)/usr/glacier/index
|
||||
install ../src/bin/gpkg $(PREFIX)/usr/bin
|
||||
install ../src/bin/gquery $(PREFIX)/usr/bin
|
||||
install ../src/bin/syspkg $(PREFIX)/usr/bin
|
||||
install ../src/bin/gpc $(PREFIX)/usr/bin
|
||||
install ../src/bin/glist $(PREFIX)/usr/bin
|
||||
install ../src/bin/glacier-mkprofile $(PREFIX)/usr/bin
|
||||
install ../src/etc/glacier.conf $(PREFIX)/etc
|
||||
install ../src/etc/make.conf $(PREFIX)/etc
|
||||
install ../src/etc/call-hooks $(PREFIX)/etc/glacier
|
||||
|
@ -1 +1 @@
|
||||
PREFIX = /usr
|
||||
PREFIX = /home/arco/Projects/glacier4/testing
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
#!/bin/bash
|
||||
|
||||
# glacier-mkprofile - update the Glacier system profile
|
||||
# This file is part of Glacier.
|
||||
@ -18,6 +18,14 @@
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Glacier. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
#
|
||||
# Meaning of different positional parameters:
|
||||
# ${0} - Program name
|
||||
# ${1} - flag passed to program (ie. -h, -v, etc)
|
||||
# ${2} - selected system profile
|
||||
# ${3} - directory to update profile in
|
||||
#
|
||||
|
||||
source /etc/glacier.conf
|
||||
|
||||
usage() {
|
||||
@ -36,6 +44,27 @@ usage_small() {
|
||||
printf "usage: ${0} [-h] [-v] [-l] PROFILE_NAME\n"
|
||||
}
|
||||
|
||||
check_if_option_is_blank() {
|
||||
if [ "${1}" == "" ]; then
|
||||
printf "[x] No option specified. See '${0} -h for a list of options.\n"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_if_profile_is_blank() {
|
||||
if [ "${2}" == "" ]; then
|
||||
printf "[x] Profile cannot be blank. See ${0} -l for a list of profiles.\n"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_if_dir_is_blank() {
|
||||
if [ "${3}" == "" ]; then
|
||||
printf "[x] Directory cannot be blank.\n"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
available_profiles() {
|
||||
printf "${blue}[i]${reset} Available profiles:\n"
|
||||
printf "x86-musl\n"
|
||||
@ -84,7 +113,7 @@ glacier_conf() {
|
||||
echo "GREPO='${ROOT_URL}/epkgs-x86-glibc-multilib/raw/branch/main'" >> /etc/glacier.conf
|
||||
;;
|
||||
*)
|
||||
printf "[x] Invalid profile chosen. See 'glacier-mkprofile -l' to see all available profiles.\n"
|
||||
printf "[x] Invalid or incompatible profile chosen. See 'glacier-mkprofile -l' to see all available profiles.\n"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@ -139,7 +168,39 @@ glacier_profile_conf() {
|
||||
echo "GLACIER_SYSTEM_PROFILE='x86-glibc-multilib'" >> /etc/glacier/profile.conf
|
||||
;;
|
||||
*)
|
||||
printf "[x] Invalid profile chosen. See 'glacier-mkprofile -l' to see all available profiles.\n"
|
||||
printf "[x] Invalid or incompatible profile chosen. See 'glacier-mkprofile -l' to see all available profiles.\n"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
glacier_pkg_index() {
|
||||
ROOT_URL="https://git.everestlinux.org/EverestLinux"
|
||||
cd ${3}/usr/glacier
|
||||
case ${2} in
|
||||
x86-musl)
|
||||
git clone ${ROOT_URL}/epkgs-x86-musl
|
||||
;;
|
||||
x86-glibc)
|
||||
git clone ${ROOT_URL}/epkgs-x86-glibc
|
||||
;;
|
||||
x86-musl-selinux)
|
||||
git clone ${ROOT_URL}/epkgs-x86-musl-selinux
|
||||
;;
|
||||
x86-glibc-selinux)
|
||||
git clone ${ROOT_URL}/epkgs-x86-glibc-selinux
|
||||
;;
|
||||
x86-glibc-systemd)
|
||||
git clone ${ROOT_URL}/epkgs-x86-glibc-systemd
|
||||
;;
|
||||
x86-musl-multilib)
|
||||
git clone ${ROOT_URL}/epkgs-x86-musl-multilib
|
||||
;;
|
||||
x86-glibc-multilib)
|
||||
git clone ${ROOT_URL}/epkgs-x86-glibc-multilib
|
||||
;;
|
||||
*)
|
||||
printf "[x] Invalid or incompatible profile chosen. See 'glacier-mkprofile -l' to see all available profiles.\n"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
50
src/bin/glacier-update-pkgdb
Executable file
50
src/bin/glacier-update-pkgdb
Executable file
@ -0,0 +1,50 @@
|
||||
#!/bin/bash
|
||||
|
||||
# glacier-update-pkgdb - update glacier package database
|
||||
# This file is part of Glacier.
|
||||
#
|
||||
# Copyright (C) 2023 Everest Linux
|
||||
#
|
||||
# Glacier is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Glacier is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Glacier. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
if [ -f "/etc/glacier/profile.conf" ]; then
|
||||
source /etc/glacier/profile.conf
|
||||
elif [ ! -f "/etc/glacier/profile.conf" ]; then
|
||||
printf "\033[1;31m[x]\033[m /etc/glacier/profile.conf does not exist.\n"
|
||||
exit 1
|
||||
fi
|
||||
ROOT_URL="https://git.everestlinux.org/EverestLinux"
|
||||
|
||||
update_pkgdb() {
|
||||
MV_TO_DB="cd /usr/glacier/epkgs"
|
||||
${MV_TO_DB}-${GLACIER_SYSTEM_PROFILE}
|
||||
if [ "$?" != 0 ]; then
|
||||
printf "\033[1;31m[x]\033[m Package database does not exist.\n"
|
||||
exit 1
|
||||
fi
|
||||
git pull
|
||||
if [ "$?" != 0 ]; then
|
||||
printf "\033[1;31m[x]\033[m Error while updating database.\n"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
print_info() {
|
||||
printf "\033[1;34m[i]\033[m Using profile settings:\n"
|
||||
printf "System profile: ${GLACIER_SYSTEM_PROFILE}\n"
|
||||
}
|
||||
|
||||
printf "\033[1;34m[i]\033[m Updating Glacier package database...\n"
|
||||
print_info "$@"
|
||||
update_pkgdb "$@"
|
29
src/bin/glacierg
Executable file
29
src/bin/glacierg
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
# glacierg - TUI for Glacier
|
||||
# This file is part of Glacier.
|
||||
#
|
||||
# Copyright (C) 2023 Everest Linux
|
||||
#
|
||||
# Glacier is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Glacier is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Glacier. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
if [ -f "/etc/glacier/call-hooks" ]; then
|
||||
source /etc/glacier/call-hooks
|
||||
elif [ ! -f "/etc/glacier/call-hooks" ]; then
|
||||
dialog --msgbox "/etc/glacier/call-hooks does not exist." 6 40
|
||||
printf "\e[2J\e[H"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
#!/bin/bash
|
||||
|
||||
# glist - list packages from a package index
|
||||
# This file is part of Glacier.
|
||||
|
73
src/bin/gpc
73
src/bin/gpc
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
#!/bin/bash
|
||||
|
||||
# gpc - Check integrity of Glacier packages
|
||||
# This file is part of Glacier.
|
||||
@ -19,6 +19,7 @@
|
||||
# along with Glacier. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
red="\033[1;31m"
|
||||
yellow="\033[1;33m"
|
||||
green="\033[1;32m"
|
||||
blue="\033[1;34m"
|
||||
reset="\033[m"
|
||||
@ -33,16 +34,16 @@ check_if_vars_exist() {
|
||||
VAR_FAILED=0
|
||||
|
||||
printf "${blue}[i]${reset} Checking variables...\n"
|
||||
sleep 0.5
|
||||
sleep 0.05
|
||||
|
||||
for m in ${MVARS[@]}; do
|
||||
if [ ! -v $m ]; then
|
||||
printf "${red}[x]${reset} Variable $m does not exist.\n"
|
||||
VAR_FAILED=$((VAR_FAILED+1))
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
elif [ -v $m ]; then
|
||||
printf "${green}[${check}]${reset} Variable $m exists.\n"
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
fi
|
||||
done
|
||||
|
||||
@ -50,10 +51,10 @@ check_if_vars_exist() {
|
||||
if [ ! -v $f ]; then
|
||||
printf "${red}[x]${reset} Variable $f does not exist.\n"
|
||||
VAR_FAILED=$((VAR_FAILED+1))
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
elif [ -v $f ]; then
|
||||
printf "${green}[${check}]${reset} Variable $f exists.\n"
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
fi
|
||||
done
|
||||
|
||||
@ -61,10 +62,10 @@ check_if_vars_exist() {
|
||||
if [ ! -v $i ]; then
|
||||
printf "${red}[x]${reset} Variable $i does not exist.\n"
|
||||
VAR_FAILED=$((VAR_FAILED+1))
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
elif [ -v $i ]; then
|
||||
printf "${green}[${check}]${reset} Variable $i exists.\n"
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
fi
|
||||
done
|
||||
|
||||
@ -72,10 +73,10 @@ check_if_vars_exist() {
|
||||
if [ ! -v $s ]; then
|
||||
printf "${red}[x]${reset} Variable $s does not exist.\n"
|
||||
VAR_FAILED=$((VAR_FAILED+1))
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
elif [ -v $s ]; then
|
||||
printf "${green}[${check}]${reset} Variable $s exists.\n"
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
fi
|
||||
done
|
||||
}
|
||||
@ -88,17 +89,17 @@ check_if_functions_exist() {
|
||||
FUNCTION_FAILED=0
|
||||
|
||||
printf "${blue}[i]${reset} Checking functions...\n"
|
||||
sleep 0.5
|
||||
sleep 0.05
|
||||
|
||||
for u in ${UNIFUNCTIONS[@]}; do
|
||||
declare -f -F $u > /dev/null
|
||||
if [ $? != 0 ]; then
|
||||
printf "${red}[x]${reset} Function $u does not exist.\n"
|
||||
FUNCTION_FAILED=$((FUNCTION_FAILED+1))
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
else
|
||||
printf "${green}[${check}]${reset} Function $u exists.\n"
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
fi
|
||||
done
|
||||
|
||||
@ -107,10 +108,10 @@ check_if_functions_exist() {
|
||||
if [ $? != 0 ]; then
|
||||
printf "${red}[x]${reset} Function $g does not exist.\n"
|
||||
FUNCTION_FAILED=$((FUNCTION_FAILED+1))
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
else
|
||||
printf "${green}[${check}]${reset} Function $g exists.\n"
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
fi
|
||||
done
|
||||
|
||||
@ -119,18 +120,49 @@ check_if_functions_exist() {
|
||||
if [ $? != 0 ]; then
|
||||
printf "${red}[x]${reset} Function $s does not exist.\n"
|
||||
FUNCTION_FAILED=$((FUNCTION_FAILED+1))
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
else
|
||||
printf "${green}[${check}]${reset} Function $s exists.\n"
|
||||
sleep 0.1
|
||||
sleep 0.02
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
check_syntax_errors() {
|
||||
ERRORS_GENERATED=0
|
||||
WARNINGS_GENERATED=0
|
||||
printf "${blue}[i]${reset} Checking syntax errors...\n"
|
||||
sleep 0.05
|
||||
if [ "${SHA256SUMS}" == "" ]; then
|
||||
printf "${yellow}[!]${reset} Warning @ variable 'SHA256SUMS'\n"
|
||||
printf "${yellow}[!]${reset} No checksum provided.\n"
|
||||
printf "${yellow}[!]${reset} This package will not work when integrity checking is on.\n"
|
||||
WARNINGS_GENERATED=$((WARNINGS_GENERATED+1))
|
||||
sleep 0.02
|
||||
fi
|
||||
|
||||
if [ "${PACKAGE_SRC}" == "" ]; then
|
||||
printf "${red}[x]${reset} error @ variable 'PACKAGE_SRC'\n"
|
||||
printf "${red}[x]${reset} No sources provided.\n"
|
||||
ERRORS_GENERATED=$((ERRORS_GENERATED+1))
|
||||
sleep 0.02
|
||||
fi
|
||||
|
||||
if [ ${ERRORS_GENERATED} == 0 ]; then
|
||||
printf "${green}[${check}]${reset} No errors to report.\n"
|
||||
fi
|
||||
|
||||
if [ ${WARNINGS_GENERATED} == 0 ]; then
|
||||
printf "${green}[${check}]${reset} No warnings to report.\n"
|
||||
fi
|
||||
}
|
||||
|
||||
results() {
|
||||
printf "${blue}[*]${reset} Results:\n"
|
||||
printf "Missing variables: $VAR_FAILED\n"
|
||||
printf "Missing functions: $FUNCTION_FAILED\n"
|
||||
printf "${blue}[*]${reset} Missing variables: $VAR_FAILED\n"
|
||||
printf "${blue}[*]${reset} Missing functions: $FUNCTION_FAILED\n"
|
||||
printf "${blue}[*]${reset} Warnings generated: $WARNINGS_GENERATED\n"
|
||||
printf "${blue}[*]${reset} Errors generated: $ERRORS_GENERATED\n"
|
||||
}
|
||||
|
||||
if [ "${1}" == "" ]; then
|
||||
@ -144,9 +176,8 @@ if [ ! -f "${1}" ]; then
|
||||
exit 1
|
||||
fi
|
||||
printf "${blue}[*]${reset} Sourcing package file...\n"
|
||||
sleep 0.5
|
||||
source $1
|
||||
printf "source ${1}\n"
|
||||
check_if_vars_exist "$@"
|
||||
check_if_functions_exist "$@"
|
||||
check_syntax_errors "$@"
|
||||
results "$@"
|
||||
|
70
src/bin/gpkg
70
src/bin/gpkg
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
#!/bin/bash
|
||||
|
||||
# gpkg - merge a package into the local package index
|
||||
# This file is part of Glacier.
|
||||
@ -71,16 +71,41 @@ check_if_input_is_blank() {
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
# Deprecated in favor of the new local index
|
||||
#dload_pkg() {
|
||||
# # Store all positional parameters ["${@}"] in an array [pkgs=()]
|
||||
# pkgs=("${@}")
|
||||
# # if no packages are specified, exit
|
||||
# printf "${blue}[i]${reset} Downloading package(s)...\n"
|
||||
# for i in ${pkgs[@]}; do
|
||||
# ${GLACIER_DOWNLOAD_BACKEND} ${GREPO}/${i}
|
||||
# if [ "$?" != "0" ]; then
|
||||
# printf "${red}[${error}]${reset} Could not find package.\n"
|
||||
# exit 1
|
||||
# fi
|
||||
# done
|
||||
#}
|
||||
|
||||
dload_pkg() {
|
||||
# Store all positional parameters ["${@}"] in an array [pkgs=()]
|
||||
pkgs=("${@}")
|
||||
# if no packages are specified, exit
|
||||
printf "${blue}[i]${reset} Downloading package(s)...\n"
|
||||
printf "${blue}[i]${reset} Retrieving package from local database...\n"
|
||||
for i in ${pkgs[@]}; do
|
||||
${GLACIER_DOWNLOAD_BACKEND} ${GREPO}/${i}
|
||||
if [ "$?" != "0" ]; then
|
||||
printf "${red}[${error}]${reset} Could not find package.\n"
|
||||
cp /usr/glacier/epkgs-${GLACIER_SYSTEM_PROFILE}/${i} /opt/glacier/workspace
|
||||
if [ "$?" != 0 ]; then
|
||||
printf "${red}[${error}]${reset} Error retrieving package ${i}.\n"
|
||||
clean_after_failed "$@"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
mv_pkgs() {
|
||||
pkgs=("${@}")
|
||||
printf "${blue}[i]${reset} Preparing package(s)...\n"
|
||||
for i in ${pkgs[@]}; do
|
||||
cp /usr/glacier/epkgs-${GLACIER_SYSTEM_PROFILE}/${i} /opt/glacier/workspace
|
||||
if [ "$?" != 0 ]; then
|
||||
printf "${red}[${error}]${reset} Error moving package.\n"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
@ -120,12 +145,41 @@ install_pkg() {
|
||||
done
|
||||
}
|
||||
|
||||
install_pkg_local() {
|
||||
pkgs=("${@}")
|
||||
if [ -f ${pkgs[@]} ]; then
|
||||
cp ${pkgs[@]} /opt/glacier/workspace
|
||||
else
|
||||
printf "${red}[${error}]${reset} Package does not exist.\n"
|
||||
exit 1
|
||||
fi
|
||||
for i in /opt/glacier/workspace; do
|
||||
source ${i}
|
||||
buildpkg
|
||||
installpkg
|
||||
done
|
||||
}
|
||||
|
||||
update_pkg() {
|
||||
pkgs=("${@}")
|
||||
if [ "${pkgs}" == "" ]; then
|
||||
update_system "$@"
|
||||
else
|
||||
for i in /opt/glacier/workspace/*; do
|
||||
source ${i}
|
||||
updatepkg
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
update_system() {
|
||||
cp /glacier/index/* /opt/glacier/workspace
|
||||
for i in /opt/glacier/workspace/*; do
|
||||
source ${i}
|
||||
source ${i}
|
||||
updatepkg
|
||||
done
|
||||
rm /glacier/index/*
|
||||
cp /opt/glacier/workspace/* /glacier/index
|
||||
}
|
||||
|
||||
remove_pkg() {
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
#!/bin/bash
|
||||
|
||||
# gquery - query a package's information
|
||||
# This file is part of Glacier.
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
#!/bin/bash
|
||||
|
||||
# syspkg - merge a package into the system package index
|
||||
# This file is part of Glacier.
|
||||
|
Loading…
Reference in New Issue
Block a user