first commit
This commit is contained in:
parent
765a1bc5be
commit
d3ba30648e
72
autoinit
Executable file
72
autoinit
Executable file
@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z $GOGS_ROOT_URL ]
|
||||
then
|
||||
printf "Need to set GOGS_ROOT_URL environment variable\n" >&2
|
||||
printf "\tIE: https://git.cynarski.pl\n" >&2
|
||||
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z $GOGS_TOKEN ]
|
||||
then
|
||||
printf "Need to set GOGS_TOKEN environment variable\n" >&2
|
||||
printf "\tThis can be obtained at $GOGS_ROOT_URL/user/settings/applications\n" >&2
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z $GOGS_USER ]
|
||||
then
|
||||
printf "Need to set GOGS_USER environment variable\n" >&2
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -z $GOGS_REPO ]
|
||||
then
|
||||
printf "Need to set GOGS_REPO environment variable\n" >&2
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -f $HOME/.ssh/gogs.pub ]; then
|
||||
printf "Gogs deploy key is present\n" >&2
|
||||
else
|
||||
mkdir -p $HOME/.ssh/
|
||||
ssh-keygen -f $HOME/.ssh/gogs -t rsa -N ''
|
||||
fi
|
||||
|
||||
prefix="https://"
|
||||
sshhost=${GOGS_ROOT_URL#$prefix}
|
||||
|
||||
sbody=$(cat <<-END
|
||||
|
||||
Host $sshhost
|
||||
IdentityFile ~/.ssh/gogs.pub
|
||||
|
||||
END
|
||||
)
|
||||
|
||||
if [ -f $HOME/.ssh/$GOGS_REPO-sended ]; then
|
||||
printf "Key sended\n" >&2
|
||||
else
|
||||
printf "Prepare to send key\n" >&2
|
||||
title=$(hostname)@$(whoami)
|
||||
printf "title $title\n" >&2
|
||||
deploykey=$(cat $HOME/.ssh/gogs.pub)
|
||||
body=$(cat <<-END
|
||||
{
|
||||
"title": "$title",
|
||||
"key": "$deploykey"
|
||||
}
|
||||
END
|
||||
)
|
||||
prefix="https://"
|
||||
sshhost=${GOGS_ROOT_URL#$prefix}
|
||||
|
||||
curl -H "Content-Type: application/json" \
|
||||
-H "Authorization: token $GOGS_TOKEN" \
|
||||
-d "$body" \
|
||||
$GOGS_ROOT_URL/api/v1/repos/$GOGS_USER/$GOGS_REPO/keys > /dev/null
|
||||
touch $HOME/.ssh/$GOGS_REPO-sended
|
||||
echo "$sbody" >> $HOME/.ssh/config
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user