summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Arnott <colin@urandom.co.uk>2022-11-26 05:24:30 +0000
committerColin Arnott <colin@urandom.co.uk>2022-12-13 22:05:34 +0000
commit80d9e24cbf15faba75acd955770add1344315e41 (patch)
tree10166318dcc2666c577d01e5f25bda8587fd3b52
parentterraform-providers.vcd: 3.7.0 → 3.8.0 (diff)
downloadnixpkgs-80d9e24cbf15faba75acd955770add1344315e41.tar.gz
linx-server: init at unstable-2021-12-24
We were forced to patch out a single broke upstream test, and have left that patch as a pull request: ZizzyDizzyMC/linx-server#34. Fixes #188667
-rw-r--r--pkgs/servers/web-apps/linx-server/default.nix33
-rw-r--r--pkgs/servers/web-apps/linx-server/test.patch74
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 109 insertions, 0 deletions
diff --git a/pkgs/servers/web-apps/linx-server/default.nix b/pkgs/servers/web-apps/linx-server/default.nix
new file mode 100644
index 000000000000..995eacf792e4
--- /dev/null
+++ b/pkgs/servers/web-apps/linx-server/default.nix
@@ -0,0 +1,33 @@
+{ buildGoModule
+, fetchFromGitHub
+, go-rice
+, lib
+}:
+
+buildGoModule rec {
+ pname = "linx-server";
+ version = "unstable-2021-12-24";
+
+ src = fetchFromGitHub {
+ owner = "zizzydizzymc";
+ repo = pname;
+ rev = "3f503442f10fca68a3212975b23cf74d92c9988c";
+ hash = "sha256-tTHw/rIb2Gs5i5vZKsSgbUePIY7Np6HofBXu4TTjKbw=";
+ };
+
+ # upstream tests are broken, see zizzydizzymc/linx-server#34
+ patches = [ ./test.patch ];
+
+ vendorHash = "sha256-/N3AXrPyENp3li4X86LNXsfBYbjJulk+0EAyogPNIpc=";
+
+ nativeBuildInputs = [ go-rice ];
+
+ preBuild = "rice embed-go";
+
+ meta = with lib; {
+ description = "Self-hosted file/code/media sharing website.";
+ homepage = "https://put.icu";
+ license = licenses.gpl3Only;
+ maintainers = with maintainers; [ urandom ];
+ };
+}
diff --git a/pkgs/servers/web-apps/linx-server/test.patch b/pkgs/servers/web-apps/linx-server/test.patch
new file mode 100644
index 000000000000..7303aecaf8ef
--- /dev/null
+++ b/pkgs/servers/web-apps/linx-server/test.patch
@@ -0,0 +1,74 @@
+diff --git a/server_test.go b/server_test.go
+index fc225ce..2df3608 100644
+--- a/server_test.go
++++ b/server_test.go
+@@ -446,63 +446,6 @@ func TestPostJSONUpload(t *testing.T) {
+ }
+ }
+
+-func TestPostJSONUploadMaxExpiry(t *testing.T) {
+- mux := setup()
+- Config.maxExpiry = 300
+-
+- // include 0 to test edge case
+- // https://github.com/andreimarcu/linx-server/issues/111
+- testExpiries := []string{"86400", "-150", "0"}
+- for _, expiry := range testExpiries {
+- w := httptest.NewRecorder()
+-
+- filename := generateBarename() + ".txt"
+-
+- var b bytes.Buffer
+- mw := multipart.NewWriter(&b)
+- fw, err := mw.CreateFormFile("file", filename)
+- if err != nil {
+- t.Fatal(err)
+- }
+-
+- fw.Write([]byte("File content"))
+- mw.Close()
+-
+- req, err := http.NewRequest("POST", "/upload/", &b)
+- req.Header.Set("Content-Type", mw.FormDataContentType())
+- req.Header.Set("Accept", "application/json")
+- req.Header.Set("Linx-Expiry", expiry)
+- if err != nil {
+- t.Fatal(err)
+- }
+-
+- mux.ServeHTTP(w, req)
+-
+- if w.Code != 200 {
+- t.Log(w.Body.String())
+- t.Fatalf("Status code is not 200, but %d", w.Code)
+- }
+-
+- var myjson RespOkJSON
+- err = json.Unmarshal([]byte(w.Body.String()), &myjson)
+- if err != nil {
+- t.Fatal(err)
+- }
+-
+- myExp, err := strconv.ParseInt(myjson.Expiry, 10, 64)
+- if err != nil {
+- t.Fatal(err)
+- }
+-
+- expected := time.Now().Add(time.Duration(Config.maxExpiry) * time.Second).Unix()
+- if myExp != expected {
+- t.Fatalf("File expiry is not %d but %s", expected, myjson.Expiry)
+- }
+- }
+-
+- Config.maxExpiry = 0
+-}
+-
+ func TestPostExpiresJSONUpload(t *testing.T) {
+ mux := setup()
+ w := httptest.NewRecorder()
+@@ -1301,5 +1244,4 @@ func TestPutAndGetCLI(t *testing.T) {
+ if !strings.HasPrefix(contentType, "text/plain") {
+ t.Fatalf("Didn't receive file directly but %s", contentType)
+ }
+-
+ }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ddd3f57f82b8..5756b469b44f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -23844,6 +23844,8 @@ with pkgs;
listmonk = callPackage ../servers/mail/listmonk { };
+ linx-server = callPackage ../servers/web-apps/linx-server {};
+
livepeer = callPackage ../servers/livepeer { };
lwan = callPackage ../servers/http/lwan { };