aboutsummaryrefslogtreecommitdiff
path: root/for-group
diff options
context:
space:
mode:
Diffstat (limited to 'for-group')
-rwxr-xr-xfor-group114
1 files changed, 0 insertions, 114 deletions
diff --git a/for-group b/for-group
deleted file mode 100755
index e5c55f9..0000000
--- a/for-group
+++ /dev/null
@@ -1,114 +0,0 @@
-#! /bin/bash
-#
-# Running examples:
-#
-# $ ./for-group group_name configure [OPTIONS]
-# $ ./for-group group_name make [OPTIONS]
-#
-# This is a wrapper for the configure and Make steps designed for a group
-# of users (sharing the same group name) working on the project in 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 project will have these
-# properties:
-#
-# 1) Group owner will be the group specified in the command-line.
-# 2) The permission flags give write access to the group members.
-#
-# Copyright (C) 2019, Mohammad Akhlaghi <mohammad@akhlaghi.org>
-#
-# 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/>.
-
-
-
-
-
-# Script settings
-# ---------------
-# Stop the script if there are any errors.
-set -e
-
-
-
-
-
-# See if any argument are given at all.
-if [ "x$1" = x ]; then
- echo "$0: At least two arguments are necessary:"
- echo
- echo " To configure: $ ./for-group group_name configure"
- echo " To build: $ ./for-group group_name make"
- exit 1
-fi
-
-
-
-
-
-# Prepare any other argument to pass onto the `./configure' or `make'
-# commands. `$@' is the list of command-line tokens given to the this
-# (`./for-group') script. Therefore, the first token in it is the group
-# name and the second is the script name. As a result, we want anything
-# after the third token.
-options=$(echo "$@" | awk '{for(i=3;i<=NF;++i) printf("%s ", $i)}')
-
-
-
-
-
-# Make sure the given group is usable.
-if sg "$1" "echo test &> /dev/null" &> /dev/null; then
- if [ "x$2" = xconfigure ]; then script="./configure"
- elif [ "x$2" = xmake ]; then script=".local/bin/make"
- else
- echo "$0: a third argument is necessary."
- echo "It specifies the action: either 'configure' or 'make'"
- exit 1
- fi
-else
- echo "$0: '$1' is not a usable group name on this system.";
- echo "TIP: you can use the 'groups' command to see your groups."
- exit 1
-fi
-
-
-
-
-
-# Define the group, and set the permission so the user and group both have
-# read and write permissions. Then run the respective script.
-#
-# We are also exporting a special variable so `./configure' and Make can
-# prepare for sanity checks and avoid re-doing the whole analysis with a
-# typo (not using this script properly after configuration).
-export reproducible_paper_group_name="$1"
-sg "$1" "umask u+r,u+w,g+r,g+w,o-r,o-w,o-x && $script $options"
-
-
-
-
-
-# Group writing permissions for dependencies directory
-#
-# The common build process sets the writing permissions of the installed
-# programs/libraries to `755'. So group members can't write over a
-# file. This creates problems when another group member wants to update the
-# software for example. We thus need to manually add the group writing flag
-# to all installed software files.
-if [ "x$2" = xconfigure ]; then
- echo "Enabling group writing permission on all installed software..."
- .local/bin/chmod -R g+w .local/;
-fi