App-Phoebe

 view release on metacpan or  search on metacpan

lib/App/Phoebe.pm  view on Meta::CPAN

  return sprintf('%4d-%02d-%02d', $year + 1900, $mon + 1, $mday);
}

sub time_of_day {
  my $stream = shift;
  my ($sec, $min, $hour, $mday, $mon, $year) = gmtime(shift);
  return sprintf('%02d:%02d UTC', $hour, $min);
}

sub modified {
  my $ts = (stat(shift))[9];
  return $ts;
}

sub serve_history {
  my $stream = shift;
  my $host = shift;
  my $space = shift;
  my $id = shift;
  my $n = shift;
  my $style = shift;

lib/App/Phoebe/Capsules.pm  view on Meta::CPAN

    $log->info("Wrote $file");
    return result($stream, "30", to_url($stream, $host, $capsule_space, $capsule));
  }
}

sub backup {
  my ($dir, $id) = @_;
  my $file = $dir . "/" . encode_utf8($id);
  my $backup_dir = "$dir/backup";
  my $backup_file = $backup_dir . "/" . encode_utf8($id);
  return unless -f $file and (time - (stat($file))[9]) > 600;
  # make a backup if the last edit was more than 10 minutes ago
  mkdir($backup_dir) unless -d $backup_dir;
  write_binary($backup_file, read_binary($file));
}

1;

lib/App/Phoebe/WebDAV.pm  view on Meta::CPAN

      next;
    }

    $log->debug("Processing $dir$resource");

    # A stat call for every file and every page! 😭
    my ($size, $mtime, $ctime, $sb) = (0, 0, 0);
    if ($resource eq "/login/") {
      $size = "";
      $mtime = $ctime = time;
    } elsif ($sb = stat($filename)) {
      $size = $sb->size;
      $mtime = $sb->mtime;
      $ctime = $sb->ctime;
    }

    # Modified time is stringified human readable HTTP::Date style
    $mtime = time2str($mtime);

    # Created time is ISO format: We need to tidy up the date format - isoz
    # isn't exactly what we want

script/phoebe-ctl  view on Meta::CPAN

    if (not $changes{$_ . "\x1c"} or $files{$_} > $changes{$_ . "\x1c"}) {
      say "File $_ is added to changes" if $log >= 4;
      say $fh join("\x1f", $now, $_, 0, "0000");
      utime($now, $now, "$dir/file/$_") or warn "Could not set utime for $dir/file/$_\n";
    }
  }
  close($fh);
}

sub modified {
  my $ts = (stat(shift))[9];
  return $ts;
}

sub erase_page {
  my @page = @_;
  die "You need to list the pages to erase\n" unless @page;
  for my $page (@page) {
    if (not -f "$dir/page/$page.gmi") {
      warn "$page does not exist\n";
      next;

t/oddmuse-wiki.pl  view on Meta::CPAN

  open(my $OUT, '>>:encoding(UTF-8)', encode_utf8($file))
    or ReportError(Ts('Cannot write %s', $file) . ": $!", '500 INTERNAL SERVER ERROR');
  print $OUT  $string;
  close($OUT);
}

sub IsFile    { return -f encode_utf8(shift); }
sub IsDir     { return -d encode_utf8(shift); }
sub ZeroSize  { return -z encode_utf8(shift); }
sub Unlink    { return unlink(map { encode_utf8($_) } @_); }
sub Modified  { return (stat(encode_utf8(shift)))[9]; }
sub Glob      { return map { decode_utf8($_) } bsd_glob(encode_utf8(shift)); }
sub ChangeMod { return chmod(shift, map { encode_utf8($_) } @_); }
sub Rename    { return rename(encode_utf8($_[0]), encode_utf8($_[1])); }
sub RemoveDir { return rmdir(encode_utf8(shift)); }
sub ChangeDir { return chdir(encode_utf8(shift)); }

sub CreateDir {
  my ($newdir) = @_;
  return if IsDir($newdir);
  mkdir(encode_utf8($newdir), 0775)



( run in 1.329 second using v1.01-cache-2.11-cpan-49f99fa48dc )