terminal user interface to jujutsu. Focused on speed and clarity
9
fork

Configure Feed

Select the types of activity you want to include in your feed.

working now static

+234 -137
+1
.gitignore
··· 2 2 _opam 3 3 .jj 4 4 duniverse 5 + result
+24
dockerfile
··· 1 + 2 + FROM alpine:3.14 3 + 4 + RUN apk add \ 5 + bash\ 6 + bubblewrap\ 7 + coreutils\ 8 + gcc\ 9 + git\ 10 + m4\ 11 + make\ 12 + musl-dev\ 13 + opam 14 + 15 + RUN opam init\ 16 + --disable-sandboxing\ 17 + --auto-setup\ 18 + --compiler ocaml-base-compiler.4.13.1 19 + 20 + WORKDIR /build 21 + ADD Makefile /build/ 22 + ADD throttle-fstrim.opam /build/ 23 + 24 + RUN make deps
+1 -1
dune-project
··· 20 20 (synopsis "A short synopsis") 21 21 (description "A longer description") 22 22 (depends 23 - ocaml dune stdio nottui lwd base eio_main angstrom ppx_expect ppx_jane) 23 + ocaml dune stdio nottui lwd base eio_main angstrom ppx_expect ppx_jane) 24 24 (tags 25 25 (topics "to describe" your project))) 26 26
+160 -25
flake.lock
··· 1 1 { 2 2 "nodes": { 3 - "flake-parts": { 3 + "flake-compat": { 4 + "flake": false, 5 + "locked": { 6 + "lastModified": 1627913399, 7 + "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=", 8 + "owner": "edolstra", 9 + "repo": "flake-compat", 10 + "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2", 11 + "type": "github" 12 + }, 13 + "original": { 14 + "owner": "edolstra", 15 + "repo": "flake-compat", 16 + "type": "github" 17 + } 18 + }, 19 + "flake-utils": { 4 20 "inputs": { 5 - "nixpkgs-lib": "nixpkgs-lib" 21 + "systems": "systems" 22 + }, 23 + "locked": { 24 + "lastModified": 1710146030, 25 + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", 26 + "owner": "numtide", 27 + "repo": "flake-utils", 28 + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", 29 + "type": "github" 6 30 }, 31 + "original": { 32 + "owner": "numtide", 33 + "repo": "flake-utils", 34 + "type": "github" 35 + } 36 + }, 37 + "flake-utils_2": { 7 38 "locked": { 8 - "lastModified": 1714641030, 9 - "narHash": "sha256-yzcRNDoyVP7+SCNX0wmuDju1NUCt8Dz9+lyUXEI0dbI=", 10 - "owner": "hercules-ci", 11 - "repo": "flake-parts", 12 - "rev": "e5d10a24b66c3ea8f150e47dfdb0416ab7c3390e", 39 + "lastModified": 1638122382, 40 + "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=", 41 + "owner": "numtide", 42 + "repo": "flake-utils", 43 + "rev": "74f7e4319258e287b0f9cb95426c9853b282730b", 44 + "type": "github" 45 + }, 46 + "original": { 47 + "owner": "numtide", 48 + "repo": "flake-utils", 49 + "type": "github" 50 + } 51 + }, 52 + "mirage-opam-overlays": { 53 + "flake": false, 54 + "locked": { 55 + "lastModified": 1661959605, 56 + "narHash": "sha256-CPTuhYML3F4J58flfp3ZbMNhkRkVFKmBEYBZY5tnQwA=", 57 + "owner": "dune-universe", 58 + "repo": "mirage-opam-overlays", 59 + "rev": "05f1c1823d891ce4d8adab91f5db3ac51d86dc0b", 13 60 "type": "github" 14 61 }, 15 62 "original": { 16 - "id": "flake-parts", 17 - "type": "indirect" 63 + "owner": "dune-universe", 64 + "repo": "mirage-opam-overlays", 65 + "type": "github" 18 66 } 19 67 }, 20 68 "nixpkgs": { 21 69 "locked": { 22 - "lastModified": 1713537308, 23 - "narHash": "sha256-XtTSSIB2DA6tOv+l0FhvfDMiyCmhoRbNB+0SeInZkbk=", 24 - "path": "/nix/store/v4pcs3nzx54m5bmxd39win0rgl2d2hbx-source", 25 - "rev": "5c24cf2f0a12ad855f444c30b2421d044120c66f", 26 - "type": "path" 70 + "lastModified": 1682362401, 71 + "narHash": "sha256-/UMUHtF2CyYNl4b60Z2y4wwTTdIWGKhj9H301EDcT9M=", 72 + "owner": "nixos", 73 + "repo": "nixpkgs", 74 + "rev": "884ac294018409e0d1adc0cae185439a44bd6b0b", 75 + "type": "github" 76 + }, 77 + "original": { 78 + "owner": "nixos", 79 + "ref": "nixos-unstable", 80 + "repo": "nixpkgs", 81 + "type": "github" 82 + } 83 + }, 84 + "opam-nix": { 85 + "inputs": { 86 + "flake-compat": "flake-compat", 87 + "flake-utils": "flake-utils_2", 88 + "mirage-opam-overlays": "mirage-opam-overlays", 89 + "nixpkgs": "nixpkgs", 90 + "opam-overlays": "opam-overlays", 91 + "opam-repository": "opam-repository", 92 + "opam2json": "opam2json" 93 + }, 94 + "locked": { 95 + "lastModified": 1715087815, 96 + "narHash": "sha256-FjIg+rO+aIfVFzSbvNznVhCn/s2MS8HkPhht7LqzLlk=", 97 + "owner": "tweag", 98 + "repo": "opam-nix", 99 + "rev": "d42a3b8f234dd8c922020f8b2f4e326406bf23d1", 100 + "type": "github" 27 101 }, 28 102 "original": { 29 - "id": "nixpkgs-unstable", 30 - "type": "indirect" 103 + "owner": "tweag", 104 + "repo": "opam-nix", 105 + "type": "github" 31 106 } 32 107 }, 33 - "nixpkgs-lib": { 108 + "opam-overlays": { 109 + "flake": false, 34 110 "locked": { 35 - "lastModified": 1714640452, 36 - "narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=", 37 - "type": "tarball", 38 - "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" 111 + "lastModified": 1654162756, 112 + "narHash": "sha256-RV68fUK+O3zTx61iiHIoS0LvIk0E4voMp+0SwRg6G6c=", 113 + "owner": "dune-universe", 114 + "repo": "opam-overlays", 115 + "rev": "c8f6ef0fc5272f254df4a971a47de7848cc1c8a4", 116 + "type": "github" 39 117 }, 40 118 "original": { 41 - "type": "tarball", 42 - "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" 119 + "owner": "dune-universe", 120 + "repo": "opam-overlays", 121 + "type": "github" 122 + } 123 + }, 124 + "opam-repository": { 125 + "flake": false, 126 + "locked": { 127 + "lastModified": 1705008664, 128 + "narHash": "sha256-TTjTal49QK2U0yVOmw6rJhTGYM7tnj3Kv9DiEEiLt7E=", 129 + "owner": "ocaml", 130 + "repo": "opam-repository", 131 + "rev": "fa77046c6497f8ca32926acdb7eb1e61777d4c17", 132 + "type": "github" 133 + }, 134 + "original": { 135 + "owner": "ocaml", 136 + "repo": "opam-repository", 137 + "type": "github" 138 + } 139 + }, 140 + "opam2json": { 141 + "inputs": { 142 + "nixpkgs": [ 143 + "opam-nix", 144 + "nixpkgs" 145 + ] 146 + }, 147 + "locked": { 148 + "lastModified": 1671540003, 149 + "narHash": "sha256-5pXfbUfpVABtKbii6aaI2EdAZTjHJ2QntEf0QD2O5AM=", 150 + "owner": "tweag", 151 + "repo": "opam2json", 152 + "rev": "819d291ea95e271b0e6027679de6abb4d4f7f680", 153 + "type": "github" 154 + }, 155 + "original": { 156 + "owner": "tweag", 157 + "repo": "opam2json", 158 + "type": "github" 43 159 } 44 160 }, 45 161 "root": { 46 162 "inputs": { 47 - "flake-parts": "flake-parts", 48 - "nixpkgs": "nixpkgs" 163 + "flake-utils": "flake-utils", 164 + "nixpkgs": [ 165 + "opam-nix", 166 + "nixpkgs" 167 + ], 168 + "opam-nix": "opam-nix" 169 + } 170 + }, 171 + "systems": { 172 + "locked": { 173 + "lastModified": 1681028828, 174 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 175 + "owner": "nix-systems", 176 + "repo": "default", 177 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 178 + "type": "github" 179 + }, 180 + "original": { 181 + "owner": "nix-systems", 182 + "repo": "default", 183 + "type": "github" 49 184 } 50 185 } 51 186 },
+48 -111
flake.nix
··· 1 1 { 2 - description = "An actor-model multi-core scheduler for OCaml 5"; 3 - 4 2 inputs = { 5 - nixpkgs.url = "nixpkgs-unstable"; 6 - 7 - # bytestring = { 8 - # url = "github:riot-ml/bytestring"; 9 - # inputs.nixpkgs.follows = "nixpkgs"; 10 - # inputs.minttea.follows = "minttea"; 11 - # inputs.rio.follows = "rio"; 12 - # }; 13 - 14 - # castore = { 15 - # url = "github:suri-framework/castore"; 16 - # inputs.nixpkgs.follows = "nixpkgs"; 17 - # }; 18 - 19 - # config = { 20 - # url = "github:ocaml-sys/config.ml"; 21 - # inputs.nixpkgs.follows = "nixpkgs"; 22 - # inputs.minttea.follows = "minttea"; 23 - # }; 3 + opam-nix.url = "github:tweag/opam-nix"; 4 + flake-utils.url = "github:numtide/flake-utils"; 5 + nixpkgs.follows = "opam-nix/nixpkgs"; 6 + }; 7 + outputs = { self, flake-utils, opam-nix, nixpkgs }@inputs: 8 + flake-utils.lib.eachDefaultSystem (system: 9 + let 10 + pkgs = nixpkgs.legacyPackages.${system}.pkgsMusl; 11 + on = opam-nix.lib.${system}; 12 + localPackagesQuery = builtins.mapAttrs (_: pkgs.lib.last) 13 + (on.listRepo (on.makeOpamRepo ./.)); 14 + devPackagesQuery = { 15 + # You can add "development" packages here. They will get added to the devShell automatically. 16 + ocaml-lsp-server = "*"; 17 + ocamlformat = "*"; 18 + }; 19 + query = devPackagesQuery // { 20 + ## You can force versions of certain packages here, e.g: 21 + ## - force the ocaml compiler to be taken from opam-repository: 22 + # ocaml-base-compiler = "5.1.0"; 23 + ## - or force the compiler to be taken from nixpkgs and be a certain version: 24 + # ocaml-system = "5.1.0"; 25 + ## - or force ocamlfind to be a certain version: 26 + # ocamlfind = "1.9.2"; 27 + }; 28 + scope = on.buildOpamProject' { } ./. query; 29 + overlay = final: prev: 30 + { 31 + # You can add overrides here 32 + }; 33 + scope' = scope.overrideScope' overlay; 34 + # Packages from devPackagesQuery 35 + devPackages = builtins.attrValues 36 + (pkgs.lib.getAttrs (builtins.attrNames devPackagesQuery) scope'); 37 + # Packages in this workspace 38 + packages = 39 + pkgs.lib.getAttrs (builtins.attrNames localPackagesQuery) scope'; 40 + in { 41 + legacyPackages = scope'; 24 42 25 - # gluon = { 26 - # url = "github:riot-ml/gluon"; 27 - # inputs.nixpkgs.follows = "nixpkgs"; 28 - # inputs.bytestring.follows = "bytestring"; 29 - # inputs.config.follows = "config"; 30 - # inputs.minttea.follows = "minttea"; 31 - # inputs.rio.follows = "rio"; 32 - # }; 43 + # inherit packages; 33 44 34 - # minttea = { 35 - # url = "github:leostera/minttea"; 36 - # inputs.nixpkgs.follows = "nixpkgs"; 37 - # }; 45 + ## If you want to have a "default" package which will be built with just `nix build`, do this instead of `inherit packages;`: 46 + packages = packages // { default = packages.jj_tui; }; 38 47 39 - # rio = { 40 - # url = "github:riot-ml/rio"; 41 - # inputs.nixpkgs.follows = "nixpkgs"; 42 - # }; 43 - 44 - # telemetry = { 45 - # url = "github:leostera/telemetry"; 46 - # inputs.nixpkgs.follows = "nixpkgs"; 47 - # }; 48 - }; 49 - 50 - outputs = inputs@{ self, flake-parts, ... }: 51 - flake-parts.lib.mkFlake { inherit inputs; } { 52 - systems = 53 - [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ]; 54 - perSystem = { config, self', inputs', pkgs, system, ... }: 55 - let 56 - inherit (pkgs) ocamlPackages mkShell lib; 57 - inherit (ocamlPackages) buildDunePackage; 58 - version = "0.0.9+dev"; 59 - in { 60 - devShells = { 61 - default = mkShell.override { stdenv = pkgs.clang17Stdenv; } { 62 - buildInputs = with ocamlPackages; [ 63 - dune_3 64 - ocaml 65 - utop 66 - ocamlformat 67 - ]; 68 - inputsFrom = [ self'.packages.default ]; 69 - packages = builtins.attrValues { 70 - inherit (pkgs) clang_17 clang-tools_17 pkg-config; 71 - inherit (ocamlPackages) ocaml-lsp ocamlformat-rpc-lib; 72 - }; 73 - }; 74 - }; 75 - packages = { 76 - # randomconv = buildDunePackage { 77 - # version = "0.2.0"; 78 - # pname = "randomconv"; 79 - # src = builtins.fetchGit { 80 - # url = "git@github.com:hannesm/randomconv.git"; 81 - # rev = "b2ce656d09738d676351f5a1c18aff0ff37a7dcc"; 82 - # ref = "refs/tags/${version}"; 83 - # }; 84 - # }; 85 - 86 - default = let 87 - pkg = buildDunePackage { 88 - inherit version; 89 - preBuild=" "; 90 - pname = "jj_tui"; 91 - propagatedBuildInputs = with ocamlPackages; 92 - [ 93 - # inputs'.bytestring.packages.default 94 - # inputs'.castore.packages.default 95 - # inputs'.config.packages.default 96 - # inputs'.gluon.packages.default 97 - # inputs'.rio.packages.default 98 - # (mdx.override { 99 - # inherit logs; 100 - # }) 101 - # mirage-crypto 102 - # mirage-crypto-rng 103 - # mtime 104 - # odoc 105 - # ptime 106 - # self'.packages.randomconv 107 - # inputs'.telemetry.packages.default 108 - # tls 109 - # uri 110 - # x509 111 - ]; 112 - src = ./.; 113 - }; 114 - in pkg; 115 - }; 48 + devShells.default = pkgs.mkShell { 49 + inputsFrom = builtins.attrValues packages; 50 + buildInputs = devPackages ++ [ 51 + # You can add packages from nixpkgs here 52 + ]; 116 53 }; 117 - }; 54 + }); 118 55 }