fix: resolve scrape-recipe script path via PATH then fallback to scripts/
Build and Deploy / build-and-deploy (push) Successful in 1m20s
Build and Deploy / build-and-deploy (push) Successful in 1m20s
This commit is contained in:
+13
-2
@@ -29,7 +29,7 @@ import Data.Time.Clock (diffUTCTime, getCurrentTime)
|
|||||||
|
|
||||||
import qualified Network.HTTP.Types as HTTP
|
import qualified Network.HTTP.Types as HTTP
|
||||||
import qualified Network.Wai as Wai
|
import qualified Network.Wai as Wai
|
||||||
import System.Directory (doesFileExist, makeAbsolute)
|
import System.Directory (doesFileExist, findExecutable, makeAbsolute)
|
||||||
import System.FSNotify (
|
import System.FSNotify (
|
||||||
Event (..),
|
Event (..),
|
||||||
EventIsDirectory (..),
|
EventIsDirectory (..),
|
||||||
@@ -227,13 +227,24 @@ parseFormBody body =
|
|||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
urldecode = T.pack . Html.urlDecode . T.replace "+" " "
|
urldecode = T.pack . Html.urlDecode . T.replace "+" " "
|
||||||
|
|
||||||
|
-- | Locate the scrape-recipe script: check PATH first, then relative to project.
|
||||||
|
findScrapeScript :: IO FilePath
|
||||||
|
findScrapeScript = do
|
||||||
|
-- In production Docker, the script is at /usr/local/bin/scrape-recipe (on PATH).
|
||||||
|
-- In development from the project root, it is at scripts/scrape-recipe.
|
||||||
|
mPath <- findExecutable "scrape-recipe"
|
||||||
|
case mPath of
|
||||||
|
Just p -> pure p
|
||||||
|
Nothing -> pure "scripts/scrape-recipe"
|
||||||
|
|
||||||
-- | Run the full import pipeline: scrape -> parse -> convert -> render -> save.
|
-- | Run the full import pipeline: scrape -> parse -> convert -> render -> save.
|
||||||
runImportPipeline :: FilePath -> Text -> IO (Either Html.ImportError FilePath)
|
runImportPipeline :: FilePath -> Text -> IO (Either Html.ImportError FilePath)
|
||||||
runImportPipeline recipeDir url = do
|
runImportPipeline recipeDir url = do
|
||||||
-- Step 1: scrape the URL
|
-- Step 1: scrape the URL
|
||||||
|
script <- findScrapeScript
|
||||||
(exitCode, stdout, stderr) <-
|
(exitCode, stdout, stderr) <-
|
||||||
readProcessWithExitCode
|
readProcessWithExitCode
|
||||||
"scripts/scrape-recipe"
|
script
|
||||||
["--pretty", T.unpack url]
|
["--pretty", T.unpack url]
|
||||||
""
|
""
|
||||||
case exitCode of
|
case exitCode of
|
||||||
|
|||||||
Reference in New Issue
Block a user