From a10a0e7043b0d14df99a31ca54a9709406391b43 Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Mon, 1 Aug 2016 14:00:10 -0300 Subject: Add git_checkout.sh and common.subr This is the first of a set commits to start replacing big builder_common.sh by smaller and specific scripts to do necessary build tasks. First is git_checkout.sh, a script used to checkout or update a git repository on desired destination dir and branch or tag. --- build/scripts/common.subr | 65 ++++++++++++++++++++++++++ build/scripts/git_checkout.sh | 106 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 build/scripts/common.subr create mode 100755 build/scripts/git_checkout.sh (limited to 'build') diff --git a/build/scripts/common.subr b/build/scripts/common.subr new file mode 100644 index 0000000..3ceb468 --- /dev/null +++ b/build/scripts/common.subr @@ -0,0 +1,65 @@ +# +# ex: filetype=sh +# +# common.subr +# +# part of pfSense (https://www.pfsense.org) +# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Obtained from poudriere common.sh +eargs() { + local fname="$1" + shift + case $# in + 0) err "${fname}: No arguments expected" ;; + 1) err "${fname}: 1 argument expected: $1" ;; + *) err "${fname}: $# arguments expected: $*" ;; + esac +} + +err() { + [ $# -eq 1 ] || eargs err msg + local msg="$1" + + echo >&2 "====>> ERROR: $msg" + exit 1 +} + +run() { + [ $# -eq 2 ] || eargs run msg cmd + local msg="$1" + local cmd="$2" + + echo "====>> ${msg}" + ${cmd} 2>&1 + rc=$? + [ $rc -ne 0 ] \ + && err "Execution of '${cmd}' failed (rc = ${rc})" +} + +force_rm() { + [ $# -eq 1 ] || eargs force_rm directory + local directory="$1" + + [ "${directory}" = "/" ] \ + && err "Removing / is not a good idea" + + run "Removing immutable flags from ${directory}" \ + "chflags -R noschg ${directory}" + + run "Removing recursively ${directory}" \ + "rm -rf ${directory}" +} diff --git a/build/scripts/git_checkout.sh b/build/scripts/git_checkout.sh new file mode 100755 index 0000000..10c43ce --- /dev/null +++ b/build/scripts/git_checkout.sh @@ -0,0 +1,106 @@ +#!/bin/sh +# +# git_checkout.sh +# +# part of pfSense (https://www.pfsense.org) +# Copyright (c) 2004-2016 Electric Sheep Fencing, LLC +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin + +scripts_path=$(dirname $(realpath $0)) + +if [ ! -f "${scripts_path}/common.subr" ]; then + echo >&2 "ERROR: common.subr is missing" + exit 1 +fi + +. ${scripts_path}/common.subr + +usage() { + cat >&2 <