aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuchen Pei <hi@ypei.me>2022-11-23 10:41:07 +1100
committerYuchen Pei <hi@ypei.me>2022-11-23 10:41:07 +1100
commit2fe810118c6068abc3cc7e876faef7e1213ecb76 (patch)
tree337bedaa7dcd2e235fdd3eb53dd48db2019d2d09
parent55d1e6c9a9f41394a37b48c42f65cc02274b9ab7 (diff)
adding librejs
-rw-r--r--.gitignore3
-rw-r--r--app/Main.hs11
-rwxr-xr-xbuild.sh7
-rw-r--r--librejserver.cabal2
4 files changed, 19 insertions, 4 deletions
diff --git a/.gitignore b/.gitignore
index dc18e40..7f891d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
*~
-dist-newstyle \ No newline at end of file
+dist-newstyle
+librejs \ No newline at end of file
diff --git a/app/Main.hs b/app/Main.hs
index 94da226..fa816ae 100644
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -16,6 +16,7 @@ import Servant ( (:>)
, Server
, serve
)
+import System.Process ( readProcess )
type API = GetPageCompliance
@@ -25,10 +26,16 @@ server :: Server API
server = getPageCompliance
getPageCompliance :: [Text] -> Handler Text
-getPageCompliance url =
+getPageCompliance urlPieces =
return
$ "You have requested librejs-compliance info for "
- <> T.intercalate "/" url
+ <> T.intercalate "/" urlPieces
+
+runCompliance :: Text -> IO Text
+runCompliance url = T.pack <$> readProcess
+ "bin/node"
+ ["~/source/librejserver/librejs/utilities/compliance.js", T.unpack url]
+ ""
app :: Application
app = serve api server
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..ff62f95
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,7 @@
+set -eux
+
+git clone https://git.savannah.gnu.org/git/librejs.git
+cd librejs
+npm install acorn@"<=8.7.1" jssha browserify selenium-webdriver geckodriver
+export PATH=$PATH:./node_modules/.bin
+./build.sh
diff --git a/librejserver.cabal b/librejserver.cabal
index 581d36f..3048390 100644
--- a/librejserver.cabal
+++ b/librejserver.cabal
@@ -11,6 +11,6 @@ extra-source-files: CHANGELOG.md
executable librejserver
main-is: Main.hs
- build-depends: base, servant-server, text, warp
+ build-depends: base, servant-server, text, warp, process
hs-source-dirs: app
default-language: Haskell2010