From 601c09f330c05fc9e8c0276e6b8ee66b24c2fd13 Mon Sep 17 00:00:00 2001 From: Suyash Mahar Date: Fri, 26 Nov 2021 13:59:06 -0800 Subject: [PATCH 1/4] Add PPA link to README --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index b8e99d0..7116c26 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,16 @@ Europa supports all the keyboard shortcuts for JupyterLab that you'd expect in a # Installation You can either grab a portable app for linux/windows or grab OS specific installer from the [releases](https://github.com/suyashmahar/europa/releases). +### Debian/Ubuntu + +``` +curl -s --compressed "https://europa-sources.suyashmahar.com/debian/KEY.gpg" | sudo apt-key add - +sudo curl -s --compressed -o /etc/apt/sources.list.d/europa.list "https://europa-sources.suyashmahar.com/debian/europa.list" +sudo apt update +sudo apt-get install europa +``` + + # Demo (YouTube) [![Europa Demo video](https://imgur.com/download/dyLvkW8/)](https://www.youtube.com/watch?v=Qg6RwUoB6G0) From 0ff0c1ef7bd5023bbfc6032972539762d545e85a Mon Sep 17 00:00:00 2001 From: Suyash Mahar Date: Sun, 19 Dec 2021 00:24:01 -0800 Subject: [PATCH 2/4] Add support for CLI --- README.md | 3 +- src/main.js | 72 ++++++++++++++++++++++++++++++++++++++++++++---- src/package.json | 1 - 3 files changed, 67 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 7116c26..f4193c6 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,7 @@ You can either grab a portable app for linux/windows or grab OS specific install ``` curl -s --compressed "https://europa-sources.suyashmahar.com/debian/KEY.gpg" | sudo apt-key add - sudo curl -s --compressed -o /etc/apt/sources.list.d/europa.list "https://europa-sources.suyashmahar.com/debian/europa.list" -sudo apt update -sudo apt-get install europa +sudo apt update && sudo apt-get install europa ``` diff --git a/src/main.js b/src/main.js index 16abbd8..6cc078f 100644 --- a/src/main.js +++ b/src/main.js @@ -25,7 +25,7 @@ const MAX_RECENT_ITEMS = 4 const SHORTCUT_SEND_URL = `/lab/api/settings/@jupyterlab/shortcuts-extension:shortcuts` const USER_AGENT_STR = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' const DRAW_FRAME = true -const VERSION_STRING = '1.0.0' +const VERSION_STRING = '1.1.0' /* Create all the data stores */ const recentUrlsDb = new RecentUrlsDB({ name: 'recent_urls' }) @@ -644,20 +644,76 @@ function addRecentURLListeners () { }) } +function printCLIHeader() { + console.log("Europa " + VERSION_STRING) +} + +function printCLIHelp(args, header, stderr) { + let log_obj + + if (stderr) { + log_obj = console.error + } else { + log_obj = console.log + } + + if (header) { + printCLIHeader() + log_obj("") + } + + log_obj("USAGE:\n\t" + args[0] + " [options]") + log_obj() + log_obj("OPTIONS:") + log_obj("\t-u,--url \tOpen a europa window for on start.") + log_obj("\t-v,--version \tPrint version number and exit.") + log_obj("\t-h,--help \tPrint this help message and exit.") + log_obj() + log_obj("OTHER:") + log_obj("\tCopyright (c) 2020-21 Europa Authors") + log_obj("\tReport bugs at: https://europa.suyashmahar.com/report-bugs") +} + +function printCLIVersion() { + printCLIHeader(); +} + /** * Parse command line arguments */ function parseCmdlineArgs() { let args = process.argv - console.log(args) - - for (let i = 0; i < args.length; i++) { - + let result = {'url': ''} + + for (let i = 1; i < args.length; i++) { + if (args[i] == "--help" || args[i] == "-h") { + printCLIHelp(args, true) + app.exit(0) + } else if (args[i] == "--version" || args[i] == "-v") { + printCLIVersion() + app.exit(0) + } else if (args[i] == "--url" || args[i] == "-u") { + if (args.length < i + 2) { + console.error("--url requires exactly one argument") + console.error() + printCLIHelp(args, false, true) + } + + result['url'] = args[i + 1] + i += 1 + } else { + console.error("Unknown argument '" + args[i] + "'") + console.error() + printCLIHelp(args, false, true) + app.exit(1) + } } + + return result } function main () { - parseCmdlineArgs() + let args = parseCmdlineArgs() fixASARPath() @@ -691,6 +747,10 @@ function main () { ipcMain.on('open-url', showEuropaBrowser) ipcMain.on('show-about-europa', e => showAboutDialog(e.sender)) ipcMain.on('dialog-result', (event, id, resp) => dialogRespTracker[id](resp)) + + if (args['url'] != "") { + showEuropaBrowser(null, args.url) + } } app.on('ready', main) diff --git a/src/package.json b/src/package.json index 1cddb83..cc12c6f 100644 --- a/src/package.json +++ b/src/package.json @@ -48,7 +48,6 @@ "rpm", "freebsd", "pacman", - "fedora", "zip", "tar.xz", "tar.gz" From 1bfdaed645db5fada3d64adf8d7c6e7c9b5d306a Mon Sep 17 00:00:00 2001 From: Suyash Mahar Date: Sun, 19 Dec 2021 00:25:18 -0800 Subject: [PATCH 3/4] Add README --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index f4193c6..0a9408c 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,17 @@ sudo curl -s --compressed -o /etc/apt/sources.list.d/europa.list "https://europa sudo apt update && sudo apt-get install europa ``` +## CLI +Europa supports a CLI interface: +``` +USAGE: + /tmp/.mount_europaZ88iLd/europa [options] + +OPTIONS: + -u,--url Open a europa window for on start. + -v,--version Print version number and exit. + -h,--help Print this help message and exit. +``` # Demo (YouTube) From a0ababdd2d1c4accd42707bd97740b18504322da Mon Sep 17 00:00:00 2001 From: Suyash Mahar Date: Sun, 19 Dec 2021 10:25:56 -0800 Subject: [PATCH 4/4] Bump to v1.1.0 --- src/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/package.json b/src/package.json index cc12c6f..3c3cf00 100644 --- a/src/package.json +++ b/src/package.json @@ -1,6 +1,6 @@ { "name": "europa", - "version": "1.0.0", + "version": "1.1.0", "description": "JupyterLab's Desktop client", "homepage": "europa.suyashmahar.com", "author": {