Compare commits

..

4 Commits

Author SHA1 Message Date
1b1e13ecb2 Add bootstrap-Windows.cmd
usage: bootstrap-Windows.cmd [/?]

Bootstrap a macOS instance with:

* Windows SDK - from MSDN
* Chocolatey - package manager
* Cmder, including Git - from Chocolatey
* Python - from Chocolatey
* virtualenv - from pip
* SSH key - from ssh-keygen
* GitHub public key - with SSH key
* GitLab public key - with SSH key
* BitBucket Cloud public key - with SSH key
* Gogs Cloud public key - with SSH key
* conduit - configuration manager

optional arguments:
        /?              show this help message and exit
2018-01-05 13:03:25 +00:00
dc10a4d9ac Add bootstrap-Debian.sh
usage: ./bootstrap-Debian.sh [-h] [-y]

Bootstrap a Debian based distribution with:

* update apt cache
* upgrade apt packages
* git - from apt
* python - from apt
* python-pip - from apt
* virtualenv - from pip
* SSH key - from ssh-keygen
* GitHub public key - with SSH key
* GitLab public key - with SSH key
* BitBucket Cloud public key - with SSH key
* Gogs Cloud public key - with SSH key
* conduit - configuration manager

If any already exist they will not be reinstalled.

optional arguments:
        -h              show this help message and exit
        -y              assume yes when prompted
2018-01-05 13:03:25 +00:00
b1294fdfdf Add bootstrap-macOS.sh
usage: bootstrap-macOS.sh [-h] [-y]

Bootstrap a macOS instance with:

* Xcode command line developer tools
* Homebrew - package manager
* python - from Homebrew
* virtualenv - from pip
* SSH key - from ssh-keygen
* GitHub public key - with SSH key
* GitLab public key - with SSH key
* BitBucket Cloud public key - with SSH key
* Gogs Cloud public key - with SSH key
* conduit - configuration manager

If any already exist they will not be reinstalled.

optional arguments:
        -h              show this help message and exit
        -y              assume yes when prompted
2018-01-05 13:03:25 +00:00
ed415a5c9c Add python package to setup SSH keys
Supports setting SSH keys for the following services:

* GitHub
* GitLab
* BitBucket Cloud
* Gogs
2018-01-05 13:03:21 +00:00
2 changed files with 22 additions and 9 deletions

View File

@ -58,7 +58,7 @@ del %~dp0\winsdksetup.exe
:: Install Chocolatey
:choco
set choice=
set /p choice="Install Chocolatey (Y/n)?"
set /p choice="Install Chocolatey (Y/n)? "
if "%choice%"=="" goto choco_yes
if "%choice%"=="Y" goto choco_yes
if "%choice%"=="y" goto choco_yes
@ -74,7 +74,7 @@ if errorlevel 1 exit /B 1
:: Install Cmder, including Git
:git
set choice=
set /p choice="Install Cmder, including Git (Y/n)?"
set /p choice="Install Cmder, including Git (Y/n)? "
if "%choice%"=="" goto git_yes
if "%choice%"=="Y" goto git_yes
if "%choice%"=="y" goto git_yes
@ -90,7 +90,7 @@ if errorlevel 1 exit /B 1
:: Install Python
:python
set choice=
set /p choice="Install Python (Y/n)?"
set /p choice="Install Python (Y/n)? "
if "%choice%"=="" goto python_yes
if "%choice%"=="Y" goto python_yes
if "%choice%"=="y" goto python_yes
@ -106,7 +106,7 @@ if errorlevel 1 exit /B 1
:: Install virtualenv
:virtualenv
set choice=
set /p choice="Install virtualenv (Y/n)?"
set /p choice="Install virtualenv (Y/n)? "
if "%choice%"=="" goto virtualenv_yes
if "%choice%"=="Y" goto virtualenv_yes
if "%choice%"=="y" goto virtualenv_yes
@ -122,7 +122,7 @@ if errorlevel 1 exit /B 1
:: Generate SSH key
:ssh_key
set choice=
set /p choice="Generate SSH key (Y/n)?"
set /p choice="Generate SSH key (Y/n)? "
if "%choice%"=="" goto ssh_key_yes
if "%choice%"=="Y" goto ssh_key_yes
if "%choice%"=="y" goto ssh_key_yes
@ -142,7 +142,7 @@ if errorlevel 1 exit /B 1
:: Add git to the PATH to pip can find it
set PATH=C:\tools\cmder\vendor\git-for-windows\bin;%PATH%
set choice=
set /p choice="Set SSH keys on remote Git servers (Y/n)?"
set /p choice="Set SSH keys on remote Git servers (Y/n)? "
if "%choice%"=="" goto remote_ssh_keys_yes
if "%choice%"=="Y" goto remote_ssh_keys_yes
if "%choice%"=="y" goto remote_ssh_keys_yes
@ -157,10 +157,23 @@ if errorlevel 1 exit /B 1
if errorlevel 1 exit /B 1
"%~dp0\bootstrap_env\Scripts\python.exe" -c "import bootstrap; bootstrap.set_ssh_keys()"
if errorlevel 1 exit /B 1
:remote_ssh_keys_no
:remove_bootstrap
set choice=
set /p choice="Remove bootstrap-Windows.cmd (y/N)? "
if "%choice%"=="" goto remove_bootstrap_no
if "%choice%"=="Y" goto remove_bootstrap_yes
if "%choice%"=="y" goto remove_bootstrap_yes
if "%choice%"=="N" goto remove_bootstrap_no
if "%choice%"=="n" goto remove_bootstrap_no
echo invalid value: %choice%
goto remove_bootstrap
:remove_bootstrap_yes
rmdir /Q /S "%~dp0\bootstrap_env"
echo "Completed: %0 will now be removed"
start /b "" cmd /c del "%~f0"&exit /b
:remote_ssh_keys_no
:remove_bootstrap_no
:end
endlocal

View File

@ -5,6 +5,7 @@ from getpass import getpass
from os import environ
from os.path import join
from platform import node, system
from requests import ConnectionError, get, post
from requests.auth import HTTPBasicAuth
from requests.compat import urlparse
@ -126,10 +127,9 @@ def set_gitlab_ssh_key():
def set_bitbucket_cloud_ssh_key():
"""Set BitBucket Cloud SSH key."""
api_url = 'https://api.bitbucket.org/1.0'
username, password = get_username_password('BitBucket Cloud')
keys_url = 'https://api.bitbucket.org/1.0/users/%s/ssh-keys' % username
auth = HTTPBasicAuth(username, password)
keys_url = '%s/users/%s/ssh-keys' % (api_url, username)
response = get(keys_url, auth=auth)
if response.status_code != 200:
raise bootstrap_error(response)