diff --git a/make/projects-dir.mk b/make/projects-dir.mk index b6173311..9a7d3be8 100644 --- a/make/projects-dir.mk +++ b/make/projects-dir.mk @@ -51,15 +51,15 @@ endif # ------------ commands -MOD_SCRIPT_DIR = ./jw-build/scripts -PGIT = CLONE_PROJECTS="$(PROJECTS)" /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/pgit.sh /opt/jw-build/bin/pgit.sh) pgit.sh-not-found) -BUILD_PY = python $(MOD_SCRIPT_DIR)/build.py -b $(shell pwd) $(BUILD_PY_EXTRA_ARGS) -PURGE_SH = /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/purge-stale-projects.sh /opt/jw-build/bin/purge-stale-projects.sh) purge-not-found) -RELEASE_SH = /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/build-release.sh /opt/jw-build/bin/build-release.sh) release-not-found) -BROWSER ?= firefox -GIT_SRV_ADMIN = JW_BUILD_SSH_EXTRA_OPTS="$(JW_BUILD_SSH_EXTRA_OPTS)" $(GIT_SSH) $(JANWARE_USER)@git.jannet.de /opt/jw-build/bin/git-srv-admin.sh -CVS_ADMIN = JW_BUILD_SSH_EXTRA_OPTS="$(JW_BUILD_SSH_EXTRA_OPTS)" $(GIT_SSH) $(JANWARE_USER)@git.jannet.de /opt/jw-build/bin/cvs-admin.sh - +MOD_SCRIPT_DIR = ./jw-build/scripts +PGIT = CLONE_PROJECTS="$(PROJECTS)" /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/pgit.sh /opt/jw-build/bin/pgit.sh) pgit.sh-not-found) +BUILD_PY = python $(MOD_SCRIPT_DIR)/build.py -b $(shell pwd) $(BUILD_PY_EXTRA_ARGS) +PURGE_SH = /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/purge-stale-projects.sh /opt/jw-build/bin/purge-stale-projects.sh) purge-not-found) +RELEASE_SH = /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/build-release.sh /opt/jw-build/bin/build-release.sh) release-not-found) +PKG_MANAGER_SH ?= /bin/bash $(firstword $(wildcard $(MOD_SCRIPT_DIR)/pkg-manager.sh /opt/jw-build/bin/pkg-manager.sh) pkg-manager-not-found) +BROWSER ?= firefox +GIT_SRV_ADMIN = JW_BUILD_SSH_EXTRA_OPTS="$(JW_BUILD_SSH_EXTRA_OPTS)" $(GIT_SSH) $(JANWARE_USER)@git.jannet.de /opt/jw-build/bin/git-srv-admin.sh +CVS_ADMIN = JW_BUILD_SSH_EXTRA_OPTS="$(JW_BUILD_SSH_EXTRA_OPTS)" $(GIT_SSH) $(JANWARE_USER)@git.jannet.de /opt/jw-build/bin/cvs-admin.sh # ------------ targets all: pull.done @@ -76,11 +76,14 @@ clean-dirs: ls */dirs-all.done 2>/dev/null | sed 's%/.*%%' | xargs -r $(BUILD_PY) clean echo-prereq-build: - @make pull.done >/dev/null 2>&1 + @make --no-print-directory pull.done >/dev/null 2>&1 @python $(MOD_SCRIPT_DIR)/projects.py $(PROJECTS_PY_EXTRA_ARGS) required-pkg $(BUILD_PROJECTS) +install-prereq-build: + make --no-print-directory echo-prereq-build 2>/dev/null | xargs -r $(PKG_MANAGER_SH) install + echo-prereq-release: - @make pull.done >/dev/null 2>&1 + @make --no-print-directory pull.done >/dev/null 2>&1 @python $(MOD_SCRIPT_DIR)/projects.py $(PROJECTS_PY_EXTRA_ARGS) required-pkg --flavour release $(BUILD_PROJECTS) doc-project doc-module: diff --git a/scripts/pkg-manager.sh b/scripts/pkg-manager.sh new file mode 100644 index 00000000..bd29af96 --- /dev/null +++ b/scripts/pkg-manager.sh @@ -0,0 +1,53 @@ +#!/bin/sh + +log() +{ + echo $@ >&2 +} + +err() +{ + echo $@ >&2 +} + +fatal() +{ + err "Giving up: $@" + exit 1 +} + +usage() +{ + cat<<-EOT + $myname cmd args + EOT +} + +run() +{ + log "Running ==== $@" + eval sudo "$@" +} + +cmd_install() +{ + case $ID in + opensuse|suse) + eval run zypper in "$@" + ;; + debian) + eval run apt-get install "$@" + ;; + *) + fatal "Tried to install to unsupported platform \"$ID\"" + ;; + esac +} + +# -- here we go +myname=`basename $0` +. /etc/os-release +cmd="$1" +shift +eval cmd_$cmd "$@" +