updated git and svn scripts
[xrzperl.git] / zim-add-entry
blobd9f3653d87daa777df0c16b489583812dd49dfb9
1 #!/usr/bin/perl -w
2 ###APPNAME: zim-add-entry
3 ###APPAUTHOR: duel
4 ###APPDATE: 2008-05-11 14:27:04
5 ###APPVER: 0.1
6 ###APPDESC: add a link entry to a zim txt file
7 ###APPUSAGE: [--read] [--test] (entry Name) [entry Location] [entry Description] [destination]
8 ###APPEXAMPLE: zim-add-entry Test .test abc.txt
9 ###APPOPTION: --read:Append text to entry from STDIN|--test:No writing will be made
10 use strict;
11 use utf8;
13 #ENV variable MUST be defined somewhere,
14 #FOR perl to search modules from,
15 #OR nothing will work
16 use lib $ENV{XR_PERL_MODULE_DIR};
18 use MyPlace::Script::Usage qw/help_required help_even_empty/;
19 exit 0 if(help_even_empty($0,@ARGV));
21 my $read=0;
22 my $test=0;
24 if($ARGV[0] eq "--read") {
25 $read=1;
26 shift;
28 elsif($ARGV[0] eq "--test") {
29 $test=1;
30 shift;
33 if($ARGV[0] eq "--read") {
34 $read=1;
35 shift;
37 elsif($ARGV[0] eq "--test") {
38 $test=1;
39 shift;
42 my ($ename,$eloc,$edesc,$dist) = @ARGV;
43 my $edir;
44 sub tee($) {
45 my $str=shift;
46 print STDERR "\t$str";
47 return $str;
50 unless($eloc) {
51 $eloc = $ename;
52 $eloc =~ s/[ ,\+ ~×]/_/g;
53 $eloc = ".$eloc";
55 if($eloc =~ /^\./) {
56 $edir = $eloc;
57 $edir =~ s/^\.//g;
58 unless(-d $edir) {
59 print STDERR "Creating directory $edir ...";
60 unless($test) {
61 mkdir $edir or die("\n$!");
63 print STDERR "\n";
67 unless($dist) {
68 $dist=$ENV{PWD};
69 $dist =~ s/\/?$/.txt/;
73 if($edir) {
74 print STDERR "Writing $edir.txt...\n";
75 if($test) {
76 open FO,">>","/dev/null";
78 else {
79 unless(-f "$edir.txt") {
80 open FO,">","$edir.txt";
81 print FO tee("=" x 6 . " " . $ename . " " . "=" x 6 . "\n");
82 print FO tee(scalar(localtime()) . "\n\n");
84 else {
85 open FO,">>","$edir.txt";
88 if($read) {
89 print STDERR ("Prepairing text to $edir.txt from STDIN(CTRL-D to END)...\n");
90 while(<STDIN>) {
91 print FO tee($_);
94 close FO;
97 my $entry = "* [[$eloc|$ename]]";
98 my $exists=0;
99 if(-f $dist) {
100 open FI,"<",$dist;
101 while(<FI>) {
102 chomp;
103 if($_ eq $entry) {
104 $exists=1;
105 last;
108 close FI;
111 if($exists) {
112 print STDERR "Entry $entry exists\n";
114 else {
115 print STDERR "Add entry to $dist:\n";
116 if($test) {
117 open FO,">","/dev/null";
119 else {
120 open FO,">>",$dist;
122 print FO tee("$entry\n");
123 print FO tee(" $edesc\n") if($edesc);
124 print FO tee("\n");
125 close FO;