diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2024-08-20 20:42:26 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2024-08-20 20:42:26 -0300 |
commit | d1791e72e2e1442033cad2ad7ef1dd183562ddec (patch) | |
tree | 1a6f087ba2d77d6a7f69230da2ec8ba30c5b0f00 /export-firefox-bookmarks | |
download | utils-doc-d1791e72e2e1442033cad2ad7ef1dd183562ddec.tar.gz utils-doc-d1791e72e2e1442033cad2ad7ef1dd183562ddec.tar.bz2 |
Initial import
Diffstat (limited to 'export-firefox-bookmarks')
-rwxr-xr-x | export-firefox-bookmarks | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/export-firefox-bookmarks b/export-firefox-bookmarks new file mode 100755 index 0000000..45878dd --- /dev/null +++ b/export-firefox-bookmarks @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# +# Export Mozilla Firefox bookmarks. +# Based on https://github.com/pirate/ArchiveBox/blob/master/bin/export_browser_history.sh +# + +# Parameters +BASENAME="`basename $0`" +BASEDIR="$HOME/.mozilla/firefox" +PROFILES="$BASEDIR/profiles" +PROFILE="$1" +#SECTION="moz_${2:-bookmarks}" + +# Export from a single database +function export_firefox_bookmark { + sqlite3 $1 "SELECT \"[\" || group_concat(json_object('timestamp', b.dateAdded, 'description', b.title, 'href', f.url)) || \"]\" FROM moz_bookmarks AS b JOIN moz_places AS f ON f.id = b.fk" +} + +# Check +#if [ ! -e "$BASEDIR/profiles.ini" ]; then +# echo "$BASENAME: not found: $BASEDIR/profiles.ini" +# exit 1 +#fi + +#PROFILES="grep "^Name=" $BASEDIR/profiles.ini | cut -d = -f 2 | xargs" + +# There might be many places.sqlite on many profiles +if [ -z "$PROFILE" ]; then + find $BASEDIR -name places.sqlite | while read file; do \ + export_firefox_bookmark $file + done +else + # Assumption: when a $PROFILE is given, search at $PROFILES + if [ -e "$PROFILES/$PROFILE/places.sqlite" ]; then + export_firefox_bookmark $PROFILES/$PROFILE/places.sqlite + else + echo "$BASENAME: file not found: $PROFILES/$PROFILE/places.sqlite" + exit 1 + fi +fi |