1
0

🏗️」 wip: FTP should be working but f*ck it let's drink beers

This commit is contained in:
2025-03-02 18:22:11 +01:00
parent d82f107bd6
commit 2673f6ef0b
9 changed files with 173 additions and 60 deletions

View File

@ -1,21 +1,56 @@
package main
import (
"bytes"
"os"
"fmt"
"log"
"os/exec"
"git.keyzox.me/42_adjoly/inception/internal/cmd"
"git.keyzox.me/42_adjoly/inception/internal/env"
_log "git.keyzox.me/42_adjoly/inception/internal/log"
)
func configFtp() {
_log.Log("note", "Configuring VSFTPD...")
ftpUser := env.FileEnv("FTP_USER", "ftp")
ftpPass := env.FileEnv("FTP_PASS", "ftppass")
cmd.ExecCmd([]string{"adduser", ftpUser, "--disabled-password"})
var stdin bytes.Buffer
stdin.WriteString(fmt.Sprintf("%s:%s", ftpUser, ftpPass))
cmd := exec.Command("/usr/sbin/chpasswd")
cmd.Stdin = &stdin
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
_, err = os.Create("/etc/vsftpd.check")
if err != nil {
log.Fatal("could not create check file :O")
}
os.WriteFile("/etc/vsftpd/vsftpd.userlist", []byte(ftpUser), 0766)
_log.Log("note", "VSFTPD configured ;D")
}
func main() {
args := os.Args
if args[1] == "vsftpd" {
_log.Log("note", "Entrypoint script for VSFTPD Server started")
_, err := os.ReadFile("/etc/vsftpd.check")
if err != nil {
configFtp()
} else {
_log.Log("note", "VSFTPD already configured, skipping...")
}
dir, err := os.ReadDir("/docker-entrypoint.d")
if err != nil {
log.Fatal(err)
@ -40,8 +75,7 @@ func main() {
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
if err := cmd.Run(); err != nil {
fmt.Printf("Error running NGINX: %v\n", err)
fmt.Printf("Error running VSFTPD: %v\n", err)
os.Exit(1)
}
}