NixOS / nixops

NixOps is a tool for deploying to NixOS machines in a network or cloud.
https://nixos.org/nixops
GNU Lesser General Public License v3.0
1.84k stars 363 forks source link

deployment.keys with file that starts with dot does not work #609

Open rbvermaa opened 7 years ago

rbvermaa commented 7 years ago

It will fail in the NixOS system-units derivation with a weird basename error (due to shell wildcard usage).

building path(s) ‘/nix/store/casnpy7qwyfiw5dm038k5l5cric7sn5k-system-units’
basename: missing operand
Try 'basename --help' for more information.
builder for ‘/nix/store/4fl3nmyysvzibsvyfpn21q1vl6fyg2hb-system-units.drv’ failed with exit code 1
datafoo commented 1 year ago

This issue still exists on NixOps 2.0.0-pre-5013072.

For information, my use case is to deploy a .pgpass file.

$ nixops --version
NixOps 2.0.0-pre-5013072
$ nixops deploy -d mydeployment
building all machine configurations...
trace: warning: literalExample is deprecated, use literalExpression instead, or use literalDocBook for a non-Nix description.
these 8 derivations will be built:
  /nix/store/06qqgjs2p9gkclcj74ibry630k5rkjpd-unit-script-.pgpass-key-start.drv
  /nix/store/c2gw2gx5kg4h95jsdv00bfxg07iakndy-setup-keys.sh.drv
  /nix/store/naa8vzhrdnq8x9jx71p43ilib8hcb6k6-unit-script-.pgpass-key-pre-start.drv
  /nix/store/fbk61dyxvnkz93ia4pxjls4a608yr2fp-unit-.pgpass-key.service.drv
  /nix/store/vjs80kqizmxshhmgwgcvgl0y248w2ah4-system-units.drv
  /nix/store/s4mm1c4fmd7anrrzwjza79l9c9as3jni-etc.drv
  /nix/store/jqkzhkc4gd96i68hcrsmc16z90f7vn5y-nixos-system-mymachine-22.11.20230209.7010ce2.drv
  /nix/store/3373zdkqyxpwlm667x4j0iglxwvsfxfy-nixops-machines.drv
building '/nix/store/c2gw2gx5kg4h95jsdv00bfxg07iakndy-setup-keys.sh.drv'...
building '/nix/store/naa8vzhrdnq8x9jx71p43ilib8hcb6k6-unit-script-.pgpass-key-pre-start.drv'...
building '/nix/store/06qqgjs2p9gkclcj74ibry630k5rkjpd-unit-script-.pgpass-key-start.drv'...
building '/nix/store/fbk61dyxvnkz93ia4pxjls4a608yr2fp-unit-.pgpass-key.service.drv'...
building '/nix/store/vjs80kqizmxshhmgwgcvgl0y248w2ah4-system-units.drv'...
basename: missing operand
Try 'basename --help' for more information.
error: builder for '/nix/store/vjs80kqizmxshhmgwgcvgl0y248w2ah4-system-units.drv' failed with exit code 1;
       last 2 log lines:
       > basename: missing operand
       > Try 'basename --help' for more information.
       For full logs, run 'nix log /nix/store/vjs80kqizmxshhmgwgcvgl0y248w2ah4-system-units.drv'.
error: 1 dependencies of derivation '/nix/store/s4mm1c4fmd7anrrzwjza79l9c9as3jni-etc.drv' failed to build
error: 1 dependencies of derivation '/nix/store/jqkzhkc4gd96i68hcrsmc16z90f7vn5y-nixos-system-mymachine-22.11.20230209.7010ce2.drv' failed to build
error: 1 dependencies of derivation '/nix/store/3373zdkqyxpwlm667x4j0iglxwvsfxfy-nixops-machines.drv' failed to build
Traceback (most recent call last):
  File "/nix/store/a8si975w64cy2jv54dld9acpcphvskvv-python3-3.10.9-env/lib/python3.10/site-packages/nixops/deployment.py", line 784, in build_configs
    configs_path = subprocess.check_output(
  File "/nix/store/abax98471z8fshv4b9p46bkh3lxmpy0z-python3-3.10.9/lib/python3.10/subprocess.py", line 421, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/nix/store/abax98471z8fshv4b9p46bkh3lxmpy0z-python3-3.10.9/lib/python3.10/subprocess.py", line 526, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['nix-store', '-r', '/nix/store/3373zdkqyxpwlm667x4j0iglxwvsfxfy-nixops-machines.drv']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/nix/store/l9gypzbkqxyfvhkl796d36bvkx4x5iac-python3.10-nixops-2.0.0-pre-5013072/bin/.nixops-wrapped", line 9, in <module>
    sys.exit(main())
  File "/nix/store/a8si975w64cy2jv54dld9acpcphvskvv-python3-3.10.9-env/lib/python3.10/site-packages/nixops/__main__.py", line 56, in main
    args.op(args)
  File "/nix/store/a8si975w64cy2jv54dld9acpcphvskvv-python3-3.10.9-env/lib/python3.10/site-packages/nixops/script_defs.py", line 715, in op_deploy
    depl.deploy(
  File "/nix/store/a8si975w64cy2jv54dld9acpcphvskvv-python3-3.10.9-env/lib/python3.10/site-packages/nixops/deployment.py", line 1365, in deploy
    self.run_with_notify("deploy", lambda: self._deploy(**kwargs))
  File "/nix/store/a8si975w64cy2jv54dld9acpcphvskvv-python3-3.10.9-env/lib/python3.10/site-packages/nixops/deployment.py", line 1354, in run_with_notify
    f()
  File "/nix/store/a8si975w64cy2jv54dld9acpcphvskvv-python3-3.10.9-env/lib/python3.10/site-packages/nixops/deployment.py", line 1365, in <lambda>
    self.run_with_notify("deploy", lambda: self._deploy(**kwargs))
  File "/nix/store/a8si975w64cy2jv54dld9acpcphvskvv-python3-3.10.9-env/lib/python3.10/site-packages/nixops/deployment.py", line 1280, in _deploy
    self.configs_path = self.build_configs(
  File "/nix/store/a8si975w64cy2jv54dld9acpcphvskvv-python3-3.10.9-env/lib/python3.10/site-packages/nixops/deployment.py", line 791, in build_configs
    raise Exception("unable to build all machine configurations")
Exception: unable to build all machine configurations