diff options
Diffstat (limited to 'fsmgr')
-rwxr-xr-x | fsmgr | 21 |
1 files changed, 19 insertions, 2 deletions
@@ -1,8 +1,25 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | die() { printf 'Error: %s\n' "$*" >&2; exit 1; } | 2 | die() { printf 'Error: %s\n' "$*" >&2; exit 1; } |
3 | root=$(stack path --local-install-root) || die "subcommand failed: 'stack path'" | 3 | root=$(stack path --allow-different-user --local-install-root) || die "subcommand failed: 'stack path'" |
4 | bin=$root/bin/fsmgr | 4 | bin=$root/bin/fsmgr |
5 | [ "$SKIP_BUILD" ] || stack build | 5 | if [ "$SKIP_BUILD" ] |
6 | then | ||
7 | if ! bin=$(which fsmgr) | ||
8 | then | ||
9 | prev= | ||
10 | for bin in .stack-work/install/*/*/*/bin/fsmgr | ||
11 | do | ||
12 | if [ "$prev" ] && [ "$prev" -nt "$bin" ] | ||
13 | then | ||
14 | bin=$prev | ||
15 | else | ||
16 | prev=$bin | ||
17 | fi | ||
18 | done | ||
19 | fi | ||
20 | else | ||
21 | stack build | ||
22 | fi | ||
6 | case "$(id -u)" in | 23 | case "$(id -u)" in |
7 | 0) exec "$bin" "$@" ;; | 24 | 0) exec "$bin" "$@" ;; |
8 | *) exec sudo -- "$bin" "$@" ;; | 25 | *) exec sudo -- "$bin" "$@" ;; |