#!/usr/bin/perl # mt-upload,v 1.2 2003/07/29 12:40:48 sherzodr Exp use strict; use Net::MovableType; use Config::Simple; use File::Basename; # Turning STDOUT buffering off # $| = 1; # # defining variables # my %config = (); # <-- keeps the configuration file contents my $file = shift; # <-- file to upload my $dir = shift; # <-- remote directory to upload into my $url = ""; # <-- url of the uploaded file unless ( $file && $dir ) { die "Usage: $0 \n" } # # initializing configuration file # init_config(\%config); # # creating MT object # my $mt = new MT( $config{Proxy}, $config{User}, $config{Password} ); unless ( defined $mt ) { die MT->errstr } # # uploading the file # $url = $mt->upload( $file, catfile($dir, basename($file)) ); unless ( $url ) { die "couldn't upload: " . $mt->errstr . "\n" } print "File: $file\nURL: $url->{url}\nUploaded Successfully!\n"; sub catfile { require File::Spec; return File::Spec->catfile(@_) } sub init_config { my $config = shift; # # we require values of HOME and EDITOR varaibles set # unless ( $ENV{HOME} && $ENV{EDITOR} ) { die "'HOME' and 'EDITOR' environmental variables are not yet\n" } require Config::Simple; my $cfg_file = catfile($ENV{HOME}, '.mt.cfg'); unless ( -e $cfg_file ) { die "Configuration file, '$cfg_file' is missing\n" } Config::Simple->import_from($cfg_file, $config); unless ( $config->{Proxy} && $config->{User} && $config->{Password} ) { die "Required fields are missing in the configuration file\n" } }