forked from lix-project/lix
Merge pull request #3551 from mkenigs/rename-commands
Rename nix app and nix run commands
This commit is contained in:
commit
0038bbafde
|
@ -57,11 +57,11 @@ struct RunCommon : virtual Command
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CmdRun : InstallablesCommand, RunCommon, MixEnvironment
|
struct CmdShell : InstallablesCommand, RunCommon, MixEnvironment
|
||||||
{
|
{
|
||||||
std::vector<std::string> command = { getEnv("SHELL").value_or("bash") };
|
std::vector<std::string> command = { getEnv("SHELL").value_or("bash") };
|
||||||
|
|
||||||
CmdRun()
|
CmdShell()
|
||||||
{
|
{
|
||||||
mkFlag()
|
mkFlag()
|
||||||
.longName("command")
|
.longName("command")
|
||||||
|
@ -85,19 +85,19 @@ struct CmdRun : InstallablesCommand, RunCommon, MixEnvironment
|
||||||
return {
|
return {
|
||||||
Example{
|
Example{
|
||||||
"To start a shell providing GNU Hello from NixOS 17.03:",
|
"To start a shell providing GNU Hello from NixOS 17.03:",
|
||||||
"nix run -f channel:nixos-17.03 hello"
|
"nix shell -f channel:nixos-17.03 hello"
|
||||||
},
|
},
|
||||||
Example{
|
Example{
|
||||||
"To start a shell providing youtube-dl from your 'nixpkgs' channel:",
|
"To start a shell providing youtube-dl from your 'nixpkgs' channel:",
|
||||||
"nix run nixpkgs#youtube-dl"
|
"nix shell nixpkgs#youtube-dl"
|
||||||
},
|
},
|
||||||
Example{
|
Example{
|
||||||
"To run GNU Hello:",
|
"To run GNU Hello:",
|
||||||
"nix run nixpkgs#hello -c hello --greeting 'Hi everybody!'"
|
"nix shell nixpkgs#hello -c hello --greeting 'Hi everybody!'"
|
||||||
},
|
},
|
||||||
Example{
|
Example{
|
||||||
"To run GNU Hello in a chroot store:",
|
"To run GNU Hello in a chroot store:",
|
||||||
"nix run --store ~/my-nix nixpkgs#hello -c hello"
|
"nix shell --store ~/my-nix nixpkgs#hello -c hello"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -141,13 +141,13 @@ struct CmdRun : InstallablesCommand, RunCommon, MixEnvironment
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static auto r1 = registerCommand<CmdRun>("run");
|
static auto r1 = registerCommand<CmdShell>("shell");
|
||||||
|
|
||||||
struct CmdApp : InstallableCommand, RunCommon
|
struct CmdRun : InstallableCommand, RunCommon
|
||||||
{
|
{
|
||||||
std::vector<std::string> args;
|
std::vector<std::string> args;
|
||||||
|
|
||||||
CmdApp()
|
CmdRun()
|
||||||
{
|
{
|
||||||
expectArgs("args", &args);
|
expectArgs("args", &args);
|
||||||
}
|
}
|
||||||
|
@ -162,7 +162,7 @@ struct CmdApp : InstallableCommand, RunCommon
|
||||||
return {
|
return {
|
||||||
Example{
|
Example{
|
||||||
"To run Blender:",
|
"To run Blender:",
|
||||||
"nix app blender-bin"
|
"nix run blender-bin"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -192,7 +192,7 @@ struct CmdApp : InstallableCommand, RunCommon
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static auto r2 = registerCommand<CmdApp>("app");
|
static auto r2 = registerCommand<CmdRun>("run");
|
||||||
|
|
||||||
void chrootHelper(int argc, char * * argv)
|
void chrootHelper(int argc, char * * argv)
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,7 +21,7 @@ nix_tests = \
|
||||||
fetchGitSubmodules.sh \
|
fetchGitSubmodules.sh \
|
||||||
fetchMercurial.sh \
|
fetchMercurial.sh \
|
||||||
signing.sh \
|
signing.sh \
|
||||||
run.sh \
|
shell.sh \
|
||||||
brotli.sh \
|
brotli.sh \
|
||||||
pure-eval.sh \
|
pure-eval.sh \
|
||||||
check.sh \
|
check.sh \
|
||||||
|
|
28
tests/run.sh
28
tests/run.sh
|
@ -1,28 +0,0 @@
|
||||||
source common.sh
|
|
||||||
|
|
||||||
clearStore
|
|
||||||
clearCache
|
|
||||||
|
|
||||||
nix run -f run.nix hello -c hello | grep 'Hello World'
|
|
||||||
nix run -f run.nix hello -c hello NixOS | grep 'Hello NixOS'
|
|
||||||
|
|
||||||
if ! canUseSandbox; then exit; fi
|
|
||||||
|
|
||||||
chmod -R u+w $TEST_ROOT/store0 || true
|
|
||||||
rm -rf $TEST_ROOT/store0
|
|
||||||
|
|
||||||
clearStore
|
|
||||||
|
|
||||||
path=$(nix eval --raw -f run.nix hello)
|
|
||||||
|
|
||||||
# Note: we need the sandbox paths to ensure that the shell is
|
|
||||||
# visible in the sandbox.
|
|
||||||
nix run --sandbox-build-dir /build-tmp \
|
|
||||||
--sandbox-paths '/nix? /bin? /lib? /lib64? /usr?' \
|
|
||||||
--store $TEST_ROOT/store0 -f run.nix hello -c hello | grep 'Hello World'
|
|
||||||
|
|
||||||
path2=$(nix run --sandbox-paths '/nix? /bin? /lib? /lib64? /usr?' --store $TEST_ROOT/store0 -f run.nix hello -c $SHELL -c 'type -p hello')
|
|
||||||
|
|
||||||
[[ $path/bin/hello = $path2 ]]
|
|
||||||
|
|
||||||
[[ -e $TEST_ROOT/store0/nix/store/$(basename $path)/bin/hello ]]
|
|
28
tests/shell.sh
Normal file
28
tests/shell.sh
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
source common.sh
|
||||||
|
|
||||||
|
clearStore
|
||||||
|
clearCache
|
||||||
|
|
||||||
|
nix shell -f shell-hello.nix hello -c hello | grep 'Hello World'
|
||||||
|
nix shell -f shell-hello.nix hello -c hello NixOS | grep 'Hello NixOS'
|
||||||
|
|
||||||
|
if ! canUseSandbox; then exit; fi
|
||||||
|
|
||||||
|
chmod -R u+w $TEST_ROOT/store0 || true
|
||||||
|
rm -rf $TEST_ROOT/store0
|
||||||
|
|
||||||
|
clearStore
|
||||||
|
|
||||||
|
path=$(nix eval --raw -f shell-hello.nix hello)
|
||||||
|
|
||||||
|
# Note: we need the sandbox paths to ensure that the shell is
|
||||||
|
# visible in the sandbox.
|
||||||
|
nix shell --sandbox-build-dir /build-tmp \
|
||||||
|
--sandbox-paths '/nix? /bin? /lib? /lib64? /usr?' \
|
||||||
|
--store $TEST_ROOT/store0 -f shell-hello.nix hello -c hello | grep 'Hello World'
|
||||||
|
|
||||||
|
path2=$(nix shell --sandbox-paths '/nix? /bin? /lib? /lib64? /usr?' --store $TEST_ROOT/store0 -f shell-hello.nix hello -c $SHELL -c 'type -p hello')
|
||||||
|
|
||||||
|
[[ $path/bin/hello = $path2 ]]
|
||||||
|
|
||||||
|
[[ -e $TEST_ROOT/store0/nix/store/$(basename $path)/bin/hello ]]
|
Loading…
Reference in a new issue