From e52de73e8bc9a087e61db2cd5e77af61f78380f3 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Fri, 29 May 2020 21:49:21 -0400 Subject: allow binaries to be specified as absolute paths --- fsmgr.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fsmgr.hs b/fsmgr.hs index 1f5af37..313af26 100644 --- a/fsmgr.hs +++ b/fsmgr.hs @@ -84,7 +84,7 @@ buildRoot config@DiskImageConfig{..} finalOut = do {- 3. binaries -} let go b = do p <- fromMaybe (fail $ "not found in ${PATH}: " ++ b) <$> liftIO (pathLocate b) - cmd_ "cp -L" [p] [mountpoint "usr/local/bin" b] + cmd_ "cp -L" [p] [mountpoint "usr/local/bin" takeFileName b] in do forM_ (unpack <$> binaries) go forM_ (unpack <$> optionalBinaries) $ ignoreErrors . go @@ -302,7 +302,8 @@ head1 = lines >>> \case x:_ -> x pathLocate :: String -> IO (Maybe FilePath) -pathLocate c = (getEnv "SUDO_USER" >>=) $ fmap (validatePath . head1 . fromStdout) <$> \case +pathLocate c | elem '/' c = pure $ pure c +pathLocate c | True = (getEnv "SUDO_USER" >>=) $ fmap (validatePath . head1 . fromStdout) <$> \case "" -> cmd "which" [c] u -> do path <- fromStdout <$> cmd "su -" [u] "-c" ["printf %s \"$PATH\""] -- cgit v1.2.3