#!/bin/bash set -e MIRROR="https://packages.0xinfinity.dev" if [ -z "${FS_ROOT}" ] then FS_ROOT="/" fi if [[ "${FS_ROOT}" == "/" ]]; then if [[ "$(whoami)" != "root" ]]; then echo -e "You must run '${0}' as root." exit 1 fi fi if [ -z "${TMP_DIR}" ] then TMP_DIR="/tmp" fi mkdir -p "${TMP_DIR}/downloads" if [ -z "${IBPS_DB}" ] then IBPS_DB="${FS_ROOT}/var/ibps/" fi mkdir -p "${IBPS_DB}" function download_from_mirror { file="$1" version="$2" build_no="$3" curl --output-dir="$TMP_DIR/downloads" "${MIRROR}/${file}/${file}-${version}-${build_no}.ibps" -O echo "Downloaded ${file}:${version}:${build_no}" } function extract { file="$1" currdir="$(pwd)" mkdir -p "${TMP_DIR}/${file}" cp "${TMP_DIR}/downloads/${file}.ibps" "${TMP_DIR}/${file}" cd "${TMP_DIR}/${file}" tar -xf "${file}.ibps" rm "${file}.ibps" cd "${currdir}" } ## Temporarily broken for testing purposes function get_latest_version { local file="$1" echo -e "$resp" echo -e "VERSION SPEC:" echo -e "$version" echo -e "BUILD SPEC:" echo -e "$build_no" } if [ $# -eq 0 ] then echo -e "You must supply a package name!" echo -e "Example:" echo -e " $0 vim" fi PKG_NAME=$1 resp=$(curl "${MIRROR}/${PKG_NAME}/" -o -) if [[ "$(echo "$resp" | grep "^404 Not Found")" == "404 Not Found" ]]; then echo -e "Package '${PKG_NAME}' does not exist on mirror!" exit 1 fi VERSION=$(echo "$resp" | grep "^ "${IBPS_DB}/${PKG_NAME}/desc" echo "version=${version}" >> "${IBPS_DB}/${PKG_NAME}/desc" echo "build_no=${build_no}" >> "${IBPS_DB}/${PKG_NAME}/desc" echo "depends=${depends}" >> "${IBPS_DB}/${PKG_NAME}/desc" for i in $(ls "${TMP_DIR}/${DWNLD_PKG_NAME}/${DWNLD_PKG_NAME}/"); do cp -r "${TMP_DIR}/${DWNLD_PKG_NAME}/${DWNLD_PKG_NAME}/${i}" "${FS_ROOT}/" echo "Copying ${i} to ${FS_ROOT}" done if [ "$(type -t post_install)" = "function" ]; then post_install fi echo "Installed ${PKG_NAME} with version ${VERSION}."