build: add nix package
This commit is contained in:
		
							parent
							
								
									70989dc619
								
							
						
					
					
						commit
						b218d3ec30
					
				
					 10 changed files with 161 additions and 12 deletions
				
			
		
							
								
								
									
										4
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -10,3 +10,7 @@
 | 
			
		|||
 | 
			
		||||
# hugo
 | 
			
		||||
/.hugo_build.lock
 | 
			
		||||
/public/
 | 
			
		||||
 | 
			
		||||
# nix
 | 
			
		||||
/result
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										27
									
								
								Justfile
									
										
									
									
									
								
							
							
						
						
									
										27
									
								
								Justfile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,4 +1,10 @@
 | 
			
		|||
typegen_bin := env_var_or_default('TYPEGEN', './typegen/target/debug/typegen')
 | 
			
		||||
src_path := env_var_or_default('SRC_PATH', '../src')
 | 
			
		||||
 | 
			
		||||
build_typegen := if typegen_bin == './typegen/target/debug/typegen' { "true" } else { "false" }
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	rm -rf public
 | 
			
		||||
	rm -rf build
 | 
			
		||||
	rm -rf data/modules/Quickshell
 | 
			
		||||
	rm -rf content/docs/types/Quickshell
 | 
			
		||||
| 
						 | 
				
			
			@ -7,15 +13,20 @@ clean:
 | 
			
		|||
	rm -rf data/modules/Quickshell.Wayland
 | 
			
		||||
	rm -rf content/docs/types/Quickshell.Wayland
 | 
			
		||||
 | 
			
		||||
typedocs: clean
 | 
			
		||||
	cd typegen && cargo build
 | 
			
		||||
buildtypegen:
 | 
			
		||||
	({{build_typegen}} && cd typegen && cargo build) || true
 | 
			
		||||
 | 
			
		||||
typedocs: clean buildtypegen
 | 
			
		||||
	mkdir -p build/types/types
 | 
			
		||||
	./typegen/target/debug/typegen gentypes ../src/core/module.md build/types/types/Quickshell.json
 | 
			
		||||
	./typegen/target/debug/typegen gentypes ../src/io/module.md build/types/types/Quickshell.Io.json
 | 
			
		||||
	./typegen/target/debug/typegen gentypes ../src/wayland/module.md build/types/types/Quickshell.Wayland.json
 | 
			
		||||
	sh -c './typegen/target/debug/typegen gendocs ../src/core/module.md data/modules/Quickshell content/docs/types/Quickshell types/* build/types/types/*'
 | 
			
		||||
	sh -c './typegen/target/debug/typegen gendocs ../src/io/module.md data/modules/Quickshell.Io content/docs/types/Quickshell.Io types/* build/types/types/*'
 | 
			
		||||
	sh -c './typegen/target/debug/typegen gendocs ../src/wayland/module.md data/modules/Quickshell.Wayland content/docs/types/Quickshell.Wayland types/* build/types/types/*'
 | 
			
		||||
	{{typegen_bin}} gentypes {{src_path}}/core/module.md build/types/types/Quickshell.json
 | 
			
		||||
	{{typegen_bin}} gentypes {{src_path}}/io/module.md build/types/types/Quickshell.Io.json
 | 
			
		||||
	{{typegen_bin}} gentypes {{src_path}}/wayland/module.md build/types/types/Quickshell.Wayland.json
 | 
			
		||||
	sh -c '{{typegen_bin}} gendocs {{src_path}}/core/module.md data/modules/Quickshell content/docs/types/Quickshell types/* build/types/types/*'
 | 
			
		||||
	sh -c '{{typegen_bin}} gendocs {{src_path}}/io/module.md data/modules/Quickshell.Io content/docs/types/Quickshell.Io types/* build/types/types/*'
 | 
			
		||||
	sh -c '{{typegen_bin}} gendocs {{src_path}}/wayland/module.md data/modules/Quickshell.Wayland content/docs/types/Quickshell.Wayland types/* build/types/types/*'
 | 
			
		||||
 | 
			
		||||
serve: typedocs
 | 
			
		||||
	hugo server --buildDrafts --disableFastRender
 | 
			
		||||
 | 
			
		||||
build: typedocs
 | 
			
		||||
	hugo
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -7,4 +7,7 @@ Quickshell is a fully user customizable desktop shell based on QtQuick.
 | 
			
		|||
{{< cards >}}
 | 
			
		||||
  {{< card link="/docs/configuration" title="Configuration" >}}
 | 
			
		||||
  {{< card link="/docs/types" title="Type Reference" >}}
 | 
			
		||||
  <br>
 | 
			
		||||
  {{< card link="https://git.outfoxxed.me/outfoxxed/quickshell-examples" title="Examples" >}}
 | 
			
		||||
  {{< card link="https://git.outfoxxed.me/outfoxxed/quickshell" title="Source" >}}
 | 
			
		||||
{{< /cards >}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										31
									
								
								default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
{
 | 
			
		||||
  stdenv,
 | 
			
		||||
  nix-gitignore,
 | 
			
		||||
  hugo,
 | 
			
		||||
  cargo,
 | 
			
		||||
  just,
 | 
			
		||||
 | 
			
		||||
  callPackage,
 | 
			
		||||
  typegen ? (callPackage ./typegen {}),
 | 
			
		||||
 | 
			
		||||
  srcpath ? ../src,
 | 
			
		||||
}: stdenv.mkDerivation {
 | 
			
		||||
  name = "quickshell-docs";
 | 
			
		||||
  version = "0.1.0";
 | 
			
		||||
  src = nix-gitignore.gitignoreSource "/typegen\n" ./.;
 | 
			
		||||
 | 
			
		||||
  buildInputs = [
 | 
			
		||||
    just
 | 
			
		||||
    hugo
 | 
			
		||||
    typegen
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  buildPhase = ''
 | 
			
		||||
    SRC_PATH="${srcpath}" TYPEGEN=typegen just build
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  installPhase = ''
 | 
			
		||||
    mkdir -p $out
 | 
			
		||||
    cp -r ./public/* $out/
 | 
			
		||||
  '';
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								flake.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								flake.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,47 @@
 | 
			
		|||
{
 | 
			
		||||
  "nodes": {
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1709703039,
 | 
			
		||||
        "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=",
 | 
			
		||||
        "owner": "NixOS",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "id": "nixpkgs",
 | 
			
		||||
        "ref": "nixos-unstable",
 | 
			
		||||
        "type": "indirect"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "quickshell": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1709989609,
 | 
			
		||||
        "narHash": "sha256-l6RQfXuE7XL2VQUq1Fja5NESPo0PuhFKZp2X1C9CFBk=",
 | 
			
		||||
        "ref": "refs/heads/master",
 | 
			
		||||
        "rev": "5f9bb9b46c1435777f9782f09f077ebc3ef222c9",
 | 
			
		||||
        "revCount": 104,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": "nixpkgs",
 | 
			
		||||
        "quickshell": "quickshell"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "root": "root",
 | 
			
		||||
  "version": 7
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								flake.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								flake.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
{
 | 
			
		||||
  inputs = {
 | 
			
		||||
    nixpkgs.url = "nixpkgs/nixos-unstable";
 | 
			
		||||
 | 
			
		||||
    quickshell = {
 | 
			
		||||
      url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = { self, nixpkgs, quickshell }: let
 | 
			
		||||
    forEachSystem = fn: nixpkgs.lib.genAttrs
 | 
			
		||||
      [ "x86_64-linux" "aarch64-linux" ]
 | 
			
		||||
      (system: fn system nixpkgs.legacyPackages.${system});
 | 
			
		||||
  in {
 | 
			
		||||
    packages = forEachSystem (system: pkgs: rec {
 | 
			
		||||
      quickshell-docs = import ./package.nix {
 | 
			
		||||
        inherit pkgs;
 | 
			
		||||
        srcpath = "${quickshell}/src";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      default = quickshell-docs;
 | 
			
		||||
    });
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								hugo.toml
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								hugo.toml
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
baseURL = "https://example.org/"
 | 
			
		||||
baseURL = "https://quickshell.outfoxxed.me"
 | 
			
		||||
languageCode = "en-us"
 | 
			
		||||
title = "Quickshell"
 | 
			
		||||
theme = "hextra"
 | 
			
		||||
| 
						 | 
				
			
			@ -12,6 +12,12 @@ enable = true
 | 
			
		|||
type = "flexsearch"
 | 
			
		||||
flexsearch.index = "content"
 | 
			
		||||
 | 
			
		||||
[params.navbar]
 | 
			
		||||
displayLogo = false
 | 
			
		||||
 | 
			
		||||
[params.page]
 | 
			
		||||
width = "wide"
 | 
			
		||||
 | 
			
		||||
[markup] # required by theme to render properly
 | 
			
		||||
goldmark.renderer.unsafe = true
 | 
			
		||||
highlight.noClasses = false
 | 
			
		||||
| 
						 | 
				
			
			@ -20,9 +26,13 @@ highlight.noClasses = false
 | 
			
		|||
name = "QtQuick Type Reference ↗"
 | 
			
		||||
url = "https://doc.qt.io/qt-6/qtquick-qmlmodule.html"
 | 
			
		||||
 | 
			
		||||
[[menu.sidebar]]
 | 
			
		||||
name = "Quickshell Examples ↗"
 | 
			
		||||
url = "https://git.outfoxxed.me/outfoxxed/quickshell-examples"
 | 
			
		||||
 | 
			
		||||
[[menu.main]]
 | 
			
		||||
name = "Docs"
 | 
			
		||||
pageRef = "/docs"
 | 
			
		||||
name = "Configuration"
 | 
			
		||||
pageRef = "/docs/configuration"
 | 
			
		||||
weight = 1
 | 
			
		||||
 | 
			
		||||
[[menu.main]]
 | 
			
		||||
| 
						 | 
				
			
			@ -31,6 +41,11 @@ pageRef = "/docs/types"
 | 
			
		|||
weight = 2
 | 
			
		||||
 | 
			
		||||
[[menu.main]]
 | 
			
		||||
name = "Search"
 | 
			
		||||
name = "Source ↗"
 | 
			
		||||
url = "https://git.outfoxxed.me/outfoxxed/quickshell"
 | 
			
		||||
weight = 3
 | 
			
		||||
 | 
			
		||||
[[menu.main]]
 | 
			
		||||
name = "Search"
 | 
			
		||||
weight = 4
 | 
			
		||||
params.type = "search"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								package.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								package.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
{ pkgs ? import <nixpkgs> {}, srcpath ? ../src }: pkgs.callPackage ./default.nix { inherit srcpath; }
 | 
			
		||||
							
								
								
									
										2
									
								
								typegen/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								typegen/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
/target/
 | 
			
		||||
/result
 | 
			
		||||
							
								
								
									
										10
									
								
								typegen/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								typegen/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
{
 | 
			
		||||
  nix-gitignore,
 | 
			
		||||
  rustPlatform,
 | 
			
		||||
}: rustPlatform.buildRustPackage {
 | 
			
		||||
  pname = "quickshell-docs-typegen";
 | 
			
		||||
  version = "0.1.0";
 | 
			
		||||
 | 
			
		||||
  src = nix-gitignore.gitignoreSource [] ./.;
 | 
			
		||||
  cargoSha256 = "rep68gbnp9uPhzjK7opLg7dh4X2uKNmAPfGUuGjE35w=";
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue