mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-29 06:22:51 -06:00
Adding the prototype GF editor for simple multilingual grammars
This commit is contained in:
77
src/editor/simple/upload.cgi
Normal file
77
src/editor/simple/upload.cgi
Normal file
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
|
||||
bin=/Users/hallgren/www/bin
|
||||
|
||||
charset="UTF-8"
|
||||
AUTOHEADER=no
|
||||
|
||||
. $bin/cgistart.sh
|
||||
PATH=$PATH:/Users/hallgren/.cabal/bin
|
||||
export LC_CTYPE="UTF-8"
|
||||
style_url="editor.css"
|
||||
|
||||
make_dir() {
|
||||
dir="$(mktemp -d ../tmp/gfse.XXXXXXXX)"
|
||||
# chmod a+rxw "$dir"
|
||||
chmod a+rx "$dir"
|
||||
ln "$dir/../../grammars/grammars.cgi" "$dir"
|
||||
}
|
||||
|
||||
|
||||
check_grammar() {
|
||||
pagestart "Uploaded"
|
||||
# echo "$PATH_INFO"
|
||||
files=$(Reg from-url | LC_CTYPE=sv_SE.ISO8859-1 ./save "$dir")
|
||||
cd $dir
|
||||
begin pre
|
||||
if gf -s -make $files 2>&1 ; then
|
||||
end
|
||||
h3 OK
|
||||
begin ul
|
||||
[ -z "$minibar" ] || { li; link "$minibar?/tmp/${dir##*/}/" "Minibar"; }
|
||||
[ -z "$gfshell" ] || { li; link "$gfshell?dir=${dir##*/}" "GF Shell"; }
|
||||
end
|
||||
begin pre
|
||||
ls -l *.pgf
|
||||
else
|
||||
end
|
||||
begin h3 class=error_message; echo Error; end
|
||||
for f in *.gf ; do
|
||||
h4 "$f"
|
||||
begin pre class=plain
|
||||
cat -n "$f"
|
||||
end
|
||||
done
|
||||
fi
|
||||
hr
|
||||
date
|
||||
# begin pre ; env
|
||||
endall
|
||||
}
|
||||
|
||||
case "$REQUEST_METHOD" in
|
||||
POST)
|
||||
case "$PATH_INFO" in
|
||||
/tmp/gfse.*)
|
||||
style_url="../../$style_url"
|
||||
dir="../tmp/${PATH_INFO##*/}"
|
||||
check_grammar
|
||||
;;
|
||||
*)
|
||||
make_dir
|
||||
check_grammar
|
||||
rm -rf "$dir"
|
||||
esac
|
||||
;;
|
||||
GET)
|
||||
case "$QUERY_STRING" in
|
||||
dir) make_dir
|
||||
ContentType="text/plain"
|
||||
cgiheaders
|
||||
echo "/tmp/${dir##*/}"
|
||||
;;
|
||||
*) pagestart "Error"
|
||||
echo "What do you want?"
|
||||
endall
|
||||
esac
|
||||
esac
|
||||
Reference in New Issue
Block a user