From 9f592d1a57c8ef584d3b6fab01948b60787e5da2 Mon Sep 17 00:00:00 2001 From: Adam Coldrick Date: Mon, 24 Mar 2014 10:23:46 +0000 Subject: Add a script to create the releases repository Add a script that will create a `site` project containing the releases repository when run. It will be run on boot by a systemd unit. --- share/releases-repo-migration.sh | 117 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100755 share/releases-repo-migration.sh diff --git a/share/releases-repo-migration.sh b/share/releases-repo-migration.sh new file mode 100755 index 0000000..66a02b2 --- /dev/null +++ b/share/releases-repo-migration.sh @@ -0,0 +1,117 @@ +#!/bin/bash + +function create_readers_group() +{ + set +e + ( + set -e + ssh localhost group add site-readers \ + 'Users with read access to the site project' + ) + local ret="$?" + if [ "$ret" != 0 ]; then + token=$(ssh localhost group del site-readers 2>&1 | tail -1 | \ + cut -d' ' -f 2) + ssh localhost group del site-readers $token + fi + return $ret +} + +function create_writers_group() +{ + set +e + ( + set -e + ssh localhost group add site-writers \ + 'Users with write access to the site project' + readers_group + ) + local ret="$?" + if [ "$ret" != 0 ]; then + token=$(ssh localhost group del site-writers 2>&1 | tail -1 | \ + cut -d' ' -f 2) + ssh localhost group del site-writers $token + fi + return $ret +} + +function create_admins_group() +{ + set +e + ( + set -e + ssh localhost group add site-admins \ + 'Users with admin access to the site project' + writers_group + ) + local ret="$?" + if [ "$ret" != 0 ]; then + token=$(ssh localhost group del site-admins 2>&1 | tail -1 | \ + cut -d' ' -f 2) + ssh localhost group del site-admins $token + fi + return $ret +} + +function create_managers_group() +{ + set +e + ( + set -e + ssh localhost group add site-managers \ + 'Users with manager access to the site project' + admins_group + ) + local ret="$?" + if [ "$ret" != 0 ]; then + token=$(ssh localhost group del site-managers 2>&1 | tail -1 | \ + cut -d' ' -f 2) + ssh localhost group del site-managers $token + fi + return $ret +} + +function link_groups() +{ + set -e + ssh localhost group addgroup site-admins site-managers + ssh localhost group addgroup site-writers site-admins + ssh localhost group addgroup site-readers site-writers +} + +function delete_groups() +{ + token=$(ssh localhost group del site-managers 2>&1 | tail -1 | \ + cut -d' ' -f 2) + ssh localhost group del site-managers $token + token=$(ssh localhost group del site-admins 2>&1 | tail -1 | \ + cut -d' ' -f 2) + ssh localhost group del site-admins $token + token=$(ssh localhost group del site-writers 2>&1 | tail -1 | \ + cut -d' ' -f 2) + ssh localhost group del site-writers $token + token=$(ssh localhost group del site-readers 2>&1 | tail -1 | \ + cut -d' ' -f 2) + ssh localhost group del site-readers $token +} + +function create_groups() +{ + # call managers_group which calls admin_group and so on... + managers_group + set +e + ( + set -e + link_groups + ) + local ret="$?" + if [ "$ret" != 0 ]; then + delete_groups + fi +} + +site_groups=$(ssh localhost group list | grep -cE "site-[[:alnum:]]+") +if [ "$site_groups"== 0 ]; then + create_groups +fi +ssh localhost create "##PREFIX##/site/releases" -- cgit v1.2.1