Compare commits

..

No commits in common. "62e75eaea8cb740ae774d7ddad7242b44599ef60" and "5552e6d2ebcf1a35eaa696a1c1e13d52d1f376af" have entirely different histories.

6 changed files with 52 additions and 45 deletions

View File

@ -158,10 +158,6 @@ func (c *Config) setupConfig(cliConfig *Config) error {
if cliConfig.AESKeyFile != defaultConfig.AESKeyFile { if cliConfig.AESKeyFile != defaultConfig.AESKeyFile {
c.AESKeyFile = cliConfig.AESKeyFile c.AESKeyFile = cliConfig.AESKeyFile
} }
c.AESKeyFile, err = filepath.Abs(c.AESKeyFile)
if err != nil {
return fmt.Errorf("error setting absolute filepath for AESKeyFile: %v", err)
}
c.AESKeyFile, err = mkFile(c.AESKeyFile, 0600, 0700) c.AESKeyFile, err = mkFile(c.AESKeyFile, 0600, 0700)
if err != nil { if err != nil {
return fmt.Errorf("error setting up file: %v", err) return fmt.Errorf("error setting up file: %v", err)
@ -170,10 +166,6 @@ func (c *Config) setupConfig(cliConfig *Config) error {
if cliConfig.ArticleDir != defaultConfig.ArticleDir { if cliConfig.ArticleDir != defaultConfig.ArticleDir {
c.ArticleDir = cliConfig.ArticleDir c.ArticleDir = cliConfig.ArticleDir
} }
c.ArticleDir, err = filepath.Abs(c.ArticleDir)
if err != nil {
return fmt.Errorf("error setting absolute filepath for ArticleDir: %v", err)
}
c.ArticleDir, err = mkDir(c.ArticleDir, 0700) c.ArticleDir, err = mkDir(c.ArticleDir, 0700)
if err != nil { if err != nil {
return fmt.Errorf("error setting up directory: %v", err) return fmt.Errorf("error setting up directory: %v", err)
@ -182,10 +174,6 @@ func (c *Config) setupConfig(cliConfig *Config) error {
if cliConfig.AtomFile != defaultConfig.AtomFile { if cliConfig.AtomFile != defaultConfig.AtomFile {
c.AtomFile = cliConfig.AtomFile c.AtomFile = cliConfig.AtomFile
} }
c.AtomFile, err = filepath.Abs(c.AtomFile)
if err != nil {
return fmt.Errorf("error setting absolute filepath for AtomFile: %v", err)
}
c.AtomFile, err = mkFile(c.AtomFile, 0644, 0744) c.AtomFile, err = mkFile(c.AtomFile, 0644, 0744)
if err != nil { if err != nil {
return fmt.Errorf("error setting up file: %v", err) return fmt.Errorf("error setting up file: %v", err)
@ -214,10 +202,6 @@ func (c *Config) setupConfig(cliConfig *Config) error {
if cliConfig.FirebaseKey != defaultConfig.FirebaseKey { if cliConfig.FirebaseKey != defaultConfig.FirebaseKey {
c.FirebaseKey = cliConfig.FirebaseKey c.FirebaseKey = cliConfig.FirebaseKey
} }
c.FirebaseKey, err = filepath.Abs(c.FirebaseKey)
if err != nil {
return fmt.Errorf("error setting absolute filepath for FirebaseKey: %v", err)
}
c.FirebaseKey, err = mkFile(c.FirebaseKey, 0600, 0700) c.FirebaseKey, err = mkFile(c.FirebaseKey, 0600, 0700)
if err != nil { if err != nil {
return fmt.Errorf("error setting up file: %v", err) return fmt.Errorf("error setting up file: %v", err)
@ -230,10 +214,6 @@ func (c *Config) setupConfig(cliConfig *Config) error {
if cliConfig.LogFile != defaultConfig.LogFile { if cliConfig.LogFile != defaultConfig.LogFile {
c.LogFile = cliConfig.LogFile c.LogFile = cliConfig.LogFile
} }
c.LogFile, err = filepath.Abs(c.LogFile)
if err != nil {
return fmt.Errorf("error setting absolute filepath for LogFile: %v", err)
}
c.LogFile, err = mkFile(c.LogFile, 0600, 0700) c.LogFile, err = mkFile(c.LogFile, 0600, 0700)
if err != nil { if err != nil {
return fmt.Errorf("error setting up file: %v", err) return fmt.Errorf("error setting up file: %v", err)
@ -258,10 +238,6 @@ func (c *Config) setupConfig(cliConfig *Config) error {
if cliConfig.PDFDir != defaultConfig.PDFDir { if cliConfig.PDFDir != defaultConfig.PDFDir {
c.PDFDir = cliConfig.PDFDir c.PDFDir = cliConfig.PDFDir
} }
c.PDFDir, err = filepath.Abs(c.PDFDir)
if err != nil {
return fmt.Errorf("error setting absolute filepath for PDFDir: %v", err)
}
c.PDFDir, err = mkDir(c.PDFDir, 0700) c.PDFDir, err = mkDir(c.PDFDir, 0700)
if err != nil { if err != nil {
return fmt.Errorf("error setting up directory: %v", err) return fmt.Errorf("error setting up directory: %v", err)
@ -270,10 +246,6 @@ func (c *Config) setupConfig(cliConfig *Config) error {
if cliConfig.PicsDir != defaultConfig.PicsDir { if cliConfig.PicsDir != defaultConfig.PicsDir {
c.PicsDir = cliConfig.PicsDir c.PicsDir = cliConfig.PicsDir
} }
c.PicsDir, err = filepath.Abs(c.PicsDir)
if err != nil {
return fmt.Errorf("error setting absolute filepath for PicsDir: %v", err)
}
c.PicsDir, err = mkDir(c.PicsDir, 0700) c.PicsDir, err = mkDir(c.PicsDir, 0700)
if err != nil { if err != nil {
return fmt.Errorf("error setting up directory: %v", err) return fmt.Errorf("error setting up directory: %v", err)
@ -290,10 +262,6 @@ func (c *Config) setupConfig(cliConfig *Config) error {
if cliConfig.WebDir != defaultConfig.WebDir { if cliConfig.WebDir != defaultConfig.WebDir {
c.WebDir = cliConfig.WebDir c.WebDir = cliConfig.WebDir
} }
c.WebDir, err = filepath.Abs(c.WebDir)
if err != nil {
return fmt.Errorf("error setting absolute filepath for WebDir: %v", err)
}
c.WebDir, err = mkDir(c.WebDir, 0700) c.WebDir, err = mkDir(c.WebDir, 0700)
if err != nil { if err != nil {
return fmt.Errorf("error setting up directory: %v", err) return fmt.Errorf("error setting up directory: %v", err)

View File

@ -14,13 +14,15 @@ import (
func ConvertToMarkdown(c *Config, filename string) ([]byte, error) { func ConvertToMarkdown(c *Config, filename string) ([]byte, error) {
var stderr bytes.Buffer var stderr bytes.Buffer
tmpDir, err := os.MkdirTemp(os.TempDir(), "cpolis_images") articleID := uuid.New()
articleFileName := fmt.Sprint("/tmp/", articleID, ".md")
tmpDir, err := os.MkdirTemp("/tmp", "cpolis_images")
if err != nil { if err != nil {
return nil, fmt.Errorf("error creating temporary directory: %v", err) return nil, fmt.Errorf("error creating temporary directory: %v", err)
} }
defer os.RemoveAll(tmpDir) defer os.RemoveAll(tmpDir)
articleFileName := filepath.Join(os.TempDir(), fmt.Sprint(uuid.New(), ".md"))
cmd := exec.Command("pandoc", "-s", "-f", "docx", "-t", "commonmark_x", "-o", articleFileName, "--extract-media", tmpDir, filename) // TODO: Is writing to a file necessary? cmd := exec.Command("pandoc", "-s", "-f", "docx", "-t", "commonmark_x", "-o", articleFileName, "--extract-media", tmpDir, filename) // TODO: Is writing to a file necessary?
cmd.Stderr = &stderr cmd.Stderr = &stderr
if err = cmd.Run(); err != nil { if err = cmd.Run(); err != nil {

View File

@ -1,7 +1,9 @@
package calls package calls
import ( import (
"log"
"net/http" "net/http"
"path/filepath"
b "streifling.com/jason/cpolis/cmd/backend" b "streifling.com/jason/cpolis/cmd/backend"
) )
@ -12,6 +14,13 @@ func ServeAtomFeed(c *b.Config) http.HandlerFunc {
return return
} }
http.ServeFile(w, r, c.AtomFile) absFilepath, err := filepath.Abs(c.AtomFile)
if err != nil {
log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
http.ServeFile(w, r, absFilepath)
} }
} }

View File

@ -1,6 +1,7 @@
package calls package calls
import ( import (
"log"
"net/http" "net/http"
"path/filepath" "path/filepath"
@ -16,6 +17,13 @@ func ServeImage(c *b.Config, s map[string]*f.Session) http.HandlerFunc {
} }
} }
http.ServeFile(w, r, filepath.Join(c.PicsDir, r.PathValue("pic"))) absFilepath, err := filepath.Abs(c.PicsDir)
if err != nil {
log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
http.ServeFile(w, r, absFilepath+"/"+r.PathValue("pic"))
} }
} }

View File

@ -44,15 +44,22 @@ func UploadDocx(c *b.Config, db *b.DB, s map[string]*Session) http.HandlerFunc {
return return
} }
docxFilepath := filepath.Join(os.TempDir(), fmt.Sprint(uuid.New(), ".docx")) docxFilename := fmt.Sprint(uuid.New(), ".docx")
if err = os.WriteFile(docxFilepath, buf.Bytes(), 0644); err != nil { absDocxFilepath, err := filepath.Abs("/tmp/" + docxFilename)
if err != nil {
log.Println(err) log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return
} }
defer os.Remove(docxFilepath)
mdString, err := b.ConvertToMarkdown(c, docxFilepath) if err = os.WriteFile(absDocxFilepath, buf.Bytes(), 0644); err != nil {
log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer os.Remove(absDocxFilepath)
mdString, err := b.ConvertToMarkdown(c, absDocxFilepath)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
@ -60,8 +67,15 @@ func UploadDocx(c *b.Config, db *b.DB, s map[string]*Session) http.HandlerFunc {
} }
uuidName := uuid.New() uuidName := uuid.New()
mdFilepath := filepath.Join(c.ArticleDir, fmt.Sprint(uuidName, ".md")) mdFilename := fmt.Sprint(uuidName, ".md")
if err = os.WriteFile(mdFilepath, mdString, 0644); err != nil { absMdFilepath, err := filepath.Abs(c.ArticleDir + "/" + mdFilename)
if err != nil {
log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
if err = os.WriteFile(absMdFilepath, mdString, 0644); err != nil {
log.Println(err) log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return

View File

@ -44,11 +44,17 @@ func UploadPDF(c *b.Config, s map[string]*Session) http.HandlerFunc {
return return
} }
oldFilename := strings.Join(strings.Split(header.Filename, ".")[:len(header.Filename)-1], ".") oldFilename := header.Filename
oldFilename = strings.Join(strings.Split(oldFilename, ".")[:len(oldFilename)-1], ".")
filename := fmt.Sprint(oldFilename, ".", uuid.New(), ".pdf") filename := fmt.Sprint(oldFilename, ".", uuid.New(), ".pdf")
filepath := filepath.Join(c.PDFDir, filename) absFilepath, err := filepath.Abs(c.PDFDir + "/" + filename)
if err != nil {
log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
if err = b.WriteFile(filepath, file); err != nil { if err = b.WriteFile(absFilepath, file); err != nil {
log.Println(err) log.Println(err)
http.Error(w, err.Error(), http.StatusInternalServerError) http.Error(w, err.Error(), http.StatusInternalServerError)
return return