paste

Mirrored from GitHub

git clone https://github.com/christc4/paste.git

Jump to: README.md app.rc catn catn2 foot.tpl


README.md

1# paste
2
3werc pastebin app
4
5bugs:
6
7- 197 line limit
8
9catn - numbers cat - credit <http://mirtchovski.postnix.pw/lanlp9/scripts/catn>
10
11catn2 is a RC script that prints line numbers enclosed in span tag, for CSS you must add
12
13`span{user-select:none}`
14
15core taken from <https://contrib.9front.org/sl/www/werc/sites/contrib.9front.org/sl/www/werc/apps/paste/app.rc>
16
17apache2 bugs:
18
19- unable to open raw content
20

app.rc

1fn conf_enable_wercpaste {
2	paste_url=$conf_wd
3	paste_dir=`{pwd}^/_werc/src 
4	conf_enable_app wercpaste
5    ll_add handlers_body_foot template apps/paste/foot.tpl
6
7}
8
9fn wercpaste_init {
10	if (~ $REQUEST_METHOD POST && ~ $post_arg_url url && ~ $req_path $paste_url ) { # incoming paste 
11		now=`{ date -n }
12		if (~ $cksum '1715a8eb' ) { # empty paste; discard
13			post_redirect $base_url^$paste_url
14		}
15		if not {  # save and redirect
16			echo $"post_arg_paste > $paste_dir^/^$now
17			post_redirect $base_url^$paste_url^$now
18		}
19	} 
20	if not { # show a paste if there is one
21		if (test -r $werc_root/$local_path && ~ $QUERY_STRING raw ) { 
22				echo 'Content-type: text/plain; charset=UTF-8'; echo ''; exec cat $werc_root/$local_path
23			} 
24	}
25
26	if (~ $REQUEST_METHOD GET ) { handler_body_main='begforpaste' }
27
28}
29
30fn begforpaste {
31	echo '
32	<h3>pastebin</h3>
33	<form action="'$paste_url'" method="post">
34	<textarea name="paste" cols="80" rows="15" required></textarea><br>
35	<input type="submit" name="submit" value=Submit>
36	<span style="display: none"><input type="text" name="url" value="url"> (do not change) </span>
37	</form>
38	'
39}

catn

1#!/bin/rc
2
3switch($#*) {
4case 0
5	awk '{printf("%-5d\t%s\n",NR,$0)}'
6case 1 
7	awk '{printf("%-5d\t%s\n",NR,$0)}' < $1
8case *
9	echo 'usage: catn file' >[1=2]
10	echo '       catn < file' >[1=2]
11	echo '       cat file | catn' >[1=2]
12}

catn2

1#!/bin/rc
2
3switch($#*) {
4case 0
5	awk '{printf("<span>%d</span>\t%s\n",NR,$0)}'
6case 1 
7	awk '{printf("<span>%d</span>\t%s\n",NR,$0)}' < $1
8case *
9	echo 'usage: catn file' >[1=2]
10	echo '       catn < file' >[1=2]
11	echo '       cat file | catn' >[1=2]
12}
13

foot.tpl

1% for (file in `{ls -r $paste_dir/*}) {
2% link=`{echo $file | sed 's|/var/www/werc/sites/bauherren.ovh/paste/_werc/src/||g' }
3<code><h3><a href=/paste/#%($"link%) class=pasteLink>%($"link%)</a></h3></code>
4<pre id=%($"link%)>
5%  cat $file | escape_html | catn2 
6</pre><br>
7% }
8
9
10