diff options
Diffstat (limited to 'export-firefox-bookmarks')
-rwxr-xr-x | export-firefox-bookmarks | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/export-firefox-bookmarks b/export-firefox-bookmarks index 8347211..45878dd 100755 --- a/export-firefox-bookmarks +++ b/export-firefox-bookmarks @@ -4,10 +4,37 @@ # Based on https://github.com/pirate/ArchiveBox/blob/master/bin/export_browser_history.sh # -# Base folder to work on -BASEDIR="$HOME/.mozilla" +# 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 -find $BASEDIR -name places.sqlite | while read file; do \ - sqlite3 $file "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" -done +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 |