My favorites | Sign in
Project Logo
                
Search
for
Updated Oct 04, 2009 by ryan.m.wynn
Labels: Phase-Deploy
GoofsRelease072  

goofs-0.7.2 is available

goofs-0.7.2 adds support for google docs retrieval and update. This comes shortly after a long awaited fix for issue70 was committed with documentation. Please see the documents section for more details.

details

calendar backend supports:

picasa backend includes support for:

contact backend supports:

blogger backend supports:

documents backend supports:

words of warning

First, goofs is NOT an official google project. It is also a relatively young project. There is no guarantee that you will not lose some data inadvertently so I would highly recommend that you backup any important data before using goofs.

requirements

you can install the requirements as follows on opensuse

zypper in fuse java-1_5_0-sun

or like this on debain

aptitude install libfuse2 sun-java5-bin

know issues

I have had problems uploading images and documents when using sun's java 6 jre. The problem does not appear when using sun's java 5 jre. The problem seems to be that the java activation framework is bundled with java 6 and has not been updated with the fixes in the latest activation.jar (version 1.1.1). I created a ticket to address the issue at http://code.google.com/p/gdata-java-client/issues/detail?id=75&can=5.

I would suggest installing java 5 either through your package manager or from http://java.sun.com/products/archive/j2se/5.0_16/index.html

installation

Download the goofs binary and unpack it:

wget http://goofs.googlecode.com/files/goofs-0.7.2.tar.gz
tar -zxvf goofs-0.7.2.tar.gz

configuration

create a file in your home directory called .goofs.properties add the following 2 properties and save

username=yourusername@gmail.com
password=yourpassword

edit the file goofs-0.7.2/goofs-mount.sh to define:

add goofs-0.7.2 to your PATH

advanced configuration (optional)

You can customize some of the properties used throughout the application by overriding values in your ~/.goofs.properties file. You can turn services off completely by setting the enabled property to false. You can also provide your own strings for the names of some of the stock directories for a service. Finally you can set the interval at which folders are synchronized with the server (measured in milliseconds). The defaults values are shown below.

# blogger
goofs.blogger.enabled=true
goofs.blogger.blogs=blogs
goofs.blogger.comments=comments

# calendar
goofs.calendar.enabled=true
goofs.calendar.calendars=calendars
goofs.calendar.today=Today
goofs.calendar.next7=7_Days
goofs.calendar.next30=30_Days
goofs.calendar.when=when
goofs.calendar.recurrence=recurrence
goofs.calendar.where=where
goofs.calendar.summary=summary

# contacts
goofs.contacts.enabled=true
goofs.contacts.contacts=contacts
goofs.contacts.email=email
goofs.contacts.notes=notes
goofs.contacts.address=addresses

# photos
goofs.photos.enabled=true
goofs.photos.photos=photos
goofs.photos.public=public
goofs.photos.private=private

# documents
goofs.docs.enabled=true
goofs.docs.documents=documents
goofs.docs.wp.ext=odt
goofs.docs.spreadsheet.ext=ods
goofs.docs.presentation.ext=ppt

# synchronization
goofs.folder.synch.threshold=60000

running goofs

goofs-mount.sh /path/to/mount

umounting

fusermount -u /path/to/mount

working with calendars

mntpoint will contain a calendars folder which will contain your google calendars.

To view the events in the calendar named Ryan Wynn that occur in the next 24 hours you would

cd calendars/Ryan Wynn/Today
ls

or for the next 7 days...

cd calendars/Ryan Wynn/7_Days
ls

or the next 30 days...

cd calendars/Ryan Wynn/30_Days
ls

To search for events containing the string birthday you just create a directory named birthday under the calendar you want to search

cd calendars/Ryan Wynn
mkdir birthday
cd birthday
ls

To search for events within a date range you would create a folder named YYYYmmdd-YYYYmmdd, for example, 20080601-20080610

cd calendars/Ryan Wynn
mkdir 20080601-20080610
cd 20080601-20080610
ls

To create new events you use google's really handy quick-add feature.

cd calendars/Ryan Wynn
echo "Dinner at 7pm" > quick

You simply need to write a file named quick under one of your calendars. The rules for formatting quick add events can be found here

To delete events, you guessed it

cd calendars/Ryan Wynn
rm -rf Dinner

working with documents

mntpoint should contain a documents directory. This directory will contain your spreadsheets, wp documents, and presentations. You can create folders (optionally nested) to file your documents just as you would on the google documents website.

By default your google documents will be exported in these formats

goofs.docs.wp.ext=odt
goofs.docs.spreadsheet.ext=ods
goofs.docs.presentation.ext=ppt

If you want use a different default format for your documents just override the properties above in your ~/.goofs.properties file.

For example if you want CSV instead of ODS for your spreadsheets add the following to ~/.goofs.properties

goofs.docs.spreadsheet.ext=csv

To create a new folder

cd documents
mkdir "Stuff"

To create a new spreadsheet

cd Stuff
echo "1,2,3" > OneTwoThree.csv

Or use your favorite editor and save the file to the appropriate directory.

To remove a document

cd Stuff
rm OneTwoThree.csv

You can even change the format of a document on the fly. So if you rename a file but only change the extension the file contents will be re-exported from the server to your local machine in the format you specify.

So for example,

mv OneTwoThree.csv OneTwoThree.ods 

Would peform the rename but additionaly export the document again in ODS format.

working with blogs

mntpoint should contain a blogs directory. Within this directory you should see a list of all your blogs from blogger.

You need to create brand new blogs through the blogger web interface (you cannot create blogs through goofs). For some reason this interface is read-only at the moment.

However you can create new posts and comments through goofs. To create a new post cd into the blog directory.

cd blogs/Ryan\'s\ Blog/
mkdir "Goofs 0.7.2 Released Today"

This will create a new post to the blog named Ryan's Blog. The new post will have a title "Goofs 0.7.2 Release Today". Now to add content to this blog entry...

cd Goofs\ 0.7.2\ Released\ Today/
echo "Please download it from <a href='http://goofs.googlecode.com/files/goofs-0.7.2.tar.gz'>goofs.googlecode.com</a>" > content

To change the title of a post use the mv command

mv Goofs\ 0.7.2\ Released\ Today/ "Goofs 0.7.2 Released Yesterday"

To comment on a blog entry you would do the following:

cd Goofs\ 0.7.2\ Released\ Today/
cd comments
echo "you did a great job" > new

You can name the comment file whatever you like, it will be renamed to a snippet of the contents of the comment. If you cat the file it will contain the entire comment.

You can delete posts and comments using the rm command...

cd blogs/Ryan\'s\ Blog/
rm -rf Goofs\ 0.7.2\ Released\ Today/

working with contacts

mntpoint should contain a contacts directory. This directory will hold up to 1000 of your google contacts. Any changes you make on the filesystem will be reflected when you log in to Gmail (with the exception of the contact's photo which is currently read-only).

To create a new contact cd into the contacts directory and then

mkdir Christina

Now you can cd into that directory and edit attributes associated with Christina.

cd Christina
echo "a wonderful girl" > notes
cd email
echo "chrissy@home.org" > home
echo "chrissy@work.org" > work
echo "chrissy@xyz.org" > other
cd ../addresses
echo "123 Some street Springfield, MO 12345" > home
echo "234 Another Dr. Springfield, MO 12345" > work
echo "999 Spring Terrace, MO 12345" > other

To rename a contact

cd contacts
mv Christina Chrissy

To delete a Contact

cd contacts
rm -rf Chrissy

working with photos

mntpoint should also contain a photos directory. Inside photos you will find 2 more directories, namely public and private. Your shared picasa albums go into public and your private albums go into private.

goofs will immediately begin synching the local filesystem with your existing picasa photos. You may have to wait a couple seconds for albums and photos to start showing up.

to create a new album you would simply create a new folder under private or public. to upload photos to the album you would cp or save images directly under the album directory. you can only save the following types of images: .bmp, .gif, .png, .jpg, and .jpeg.

to move photos between albums you would simply use the mv command.

cd photos/public/Album1
mv should_be_in_album2.jpg ../Album2

deleting albums and photos is as easy as using the rmdir and rm commands

rm photos/public/Album1/*
rmdir photos/public/Album1

Comment by pivich1, May 26, 2009

After I install goofs-0.7.2.tar.gz in my Gentoo system, I try to start command "goofs-mount.sh /path/to/mount" and get mistake

goofs-mount.sh /mnt/google/ 27.05.2009 0:00:54 goofs.fs.GoofsFS main INFO: exiting Exception in thread "main" java.lang.UnsatisfiedLinkError?: javafs (Not found in java.library.path)

at java.lang.ClassLoader?.loadLibraryWithPath(ClassLoader?.java:986) at java.lang.ClassLoader?.loadLibraryWithClassLoader(ClassLoader?.java:950) at java.lang.System.loadLibrary(System.java:453) at fuse.FuseMount?.<clinit>(FuseMount?.java:26) at java.lang.J9VMInternals.initializeImpl(Native Method) at java.lang.J9VMInternals.initialize(J9VMInternals.java:196) at goofs.fs.GoofsFS.main(GoofsFS.java:338)

Please help me. What this bug means?

Comment by ryan.m.wynn, May 26, 2009

pivich1: what version of the fuse library have you installed? Have you edited goofs-mount.sh as outlined above in the section "configuration"?

Comment by pivich1, May 26, 2009

I have installed next fuse: sys-fs/fuse

Latest version available: 2.7.4 Latest version installed: 2.7.4

I have edited goofs-mount.sh:

#!/bin/sh

##################################################################### # Adjust this to point to the home directory of a java 1.5 jre JAVA_HOME=/etc/java-config-2/current-system-vm

# Adjust this to point to the directory into which you extracted goofs.jar GOOFS_HOME=/home/pivich/goofs/ #####################################################################

$JAVA_HOME/bin/java -Djava.library.path=$GOOFS_HOME/jni/fuse-2.7.4 -jar $GOOFS_HOME/goofs.jar -f $1

My java is:

$env | grep -i java

MANPATH=/etc/java-config-2/current-system-vm/man:/usr/share/man/ru:/usr/share/man/ru.UTF-8:/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.18/man:/usr/share/gcc-data/i486-pc-linux-gnu/4.1.2/man:/usr/share/gcc-data/i686-pc-linux-gnu/4.3.2/man:/etc/java-config/system-vm/man/:/usr/kde/3.5/share/man:/usr/qt/3/doc/man:/opt/opera/share/man CONFIG_PROTECT_MASK=/etc/sandbox.d /etc/env.d/java/ /etc/udev/rules.d /etc/fonts/fonts.conf /etc/terminfo /etc/ca-certificates.conf /etc/revdep-rebuild JAVA_HOME=/etc/java-config-2/current-system-vm JAVAC=/etc/java-config-2/current-system-vm/bin/javac JDK_HOME=/etc/java-config-2/current-system-vm

$java-config --list-available-vms

The following VMs are available for generation-2: 1) IBM JDK 1.5.0.9 ibm-jdk-bin-1.5? 2) Sun JDK 1.5.0.17 sun-jdk-1.5? ) Sun JDK 1.6.0.13 sun-jdk-1.6?

Comment by pivich1, May 27, 2009

I solved my problem. I made wrong changes in goofs-mount.sh. It is just necessary to write "fuse-2.7.3" in next string "$JAVA_HOME/bin/java -Djava.library.path=$GOOFS_HOME/jni/fuse-2.7.3 -jar $GOOFS_HOME/goofs.jar -f $1", but i really wrote "fuse-2.7.4". In this case script goofs-mount.sh don't work, because there is not directory goofs-0.7.2/jni/fuse-2.7.4 with libjavafs.so file in your goofs-0.7.2.tar.gz. But I still have one question: when do you make libjavafs.so file for fuse-2.7.4.

Comment by ryan.m.wynn, May 27, 2009

pivich1: good to hear that you got it working. I should probably make an .so for 2.7.4 since it seems that is what is included in most distros now. I will also write up some instructions on how to build fuse-j from source against any version of fuse. It is pretty easy.

Comment by zend.karabanov, Aug 08, 2009

Классная штука! Разработчикам большое спасибо за ткую интересную разработку ;-)


Sign in to add a comment
Hosted by Google Code