aboutsummaryrefslogtreecommitdiff
path: root/for-group
diff options
context:
space:
mode:
Diffstat (limited to 'for-group')
-rwxr-xr-xfor-group69
1 files changed, 69 insertions, 0 deletions
diff --git a/for-group b/for-group
new file mode 100755
index 0000000..653c8d9
--- /dev/null
+++ b/for-group
@@ -0,0 +1,69 @@
+#! /bin/sh
+#
+# Running examples:
+#
+# $ ./for-group configure
+# $ ./for-group make [-jN]
+#
+# This is a wrapper for the configure and Make steps designed for a group
+# of users (sharing the same group name) using this pipeline on the same
+# build directory.
+#
+# When the configuration (normally done with `./configure') and build
+# (normally done with `.local/bin/make') steps are done with this with this
+# script, all the files that are created within the pipeline have these
+# properties:
+#
+# 1) Group owner will be a special group (value of `thisgroup' below).
+# 2) The permission flags give write access to the group members.
+#
+# Original author:
+# Mohammad Akhlaghi <mohammad@akhlaghi.org>
+# Contributing author(s):
+# Copyright (C) 2019, Mohammad Akhlaghi.
+#
+# This script 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 script 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.
+#
+# A copy of the GNU General Public License is available at
+# <http://www.gnu.org/licenses/>.
+
+
+
+
+
+# Desired group
+thisgroup=ourgroup
+
+
+
+
+
+# Script settings
+# ---------------
+# Stop the script if there are any errors.
+set -e
+
+
+
+
+
+# Set and run the respective command.
+if [ "x$1" = x ]; then
+ echo "$0: an argument is necessary ('configure' or 'make')"
+ exit 1
+elif [ "x$1" = xconfigure ]; then script="./configure"
+elif [ "x$1" = xmake ]; then script=".local/bin/make $2"
+else
+ echo "$0: argument must be 'configure' or 'make'"
+ exit 1
+fi
+echo; echo $script; echo
+sg $thisgroup "umask g+w && $script"