From e10e019f9f6f94b3267f262a1888118acb82b6e9 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Sat, 12 Nov 2011 16:18:52 -0800 Subject: [PATCH] webbrowser: open url's in your webbrowser. --- extra/webbrowser/authors.txt | 1 + extra/webbrowser/linux/linux.factor | 13 +++++++++++++ extra/webbrowser/linux/platforms.txt | 1 + extra/webbrowser/macosx/macosx.factor | 15 +++++++++++++++ extra/webbrowser/macosx/platforms.txt | 1 + extra/webbrowser/summary.txt | 1 + extra/webbrowser/webbrowser-docs.factor | 19 +++++++++++++++++++ extra/webbrowser/webbrowser.factor | 18 ++++++++++++++++++ extra/webbrowser/windows/platforms.txt | 1 + extra/webbrowser/windows/windows.factor | 13 +++++++++++++ 10 files changed, 83 insertions(+) create mode 100644 extra/webbrowser/authors.txt create mode 100644 extra/webbrowser/linux/linux.factor create mode 100644 extra/webbrowser/linux/platforms.txt create mode 100644 extra/webbrowser/macosx/macosx.factor create mode 100644 extra/webbrowser/macosx/platforms.txt create mode 100644 extra/webbrowser/summary.txt create mode 100644 extra/webbrowser/webbrowser-docs.factor create mode 100644 extra/webbrowser/webbrowser.factor create mode 100644 extra/webbrowser/windows/platforms.txt create mode 100644 extra/webbrowser/windows/windows.factor diff --git a/extra/webbrowser/authors.txt b/extra/webbrowser/authors.txt new file mode 100644 index 0000000000..e091bb8164 --- /dev/null +++ b/extra/webbrowser/authors.txt @@ -0,0 +1 @@ +John Benediktsson diff --git a/extra/webbrowser/linux/linux.factor b/extra/webbrowser/linux/linux.factor new file mode 100644 index 0000000000..5a9a8ae386 --- /dev/null +++ b/extra/webbrowser/linux/linux.factor @@ -0,0 +1,13 @@ +! Copyright (C) 2011 John Benediktsson +! See http://factorcode.org/license.txt for BSD license + +USING: formatting io.launcher present system urls webbrowser ; + +IN: webbrowser.unix + +M: unix open-file ( path -- ) + "gnome-open \"%s\"" sprintf try-process ; + +M: unix open-url ( url -- ) + >url present open-file ; + diff --git a/extra/webbrowser/linux/platforms.txt b/extra/webbrowser/linux/platforms.txt new file mode 100644 index 0000000000..a08e1f35eb --- /dev/null +++ b/extra/webbrowser/linux/platforms.txt @@ -0,0 +1 @@ +linux diff --git a/extra/webbrowser/macosx/macosx.factor b/extra/webbrowser/macosx/macosx.factor new file mode 100644 index 0000000000..a510c7c764 --- /dev/null +++ b/extra/webbrowser/macosx/macosx.factor @@ -0,0 +1,15 @@ +! Copyright (C) 2011 John Benediktsson +! See http://factorcode.org/license.txt for BSD license + +USING: formatting io.encodings.ascii io.launcher present system +urls webbrowser ; + +IN: webbrowser.macosx + +M: macosx open-file ( path -- ) + "open \"%s\"" sprintf try-process ; + +M: macosx open-url ( url -- ) + >url present "osascript" ascii [ + "open location \"%s\"" printf + ] with-process-writer ; diff --git a/extra/webbrowser/macosx/platforms.txt b/extra/webbrowser/macosx/platforms.txt new file mode 100644 index 0000000000..6e806f449e --- /dev/null +++ b/extra/webbrowser/macosx/platforms.txt @@ -0,0 +1 @@ +macosx diff --git a/extra/webbrowser/summary.txt b/extra/webbrowser/summary.txt new file mode 100644 index 0000000000..65e60aeeca --- /dev/null +++ b/extra/webbrowser/summary.txt @@ -0,0 +1 @@ +Open URLs in your web browser diff --git a/extra/webbrowser/webbrowser-docs.factor b/extra/webbrowser/webbrowser-docs.factor new file mode 100644 index 0000000000..264de1de05 --- /dev/null +++ b/extra/webbrowser/webbrowser-docs.factor @@ -0,0 +1,19 @@ +! Copyright (C) 2011 John Benediktsson +! See http://factorcode.org/license.txt for BSD license + +USING: help.markup help.syntax strings webbrowser ; + +IN: webbrowser + +HELP: open-file +{ $values { "path" string } } +{ $description + "Open a specified file or directory using the default " + "application, similar to double-clicking the file's icon." +} ; + +HELP: open-url +{ $values { "url" string } } +{ $description + "Open a specified url in the default web browser." +} ; diff --git a/extra/webbrowser/webbrowser.factor b/extra/webbrowser/webbrowser.factor new file mode 100644 index 0000000000..33160ca782 --- /dev/null +++ b/extra/webbrowser/webbrowser.factor @@ -0,0 +1,18 @@ +! Copyright (C) 2011 John Benediktsson +! See http://factorcode.org/license.txt for BSD license + +USING: combinators system ui.operations urls vocabs ; + +IN: webbrowser + +HOOK: open-file os ( path -- ) + +HOOK: open-url os ( url -- ) + +{ + { [ os macosx? ] [ "webbrowser.macosx" ] } + { [ os linux? ] [ "webbrowser.linux" ] } + { [ os windows? ] [ "webbrowser.windows" ] } +} cond require + +[ url? ] \ open-url H{ } define-operation diff --git a/extra/webbrowser/windows/platforms.txt b/extra/webbrowser/windows/platforms.txt new file mode 100644 index 0000000000..8e1a55995e --- /dev/null +++ b/extra/webbrowser/windows/platforms.txt @@ -0,0 +1 @@ +windows diff --git a/extra/webbrowser/windows/windows.factor b/extra/webbrowser/windows/windows.factor new file mode 100644 index 0000000000..f7cdd481db --- /dev/null +++ b/extra/webbrowser/windows/windows.factor @@ -0,0 +1,13 @@ +! Copyright (C) 2011 John Benediktsson +! See http://factorcode.org/license.txt for BSD license + +USING: present urls webbrowser windows.shell32 windows.user32 ; + +IN: webbrowser.windows + +M: windows open-file ( path -- ) + [ f "open" ] dip f f SW_SHOWNORMAL ShellExecute drop ; + +M: windows open-url ( url -- ) + >url present open-file ; +