22
flake.nix
22
flake.nix
@@ -6,8 +6,10 @@
|
|||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { nixpkgs, flake-utils, ... }@inputs:
|
outputs =
|
||||||
flake-utils.lib.eachDefaultSystem (system:
|
{ nixpkgs, flake-utils, ... }@inputs:
|
||||||
|
flake-utils.lib.eachDefaultSystem (
|
||||||
|
system:
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { inherit system; };
|
pkgs = import nixpkgs { inherit system; };
|
||||||
in
|
in
|
||||||
@@ -15,7 +17,7 @@
|
|||||||
packages = rec {
|
packages = rec {
|
||||||
slenpaste = pkgs.buildGoModule {
|
slenpaste = pkgs.buildGoModule {
|
||||||
pname = "slenpaste";
|
pname = "slenpaste";
|
||||||
version = "0.1.3";
|
version = "0.1.4";
|
||||||
src = ./.;
|
src = ./.;
|
||||||
goPackagePath = "github.com/slendidev/slenpaste";
|
goPackagePath = "github.com/slendidev/slenpaste";
|
||||||
vendorHash = "sha256-MUvodL6K71SCfxu51T/Ka2/w32Kz+IXem1bYqXQLSaU=";
|
vendorHash = "sha256-MUvodL6K71SCfxu51T/Ka2/w32Kz+IXem1bYqXQLSaU=";
|
||||||
@@ -24,10 +26,20 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
buildInputs = [ pkgs.go pkgs.gopls ];
|
buildInputs = [
|
||||||
|
pkgs.go
|
||||||
|
pkgs.gopls
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nixosModules.slenpaste = { lib, pkgs, config, ... }: {
|
nixosModules.slenpaste =
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
# module function
|
# module function
|
||||||
options.services.slenpaste.enable = lib.mkEnableOption "Enable slenpaste service";
|
options.services.slenpaste.enable = lib.mkEnableOption "Enable slenpaste service";
|
||||||
options.services.slenpaste.domain = lib.mkOption {
|
options.services.slenpaste.domain = lib.mkOption {
|
||||||
|
|||||||
13
main.go
13
main.go
@@ -69,16 +69,21 @@ func randomID(n int) string {
|
|||||||
|
|
||||||
func indexHandler(w http.ResponseWriter, r *http.Request) {
|
func indexHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Header().Add("Content-Type", "text/html")
|
w.Header().Add("Content-Type", "text/html")
|
||||||
|
scheme := "http"
|
||||||
|
if useHTTPS {
|
||||||
|
scheme = "https"
|
||||||
|
}
|
||||||
|
d := fmt.Sprintf("%s://%s", scheme, domain)
|
||||||
fmt.Fprintf(w, `<html><body><pre>Welcome to slenpaste!
|
fmt.Fprintf(w, `<html><body><pre>Welcome to slenpaste!
|
||||||
|
|
||||||
Upload a file:
|
Upload a file:
|
||||||
curl -F 'file=@yourfile.txt' -F 'expiry=1h' http://%s/
|
curl -F 'file=@yourfile.txt' -F 'expiry=1h' %s/
|
||||||
|
|
||||||
Upload from stdin (no file param, expire after 5m):
|
Upload from stdin (no file param, expire after 5m):
|
||||||
curl --data-binary @- http://%s/?expiry=5m < yourfile.txt
|
curl --data-binary @- %s/?expiry=5m < yourfile.txt
|
||||||
|
|
||||||
Upload from stdin and expire on first view:
|
Upload from stdin and expire on first view:
|
||||||
cat yourfile.txt | curl --data-binary @- "http://%s/?expiry=view"
|
cat yourfile.txt | curl --data-binary @- "%s/?expiry=view"
|
||||||
|
|
||||||
</pre>
|
</pre>
|
||||||
<form enctype="multipart/form-data" method="post">
|
<form enctype="multipart/form-data" method="post">
|
||||||
@@ -95,7 +100,7 @@ Upload from stdin and expire on first view:
|
|||||||
|
|
||||||
<input type="submit" value="Upload">
|
<input type="submit" value="Upload">
|
||||||
</form>
|
</form>
|
||||||
</body></html>`, domain, domain, domain)
|
</body></html>`, d, d, d)
|
||||||
}
|
}
|
||||||
|
|
||||||
func uploadHandler(w http.ResponseWriter, r *http.Request) {
|
func uploadHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
|||||||
Reference in New Issue
Block a user