You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This was disabled because we couldn't get it to work.
Expected Behavior
No response
Steps To Reproduce
No response
Relevant log output
N/A
Screenshots
No response
Additional data
I think we need to fix with a wrapper script, something like:
{inputs, ...}: {imports=[inputs.treefmt-nix.flakeModule];perSystem={config,pkgs,
...
}: letscript=pkgs.writeScriptBin"treefmt"'' #! ${pkgs.bash}/bin/bash set -x set -e export MIX_REBAR3="${pkgs.rebar3}/bin/rebar3" exec ${pkgs.treefmt}/bin/treefmt "$@" '';wrapper=pkgs.symlinkJoin{name="treefmt-wrapper";version=pkgs.treefmt.version;paths=[scriptpkgs.treefmt];};in{# Auto formatters. This also adds a flake check to ensure that the# source tree was auto formatted.treefmt={flakeFormatter=true;# Enables treefmt the default formatter used by the nix fmt commandflakeCheck=true;# Add a flake check to run treefmt, disabled, as mix format does need the dependencies fetched beforehandpackage=wrapper;projectRootFile="VERSION";# File used to identity repo root# we really need to mirror the treefmt.toml as we can't use it directlysettings.global.excludes=["*.gitignore""*.dockerignore"".envrc""*.node-version""Dockerfile""grafana/Dockerfile""Makefile""VERSION""LICENSE""*.metadata""*.manifest""*.webmanifest""*.dat""*.lock""*.txt""*.csv""*.ico""*.png""*.svg""*.properties""*.xml""*.po""*.pot""*.json.example""*.typos.toml""treefmt.toml""grafana/dashboards/*.json"# we use the grafana export style];programs.mix-format.enable=true;settings.formatter.mix-format.includes=["*.ex""*.exs""*.{heex,eex}"];# run shellcheck firstprograms.shellcheck.enable=true;settings.formatter.shellcheck.priority=0;# default is 0, but we set it here for clarity# shfmt secondprograms.shfmt.enable=true;programs.shfmt.indent_size=0;# 0 means tabssettings.formatter.shfmt.priority=1;programs.prettier.enable=true;programs.nixpkgs-fmt.enable=true;};};}
Unfortunately this currently fails, it is looking for local.hex. Which hasn't been packaged in nix. I think local.hex just allows downloading other things, probably not what we want in nix.
We cannot download stuff in the wrapper script, being part of a nix build it doesn't have Internet access.
At this stage out of time to try to comprehend this, but thought I should document my findings.
nix flake check --override-input devenv-root "file+file://"<(printf %s "$PWD") .
warning: Git tree '/home/brian/tree/3rdparty/teslamate' is dirty
warning: not writing modified lock file of flake 'git+file:///home/brian/tree/3rdparty/teslamate':
• Updated input 'devenv-root':
'file:///dev/null?narHash=sha256-d6xi4mKdjkX2JFicDIv5niSzpyI0m/Hnm8GGAIU04kY%3D'
→ 'file:///proc/self/fd/11?narHash=sha256-MR36Ywqs/zTxXcyqXW6MESFZ3X7OT91FF2wTpsZPoEg%3D'
error: builder for '/nix/store/mqcdlp6v87bdbvqja2r0jx3ix367wvpk-treefmt-check.drv' failed with exit code 1;
last 15 log lines:
> Initialized empty Git repository in /build/project/.git/
> + set -e
> + export MIX_REBAR3=/nix/store/d9r8459r3vr2c9g712hs1rbqmsvwwbl3-rebar3-3.24.0/bin/rebar3
> + MIX_REBAR3=/nix/store/d9r8459r3vr2c9g712hs1rbqmsvwwbl3-rebar3-3.24.0/bin/rebar3
> + exec /nix/store/frmyslc7ayg3afpcsnd5whn0zrhsrs6k-treefmt-2.0.5/bin/treefmt --config-file=/nix/store/6g4inxx2hj41cjgk81lazjp52sk4wvak-treefmt.toml --tree-root-file=VERSION --version
> treefmt v2.0.5
> + set -e
> + export MIX_REBAR3=/nix/store/d9r8459r3vr2c9g712hs1rbqmsvwwbl3-rebar3-3.24.0/bin/rebar3
> + MIX_REBAR3=/nix/store/d9r8459r3vr2c9g712hs1rbqmsvwwbl3-rebar3-3.24.0/bin/rebar3
> + exec /nix/store/frmyslc7ayg3afpcsnd5whn0zrhsrs6k-treefmt-2.0.5/bin/treefmt --config-file=/nix/store/6g4inxx2hj41cjgk81lazjp52sk4wvak-treefmt.toml --tree-root-file=VERSION --no-cache
> mix-format error:
> Mix requires the Hex package manager to fetch dependencies
> Shall I install Hex? (if running non-interactively, use "mix local.hex --force") [Yn] ** (Mix) Could not find an SCM for dependency :castore from TeslaMate.MixProject
>
> treefmt: error: formatting failure: formatter '/nix/store/r2bjg78m7b7s75lwcgn69svk010j3sqb-elixir-1.17.3/bin/mix' with options '[format]' failed to apply: exit status 1
For full logs, run 'nix log /nix/store/mqcdlp6v87bdbvqja2r0jx3ix367wvpk-treefmt-check.drv'.
error: build of '/nix/store/iqfayabdc3qppi8xhdwy9g20nw6am7zs-vm-test-run-teslamate.drv', '/nix/store/mqcdlp6v87bdbvqja2r0jx3ix367wvpk-treefmt-check.drv' failed
Note that treefmt gets called multiple times also, the wrapper script needs to be able to cope.
Type of installation
Manual
Version
master
The text was updated successfully, but these errors were encountered:
Is there an existing issue for this?
What happened?
This was disabled because we couldn't get it to work.
Expected Behavior
No response
Steps To Reproduce
No response
Relevant log output
Screenshots
No response
Additional data
I think we need to fix with a wrapper script, something like:
Unfortunately this currently fails, it is looking for
local.hex
. Which hasn't been packaged in nix. I think local.hex just allows downloading other things, probably not what we want in nix.We cannot download stuff in the wrapper script, being part of a nix build it doesn't have Internet access.
At this stage out of time to try to comprehend this, but thought I should document my findings.
Note that treefmt gets called multiple times also, the wrapper script needs to be able to cope.
Type of installation
Manual
Version
master
The text was updated successfully, but these errors were encountered: