2015年04月10日

GoogleDriveのローカル保存ディレクトリ名を任意の名前に・・・grive-toolsを改造する

表題のとうりです。

GoogleDriveを便利に使おうとするとやはり手間なく同期させたいところです。
私の場合はローカルに置いたファイルを出先などほかのPCで使いたいので。

さて問題は、griveをコマンドラインで操作する場合は問題ないんですが、guiで操作できるgrive-toolsの場合セットアップで強制的にローカルに"Google Drive"というディレクトリが作られることです。ディレクトリ名にスペースが入っているのでいろいろと問題が起こります。

今回直面したのは、GoogleDriveに置いたSQLiteデータベースファイル(実際にはローカルに同期したファイル)をodbc接続してLibreOfficeから読み書きしようとした時、ディレクトリ名にスペースが入ったことでodbcで接続されないというものです。
LibreOfficeからデータベースを登録しようとすると接続エラーになります。

さて、解決策は・・・
当然スペースの無いディレクトリ名であるべきですが、grive-toolsからは作れません。そのような選択肢は画面上にはありません。grive-toolsでセットアップすると勝手に作成されるディレクトリ名は"Google Drive"でスペースが入っています。
コマンドをつかうときや他のアプリケーションに渡すとき嫌なのでスペースのない任意のディレクトリ名で作成したい。

odbc接続の場合、odbc.iniに書いたディレクトリパスはダブルクォート、シングルクォートで囲ったがどちらもダメ。バックスラッシュも試したけどダメでした。

odbc.iniの一部
Database=/home/hoge/'Google Drive'/hogehoge.db


Google Driveというディレクトリ名がセットアップ時に作られるようgrive-setupというシェルスクリプトが書かれています。
ディレクトリ名をリネームしてもPCを再起動したりすると保存フォルダが無いと言われ再作成されます。あるいはgriveインジケータが動作しません。インジケータを再起動すると元のディレクトリ名で再作成しようとします。
 
そこで、
シェルスクリプト grive-setup を書き換える。

sudo leafpad /opt/thefanclub/grive-tools/grive-setup

46行目
gdriveName="Google Drive"

gdriveName="hogehuga"
に変更。

48行目
googleDriveFolder="$userHome/Google Drive"
から
googleDriveFolder="$userHome/hogehuga"
へ変更する。

46行目は必要ないかもしれない。

次に
pythonスクリプト grive-indicator も書き換える。

sudo leafpad /opt/thefanclub/grive-tools/grive-indicator

885行目
googleDrive = "Google Drive"

googleDrive = "hogehuga"
に変更

この後、setupすると任意の名前のディレクトリにGoogle Driveの中身が書き込まれる。
LXDEパネル内通知スペースのインディケータも正常動作する。

grive_Screenshot.jpg

ただし、アップデートがあると上記スクリプトが書き換えられると思うので注意が必要。


posted by 片桐 健 at 23:27 | Ubuntu