#!/bin/sh # adc for someone with admin privs to invoke "expand" on other users. # This doc block as "WHY", "HOW", and "CAVEATS" sections; I mention that only # for those people with very small xterms who may miss the CAVEATS section # otherwise...! # WHY # === # ...because info has it, and expand doesn't :-) # (Possible question: Why not add that capability to expand instead to be # consistent? Probable answer: how about we go the other way and make # "info" also work like this, and remove that code from core? I like # having less less code in core!) # HOW # === # ssh gitolite su-expand . user1 user2 user3 # note that the first argument is still treated as a "pattern", so at # least put in a "." for a catch-all pattern. Also see caveats for # patterns below. # This will output the same thing as "ssh git@server expand ." performed # by the individual users # CAVEATS # ======= # (1) LIMITS TO THE PATTERN # Due to this being an ADC, and ADC arguments being very, Very, VERY, # stricly limited, you won't be able to use any regex meta characters # expect ".". I'll worry about changing it if enough people complain. # (2) NAME OF THIS SCRIPT # please name this script something other than "expand", because we can't # have name clashes between internal commands (info, expand, # (get|set)(perms|desc), etc) and admin-defined (external) commands. I'm # calling it su-expand; feel free to change it. . $(dirname $0)/adc.common-functions get_rights_and_owner gitolite-admin [ -z "$perm_write" ] && die "just *what* are you trying to pull here, $GL_USER?" pat="$1"; shift for user do SSH_ORIGINAL_COMMAND="expand $pat" $GL_BINDIR/gl-auth-command $user done