#! /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 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 # Contributing author(s): # Your name # 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 # . # 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"