Collection of themes/skins for the Fossil SCM

⌈⌋ ⎇ branch:  Fossil Skins Extra


Hex Artifact Content

Artifact 85a4ff4a366faf93df17aa3602cfe200a463a266:

Attachment ".virt" to wiki page [PrefixFree] added by mario 2014-02-16 22:07:20.
0000: 23 21 2f 75 73 72 2f 62 69 6e 2f 70 65 72 6c 0a  #!/usr/bin/perl.
0010: 23 0a 23 20 4d 61 6b 65 73 20 72 65 70 6f 2e 63  #.# Makes repo.c
0020: 67 69 2f 20 70 72 65 66 69 78 20 72 65 64 75 6e  gi/ prefix redun
0030: 64 61 6e 74 20 66 6f 72 20 66 6f 73 73 69 6c 20  dant for fossil 
0040: 63 67 69 20 73 65 72 76 65 72 2e 0a 23 20 4a 75  cgi server..# Ju
0050: 73 74 20 75 73 65 20 61 20 52 65 77 72 69 74 65  st use a Rewrite
0060: 52 75 6c 65 20 6f 6e 74 6f 20 74 68 69 73 20 77  Rule onto this w
0070: 72 61 70 70 65 72 20 69 6e 73 74 65 61 64 2e 0a  rapper instead..
0080: 23 0a 0a 23 2d 2d 20 43 6f 6e 66 69 67 0a 24 52  #..#-- Config.$R
0090: 4f 4f 54 20 3d 20 22 2f 76 61 72 2f 77 77 77 2f  OOT = "/var/www/
00a0: 75 73 72 31 32 33 2f 22 3b 0a 24 43 47 49 5f 44  usr123/";.$CGI_D
00b0: 49 52 20 3d 20 22 24 52 4f 4f 54 2f 68 74 6d 6c  IR = "$ROOT/html
00c0: 2f 66 6f 73 73 69 6c 22 3b 0a 24 52 45 50 4f 53  /fossil";.$REPOS
00d0: 20 3d 20 22 24 52 4f 4f 54 2f 66 69 6c 65 73 2f   = "$ROOT/files/
00e0: 66 6f 73 73 69 6c 2e 64 22 3b 0a 0a 0a 23 2d 2d  fossil.d";...#--
00f0: 20 43 68 65 63 6b 20 65 6e 76 0a 24 45 4e 56 7b   Check env.$ENV{
0100: 27 52 45 51 55 45 53 54 5f 55 52 49 27 7d 20 3d  'REQUEST_URI'} =
0110: 7e 20 2f 5e 5c 2f 28 5b 5c 77 2d 5d 2b 29 28 5c  ~ /^\/([\w-]+)(\
0120: 2f 5b 5e 3f 5d 2a 29 3f 28 24 7c 5c 3f 2e 2a 24  /[^?]*)?($|\?.*$
0130: 29 2f 3b 0a 24 46 4e 20 3d 20 22 24 31 22 3b 20  )/;.$FN = "$1"; 
0140: 20 23 20 66 6f 73 73 69 6c 20 6e 61 6d 65 0a 24   # fossil name.$
0150: 50 49 20 3d 20 22 24 32 22 3b 20 20 23 20 70 61  PI = "$2";  # pa
0160: 74 68 5f 69 6e 66 6f 0a 24 51 53 20 3d 20 22 24  th_info.$QS = "$
0170: 33 22 3b 20 20 23 20 71 75 65 72 79 20 73 74 72  3";  # query str
0180: 69 6e 67 0a 0a 0a 23 2d 2d 20 52 65 70 6f 73 69  ing...#-- Reposi
0190: 74 6f 72 79 20 6e 61 6d 65 20 66 72 6f 6d 20 52  tory name from R
01a0: 65 77 72 69 74 65 52 75 6c 65 0a 69 66 20 28 20  ewriteRule.if ( 
01b0: 2d 65 20 22 24 52 45 50 4f 53 2f 24 46 4e 2e 66  -e "$REPOS/$FN.f
01c0: 6f 73 73 69 6c 22 20 29 0a 7b 0a 0a 20 20 20 23  ossil" ).{..   #
01d0: 2d 2d 20 4f 76 65 72 72 69 64 65 20 43 47 49 20  -- Override CGI 
01e0: 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 0a 20 20 20  environment .   
01f0: 24 45 4e 56 7b 27 53 43 52 49 50 54 5f 4e 41 4d  $ENV{'SCRIPT_NAM
0200: 45 27 7d 20 3d 20 22 22 3b 0a 20 20 20 23 24 45  E'} = "";.   #$E
0210: 4e 56 7b 27 52 45 51 55 45 53 54 5f 55 52 49 27  NV{'REQUEST_URI'
0220: 7d 20 3d 20 22 2f 24 46 4e 24 50 49 24 51 53 22  } = "/$FN$PI$QS"
0230: 3b 20 20 20 23 20 75 73 75 61 6c 6c 79 20 72 65  ;   # usually re
0240: 74 61 69 6e 65 64 0a 20 20 20 24 45 4e 56 7b 27  tained.   $ENV{'
0250: 50 41 54 48 5f 49 4e 46 4f 27 7d 20 3d 20 22 2f  PATH_INFO'} = "/
0260: 24 46 4e 24 50 49 22 3b 0a 0a 20 20 20 23 2d 2d  $FN$PI";..   #--
0270: 20 52 75 6e 20 66 6f 73 73 69 6c 20 72 65 70 6f   Run fossil repo
0280: 2e 63 67 69 20 73 63 72 69 70 74 0a 20 20 20 65  .cgi script.   e
0290: 78 65 63 20 22 24 43 47 49 5f 44 49 52 2f 72 65  xec "$CGI_DIR/re
02a0: 70 6f 2e 63 67 69 22 3b 20 20 23 20 63 6f 6e 74  po.cgi";  # cont
02b0: 61 69 6e 73 20 64 69 72 65 63 74 6f 72 79 3a 20  ains directory: 
02c0: 64 65 63 6c 61 72 61 74 69 6f 6e 0a 20 20 20 65  declaration.   e
02d0: 78 69 74 3b 0a 0a 7d 0a 65 6c 73 65 20 7b 0a 20  xit;..}.else {. 
02e0: 20 20 70 72 69 6e 74 20 22 53 74 61 74 75 73 3a    print "Status:
02f0: 20 32 30 30 5c 6e 22 3b 0a 20 20 20 70 72 69 6e   200\n";.   prin
0300: 74 20 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a  t "Content-Type:
0310: 20 74 65 78 74 2f 70 6c 61 69 6e 5c 6e 22 3b 0a   text/plain\n";.
0320: 20 20 20 70 72 69 6e 74 20 22 5c 6e 22 3b 0a 20     print "\n";. 
0330: 20 20 70 72 69 6e 74 20 22 46 6f 73 73 69 6c 20    print "Fossil 
0340: 72 65 70 6f 73 69 74 6f 72 79 20 27 24 46 4e 27  repository '$FN'
0350: 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e   does not exist.
0360: 22 3b 0a 7d 0a                                   ";.}.