warbo-utilities: 55cbd40bae38f5ef7b92fb43ecef0761348a1db6

     1: #!/usr/bin/env bash
     2: 
     3: (cd /opt/repos || exit 1
     4:  echo "Make sure each repo in /opt/repos is linked in /opt/git/" 1>&2
     5:  for repo in *.git
     6:  do
     7:      name=$(basename "$repo")
     8:      if [ ! -h "/opt/git/$name" ]
     9:      then
    10:          (cd /opt/git &&
    11:           ln -s "/opt/repos/$name" "$name")
    12:      fi
    13:  done
    14: 
    15:  echo "Make sure each repo has been initialised" 1>&2
    16:  for repo in *.git
    17:  do
    18:      (cd "$repo" &&
    19:       git init --bare)
    20:  done
    21: 
    22:  echo "Make sure our repos are not mirrors"
    23:  for repo in *.git
    24:  do
    25:      pushd "$repo" > /dev/null || exit 1
    26:      git remote | while read -r REMOTE
    27:      do
    28:          echo "Removing '$repo' remote '$REMOTE'" 1>&2
    29:          git remote rm "$REMOTE"
    30:      done
    31:      popd > /dev/null || exit 1
    32:  done
    33: 
    34:  echo "Make sure each repo has its hooks in place" 1>&2
    35:  for repo in *.git
    36:  do
    37:      name=$(basename "$repo")
    38:      (cd "$repo/hooks" || exit 1
    39:       DEST="../../post-receive.hook"
    40:       for hook in post-receive post-update
    41:       do
    42:           if [ -e "$hook" ]
    43:           then
    44:               if [ -h "$hook" ]
    45:               then
    46:                   H=$(readlink -f "$hook")
    47:                   F=$(readlink -f "$DEST")
    48:                   [[ "$H" = "$F" ]] || {
    49:                       echo "File '$H' should be symlink to '$DEST'" 1>&2
    50:                   }
    51:               else
    52:                   echo "File '$PWD/$hook' should be symlink but isn't" 1>&2
    53:               fi
    54:           else
    55:               # Use post-receive.hook for both
    56:               ln -s "$DEST" "$hook"
    57:           fi
    58:       done)
    59:  done
    60: 
    61:  echo "Run the post-receive hook to ensure changes are served" 1>&2
    62:  for repo in *.git
    63:  do
    64:      (cd "$repo" || exit 1
    65:       echo "$PWD"
    66:       sh hooks/post-receive)
    67:  done
    68: 
    69:  echo "Make sure HTML pages exist" 1>&2
    70:  for repo in *.git
    71:  do
    72:      NAME=$(basename "$repo" .git)
    73:      HTML="/opt/html/$NAME"
    74:      [[ -e "$HTML/index.html" ]] || echo "No HTML pages '$HTML'" 1>&2
    75:  done
    76: 
    77:  for html in /opt/html/*
    78:  do
    79:      NAME=$(basename "$html")
    80:      REPO="/opt/repos/$NAME.git"
    81:      [[ -e "$REPO" ]] || echo "Found '$html' but not '$REPO'" 1>&2
    82:  done)

Generated by git2html.