mtsc/mp-build/scripts/mp-new.sh

109 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# mp-new | MatterLinux package creation script
# MatterLinux 2023-2024 (https://matterlinux.xyz)
# This program 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.
# This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
#############################
## import common functions ##
#############################
location="$(dirname "${0}")"
location="$(realpath "${location}")"
commonsh="$(echo "${location}" | sed 's/\/bin/\/lib/g')/mtsc-common.sh"
source "${commonsh}"
if [ "${?}" != "0" ]; then
echo "Failed to import mtsc-common"
exit 1
fi
#################
## main script ##
#################
if [ -z "$1" ]; then
error "Please specify a package"
exit 1
fi
pkg=$(basename "${1}")
target=$(dirname "${1}")
case "${1}" in
*_*)
name=$(echo "${pkg}" | cut -d "_" -f1)
version=$(echo "${pkg}" | cut -d "_" -f2)
;;
*)
warn "Package version is not specified, using \"1\" as version instead"
name="${pkg}"
version="1"
;;
esac
if [ -d "${target}/${name}" ]; then
error "There is already a directory for \"${target}/${name}\""
exit 1
fi
info "Creating directory for \"${name}\""
mkdir "${target}/${name}"
check_ret "Failed to create package directory for \"${name}\""
cd "${target}/${name}"
cat > pkg.sh << EOF
# general info
NAME="${name}"
DESC=""
VERSION="${version}"
# required files
FILES=()
HASHES=()
# install and build depends
DEPENDS=()
BUILD=()
PACKAGE(){
tar xf "\${NAME}-\${VERSION}.tar.gz"
cd "\${NAME}-\${VERSION}"
# build commands
cd .. && rm -r "\${NAME}-\${VERSION}"
}
INSTALL(){
# install script
# remove if not requied
}
EOF
cat > changes.md << EOF
# ${version}
First version
EOF
cat > .gitignore << EOF
.cache/
dist/
root/
EOF
success "Created package directory and files for \"${name}\""