Net-Google-Drive-Simple

 view release on metacpan or  search on metacpan

eg/google-drive-upsync  view on Meta::CPAN

#!/usr/local/bin/perl -w
use strict;

use Sysadm::Install qw(:all);
use Net::Google::Drive::Simple;
use Log::Log4perl qw(:easy);
use File::Basename;
use Getopt::Std;
use Pod::Usage;

getopts( "hvnc", \my %opts );
pod2usage() if $opts{h};

my ( $local_dir, $gd_dir ) = @ARGV;

if ( !defined $gd_dir ) {
    pod2usage("No Google Drive dir given");
}

if ( !-d $local_dir ) {
    pod2usage("$local_dir not a directory");
}

if ( $opts{c} ) {
    $opts{v} = 1;
}

my $log_level = $INFO;
$log_level = $DEBUG if $opts{v};

Log::Log4perl->easy_init(
    {
        level  => $log_level,
        layout => "%d %F{1}:%L> %m%n"
    }
);

my %files_local = ();

opendir DH, $local_dir;

for my $file ( readdir DH ) {

    my $path = "$local_dir/$file";

    if ( !-f $path ) {
        next;
    }

    $files_local{$file} = -s $path;
}

closedir DH;

INFO "Found ", scalar keys %files_local, " local files";

my $gd = Net::Google::Drive::Simple->new();

INFO "Listing $gd_dir on Google Drive";

my ( $entries_gd, $parent ) = $gd->children($gd_dir);

if ( !defined $entries_gd ) {
    pod2usage("$gd_dir can't be listed - does it exist?");
}

INFO "Found ", scalar @$entries_gd, " files on Google Drive";

my %needs_update = ();

for my $entry (@$entries_gd) {
    if ( $entry->kind() ne 'drive#file' ) {
        DEBUG "Ignoring ", $entry->title();
        next;



( run in 2.217 seconds using v1.01-cache-2.11-cpan-98e64b0badf )