#!/bin/bash
#
# openssh - scheme
#
# Copyright 20209 Luigi Santivetti <luigi.santivetti@gmail.com>

# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:

# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

# https://github.com/linuxserver/docker-openssh-server
declare -r dockerfile_t="\
FROM linuxserver/openssh-server:latest AS base
RUN \\
 echo \"**** upgrade runtime packages ****\" && \\
 apk -U upgrade \\
 echo \"**** install runtime packages: git ****\" && \\
 apk add --no-cache --upgrade git && \\
 echo \"**** install runtime packages: make ****\" && \\
 apk add --no-cache --upgrade make && \\
 echo \"**** install runtime packages: rsync ****\" && \\
 apk add --no-cache --upgrade rsync && \\
 echo \"**** install runtime packages: ffmpeg ****\" && \\
 apk add --no-cache --upgrade ffmpeg && \\
 echo \"**** install runtime packages: python3 ****\" && \\
 apk add --no-cache --upgrade python3 && \\
 echo \"**** install runtime packages: pip3 ****\" && \\
 apk add --no-cache --upgrade py3-pip && \\
 echo \"**** install runtime packages: virtualenv ****\" && \\
 apk add --no-cache --upgrade py3-virtualenv && \\
 echo \"**** install runtime packages: build-base ****\" && \\
 apk add --no-cache --upgrade build-base && \\
 echo \"**** install runtime packages: python3-dev ****\" && \\
 apk add --no-cache --upgrade python3-dev && \\
 echo \"**** install runtime packages: jpeg-dev ****\" && \\
 apk add --no-cache --upgrade jpeg-dev && \\
 echo \"**** install runtime packages: zlib-dev ****\" && \\
 apk add --no-cache --upgrade zlib-dev

RUN sed -i \"s%#PubkeyAuthentication yes%PubkeyAuthentication yes%g\" /etc/ssh/sshd_config"
