=back
+=head1 ENVIRONMENTAL VARIABLES
+
+=over
+
+=item B<TODODB>
+
+Todo databse location, set by devtodo
+
+=item B<STODO_NO_COMMIT>
+
+If set, stodo assumes that there is no network, and doesn't commit
+
+=back
+
=head1 EXAMPLES
on save {
$DEBUG = $options{debug};
# Figure out what we're doing
-my $tododb = $ENV{TODODB};
+my $tododb = exists $ENV{TODODB} ? $ENV{TODODB} : '.todo';
if ($tododb !~ m#^/#) {
$tododb = cwd().'/'.$tododb;
}
my $tododb_name = basename($tododb);
if (not -e "$base_dir/.svn") {
- print "$base_dir/.svn doesns't exist, not commiting" unless $options{quiet};
+ print "$base_dir/.svn doesn't exist, not commiting\n" unless $options{quiet};
+ exit 0;
+}
+
+if (not -e "$base_dir/.svn/text-base/${tododb_name}.svn-base") {
+ print "$base_dir/.svn/text-base/${tododb_name}.svn-base doesn't exist, not committing\n" unless $options{quiet};
exit 0;
}
my $url_type;
my $svn_host;
while (<$svn_entries_fh>) {
- next unless m#^\s+url=\"(http|svn\+ssh|file):///?([^\/]+)#;
+ next unless m#^(?:\s+url=\")?(http|svn\+ssh|file):///?([^\/]+)#;
$url_type = $1;
last if $url_type eq 'file';
$svn_host = $2;
last;
}
-
-if (not defined $svn_host and $url_type ne 'file') {
+if ($ENV{STODO_NO_COMMIT}) {
+ print "Exiting because of STODO_NO_COMMIT env variable\n" unless $options{quiet};
+ exit 0;
+}
+if (not defined $svn_host and (not defined $url_type or $url_type ne 'file')) {
die "Was unable to find which host the svn repository is located on";
}
if ($url_type ne 'file') {
qx(ping -q -c 3 $svn_host >/dev/null 2>&1);
if ($? != 0) {
- print "Unable to ping $svn_host" unless $options{quiet};
+ print "Unable to ping $svn_host\n" unless $options{quiet};
exit 0 unless $options{simulate};
}
}
sub fix_content {
my ($s) = @_;
+ if (not ref(${[values %{$s}]}[0]) eq 'HASH') {
+ $s = {$s->{time} => $s};
+ }
foreach my $entry (values %{$s}) {
if (exists $entry->{content}) {
$entry->{content} =~ s/^\s*|\s*$//g;