/todo

To get this branch, use:
bzr branch http://bzr.ed.am/todo

« back to all changes in this revision

Viewing changes to todo

  • Committer: edam
  • Date: 2011-09-30 10:20:26 UTC
  • Revision ID: edam@waxworlds.org-20110930102026-8kbh15ufm67eit0k
init

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
# option defaults
12
12
my $todo_dir = "~/.todo";
13
13
my $display_all = 0;
14
 
my $display_section = "TODO";
 
14
my $display_section = "IMMEDIATE";
15
15
my $display_headers = 0;
16
16
my $mode_edit = 0;
17
17
my $mode_help = 0;
72
72
                mkdir $todo_dir or die "couldn't create todo directory";
73
73
                `bzr init --no-aliases -q "$todo_dir"`;
74
74
                $? == 0 or die "couldn't init bzr repo";
75
 
        }
76
 
        
77
 
        # create a default todo file, as necessary
78
 
        if( ! -f "$todo_dir/todo" ) {
79
 
                open FILE, ">$todo_dir/todo" or die "couldn't create default todo file";
80
 
                my $content = <<"EOT";
81
 
<!-- This file uses Markdown syntax. For more info about Markdown
82
 
     syntax, see http://daringfireball.net/projects/markdown/syntax.
83
 
 
84
 
     There should be a main H1 header called "TODO" for the main todo
85
 
     list section (one has been added for you below). You can also add
86
 
     as many more sections as you like for other lists. And feel free
87
 
     to delete this comment! -->
88
 
 
89
 
TODO
90
 
====
91
 
 
92
 
* make a list of things to do
93
 
 
94
 
EOT
95
 
        print FILE $content or die "couldn't write default todo file";
96
 
                close FILE;
 
75
                `> "$todo_dir/todo"`;
 
76
                $? == 0 or die "couldn't create initial todo file";
97
77
                `bzr add --no-aliases -q "$todo_dir/todo"`;
98
78
                $? == 0 or die "couldn't add todo file to bzr repo";
99
79
        }
105
85
    push( @exec_array, "$todo_dir/todo" );
106
86
 
107
87
        # detect emacs and try to use markdown-mode
108
 
        $exec_array[ 0 ] eq "emacs" and
109
 
                push( @exec_array, '--funcall=markdown-mode' );
 
88
        $exec_array[ 0 ] eq "emacs" and push( @exec_array, '--funcall=markdown-mode' );
110
89
 
111
90
    # edit todo file
112
91
    system( @exec_array );
120
99
                `bzr commit --no-aliases -q -m - "$todo_dir/todo"`;
121
100
                $? == 0 or die "couldn't commit to bzr repo";
122
101
        }
123
 
 
124
 
        # after editing, exit
 
102
        
 
103
        # exit
125
104
        exit
126
105
}
127
106
 
148
127
                $next_section = '';
149
128
 
150
129
                # display line
151
 
                if( ( $section eq $display_section ) ||
152
 
                        ( $section && $display_all ) )
 
130
                if( $section eq $display_section ||
 
131
                        $display_all )
153
132
                {
154
133
                        # detect section change
155
134
                        if( $section ne $old_section ) {
159
138
                                if( $display_headers ||
160
139
                                        $display_all )
161
140
                                {
162
 
                                        print "$section\n".
163
 
                                                ( "=" x length( $section ) )."\n";
 
141
                                        my $heading = 'TODO';
 
142
                                        $heading .= ' ('.lc( $section ).')' if $section ne "IMMEDIATE";
 
143
                                        print "$heading\n".
 
144
                                                ( "=" x length( $heading ) )."\n";
164
145
                                }
165
146
                        }
166
147