pijul nest
guest [sign in]

Fork channel

Create a new channel as a copy of main.

Rename channel

Rename main to:

Delete channel

Delete main? This cannot be undone.

development.nix
# SPDX-License-Identifier: BlueOak-1.0.0
# SPDX-FileCopyrightText: 2025 toastal <toastal@posteo.net>
final: prev: {
   factor-wrapped = final.writeTextFile {
      name = "factor-scoped";
      executable = true;
      destination = "/bin/factor";
      text =
         let
            factor-reroot = final.writeTextFile {
               name = "rerooted-ui-listener.factor";
               destination = "rerooted-ui-listener.factor";
               text = # factor
                  ''
                     USING: environment io.directories namespaces system ;

                     "FACTOR_PROJECT_ROOT" os-env
                        [ set-current-directory ] when

                     "listener" run
                  '';
            };
         in
         # sh
         ''
            #!${final.lib.getExe final.dash}
            exec ${final.factorPackages.factor-lang}/bin/factor "$@"
         '';
      checkPhase = ''
         ${final.stdenv.shellDryRun} "$target"
      '';
      meta.mainProgram = "factor";
   };

   fello-dev-shell = final.mkShellNoCC {
      name = "fello";
      inputsFrom = with final; [
         fello
      ];
      packages = with final; [
         factor-wrapped
         nixfmt-3-space
         rlwrap # for ``rlwrap factor …``
      ];
      shellHook = ''
         export FACTOR_ROOTS="''${FACTOR_ROOTS:+:$FACTOR_ROOTS}:$(pwd)/extra"
         export FACTOR_PROJECT_ROOT="$(pwd)"
         export FACTOR_IMAGE="$FACTOR_PROJECT_ROOT/factor.image"
      '';
   };

   nixfmt-3-space = final.writeTextFile {
      name = "nixfmt-wrapped";
      executable = true;
      destination = "/bin/nixfmt";
      text = # sh
         ''
            #!${final.lib.getExe final.dash}
            exec ${final.lib.getExe final.nixfmt-rfc-style} --indent=3 "$@"
         '';
      checkPhase = ''
         ${final.stdenv.shellDryRun} "$target"
      '';
      meta.mainProgram = "nixfmt";
   };
}