diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..f6a1046 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,25 @@ +--- +kind: pipeline +type: docker +name: default + + + +steps: +- name: staticcheck + image: golang:1.18.3-alpine3.16 + commands: + - apk add --no-cache git~=2 staticcheck~=2022 gcc~=11 libc-dev~=0 + - staticcheck +- name: build + image: plugins/docker + settings: + username: + from_secret: DOCKER_USERNAME + password: + from_secret: DOCKER_PASSWORD + repo: 185504a9/sfu + tags: latest + target: run_prod + depends_on: + - staticcheck \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index cda8681..a1cc146 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ ARG uid=1000 RUN mkdir -p "$APP_ROOT" \ && addgroup --system sfu -g $gid \ && adduser -h "$APP_ROOT" --disabled-password --system -u $uid --ingroup sfu sfu \ - && apk add curl~=7 + && apk add --no-cache curl~=7 WORKDIR "$APP_ROOT" USER sfu:sfu diff --git a/README.md b/README.md index c2a337c..7d25ddb 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # sfu +[](https://qa.roboces.dev/catalin/sfu) simple requirementsless, authenticationless file upload server diff --git a/handlers.go b/handlers.go index 348a913..ecb42df 100644 --- a/handlers.go +++ b/handlers.go @@ -10,7 +10,7 @@ import ( ) func downloadFile(w http.ResponseWriter, req *http.Request, fileName string) { - Info.Println(fmt.Sprintf("server: will download %v", fileName)) + Info.Printf("server: will download %v\n", fileName) file, err := os.Open(fmt.Sprintf("%v/%v", SFU_FILES_DIR, fileName)) if err != nil { Error.Println(err) @@ -34,9 +34,9 @@ func fileExists(fileName string) bool { } func deleteFile(w http.ResponseWriter, req *http.Request, fileName string) { - Info.Println(fmt.Sprintf("server: will delete %v", fileName)) + Info.Printf("server: will delete %v\n", fileName) if !fileExists(fileName) { - Error.Println(fmt.Sprintf("%v does not exist", fileName)) + Error.Printf("%v does not exist\n", fileName) http.Error(w, "File not found", http.StatusNotFound) return } @@ -59,12 +59,12 @@ func uploadFile(w http.ResponseWriter, req *http.Request) { fileExists := fileExists(fileHeader.Filename) forceOverwrite := req.FormValue("force") if fileExists && forceOverwrite != "true" { - Error.Println(fmt.Sprintf("file %v already exists", fileHeader.Filename)) + Error.Printf("file %v already exists\n", fileHeader.Filename) http.Error(w, "File already exists", http.StatusConflict) return } if !fileExists || (forceOverwrite == "true" && fileExists) { - Info.Println(fmt.Sprintf("server: will upload %v", fileHeader.Filename)) + Info.Printf("server: will upload %v\n", fileHeader.Filename) out, err := os.Create(fmt.Sprintf("%v/%v", SFU_FILES_DIR, fileHeader.Filename)) if err != nil { Error.Println(err) @@ -83,15 +83,14 @@ func uploadFile(w http.ResponseWriter, req *http.Request) { return } http.Error(w, "internal server error", http.StatusInternalServerError) - return } func listFiles(w http.ResponseWriter, req *http.Request) { - Info.Println(fmt.Sprintf("server: will list uploaded files on %v", SFU_FILES_DIR)) + Info.Printf("server: will list uploaded files on %v\n", SFU_FILES_DIR) files, err := ioutil.ReadDir(SFU_FILES_DIR) if err != nil { - Warning.Println(fmt.Sprintf("%v does not exist", SFU_FILES_DIR)) - Info.Println(fmt.Sprintf("will create %v", SFU_FILES_DIR)) + Warning.Printf("%v does not exist\n", SFU_FILES_DIR) + Info.Printf("will create %v\n", SFU_FILES_DIR) _ = os.Mkdir(SFU_FILES_DIR, os.ModePerm) } fmt.Fprint(w, "