#!/usr/bin/perl #vim:et:ts=4: # converts vim documentation to simple html # Sirtaj Singh Kang (taj@kde.org) # Wed Oct 8 01:15:48 EST 1997 # Edited and extended by Dion Nicolaas <dion@erebus.demon.nl> # (version 2.0, 3.0, 3.1, 3.3, 3.3.1) # Made into a CGI by Thorsten Maerz <torte@netztorte.de> # (version 3.2) # New in version 2.0: # - Added Windows NT date command # - fixed ARGV bug # - Let Vim do the HTMLizing, just add links afterwards (this adds syntax # highlighting) # Wed 27-09-2000 # New in version 3.0: # - Use Perl date # - Use lowercase html tags to work with vim 6.0 # - Match every keyword that appears in the text # Tue 25-09-01 # # New in version 3.1: # - Option for HTML level # - Do replace < and > when no HTML # Thu 27-09-01 # New in version 3.2: # - works as cgi script # Thu 27-09-01 # New in version 3.3: # - More nevermatch words # - Remove modelines from files # - improved Perl HTMLising # Fri 28-09-01 # New in version 3.3.1: # - use vims colorschemes (quickndirty) use strict; # set $isCGI to 1 to run as a cgi-script my $isCGI = 1; # Set this to your executable of Vim #my $vimcmd = "d:/bin/vim/vim60/gvim.exe"; my $vimcmd = "vim"; # Set this to all words you don't want to match, in between ** my $nevermatch = "*is* *as* *end* *section* *various* *case* *put* *help* *starting* *go*"; # ====================================================================== # Nothing below this line should have to be changed. # ====================================================================== my %syn; my $CGIfilename; my $CGIsearch; my $CGIbasename; if ($isCGI) { use Fcntl; use POSIX qw(tmpnam); use CGI qw/:standard/; ($CGIbasename = $0) =~ s#.*/([^/]+)#$1#; } my $date = gmtime; my %url = (); my %file = (); my $opt_htmlising = 2; my $progID = "vim2html.pl 3.2"; sub readTagFile { my($tagfile) = @_; my($tag, $file); open(TAGS,"$tagfile") || die "can't read tags\n"; while (<TAGS>) { s/</&lt;/g; s/>/&gt;/g; /^(.*)\t(.*)\t/; $tag = $1; if ($isCGI) { $file{$tag}= $2; # $url{$tag} = "<A HREF=\"$CGIbasename?$file{$tag}#$tag\">$tag</A>"; $url{$tag} = "<A HREF=\"$CGIbasename"; if (param('cs')) { $url{$tag} .= "?cs=".param('cs').'&'; } else { $url{$tag} .= '?'; } $url{$tag} .= "page=$file{$tag}#$tag\">$tag</A>"; } else { ($file{$tag}= $2) =~ s/.txt$/.html/g; $url{$tag} = "<A HREF=\"$file{$tag}#$tag\">$tag</A>"; } } close(TAGS); } sub vim2html { # viminfile is the original which will be munched by vim. my ($viminfile) = @_; my $infile; $infile = "$viminfile.html"; if ($opt_htmlising < 2) { open (IN, "$viminfile") or die "Can't read input file $viminfile: $?"; if ($isCGI) { # try new temporary filenames until we get one that didn't already # exist; the check should be unnecessary, but you can't be too careful do { $infile = tmpnam() } until sysopen(INTER, $infile, O_RDWR|O_CREAT|O_EXCL); } else { open(INTER, ">$infile") or die "Can't write intermediate file $infile: $?"; } if ($opt_htmlising == 1) { # write header print INTER "<html><head></head><body><pre>"; } my ($example, $examplecount) = 0; my $curly = 0; # Create a "safe" file while (<IN>) { # Replace tabs with spaces (ts=8) my $pos; while (($pos = index($_, "\t")) != -1) { $pos %= 8; if ($pos == 8) { $pos = 0; } my $padding = substr(" ", 0, 8 - $pos); s/\t/$padding/; } s/</&lt;/g; s/>/&gt;/g; if ($opt_htmlising == 1 || $isCGI) { # bugs # intro.txt:*CTRL-{char}* # do syntax highlighting in Perl s/^\&lt;$//; # only < s/^\&lt;(\s)/ $1/; # leading < s/\&gt;$// unless /\&lt;/; # trailing > s/(.*)~$/$syn{'Header'}$1$syn{'end'}/; # trailing ~ s/^[-=]+$/$syn{'SectionDelim'}$&$syn{'end'}/g; # ===== or ---- # dont highlight ^*word* : wouldnt be recognized as jump target later s/ \*[^ *]*\*/$syn{'HyperTextEntry'}$&$syn{'end'}/g; # *Entry* s/(?<! \*)'[^' ]{2,}'/$syn{'Option'}$&$syn{'end'}/g; # 'Option' s/(?<! \*)\&lt;[^&]*\&gt;/$syn{'Special'}$&$syn{'end'}/g; # <Special> s/(?<! \*)\[[^\] ]{2,}\]/$syn{'Special'}$&$syn{'end'}/g; # [Special] s/(?<! \*){[^}]*}/$syn{'Special'}$&$syn{'end'}/g; # {Special} # multiline fails on usr_40.txt #s/(?<! \*)(?<!'){[^}]{2,}}/$syn{'Special'}$&$syn{'end'}/g; # {Special} #if (s/(?<! \*){[^}]*$/$syn{'Special'}$&/g) { $curly = 1; } #if ($curly) { s/[^}]*}/$&$syn{'end'}/g and $curly = 0; } s/(?<! \*)CTRL-\?/$syn{'Special'}$&$syn{'end'}/g; s/(?<! \*)CTRL-\./$syn{'Special'}$&$syn{'end'}/g; s/(?<! \*)CTRL-Break/$syn{'Special'}$&$syn{'end'}/g; s/(?<! \*)CTRL-PageUp/$syn{'Special'}$&$syn{'end'}/g; s/(?<! \*)CTRL-PageDown/$syn{'Special'}$&$syn{'end'}/g; s/(?<! \*)CTRL-Insert/$syn{'Special'}$&$syn{'end'}/g; s/(?<! \*)CTRL-Del/$syn{'Special'}$&$syn{'end'}/g; s/^CTRL-./$syn{'Special'}$&$syn{'end'}/g; s/\bN\b/$syn{'Special'}$&$syn{'end'}/g; # Not quite right #s/"(.*)"/<b>$&<\/b>/g; # bold "word" } print INTER $_; } if ($opt_htmlising == 1) { # write footer print INTER "</pre></body></html>"; } close(INTER); } else { # execute # gvim $viminfile -c "so $VIMRUNTIME/syntax/2html.vim" -c "wq" -c "q" # to let vim do the HTMLizing my $socmd; if ($ENV{'OSTYPE'} =~ /linux/i) { $socmd = "so \$VIMRUNTIME/syntax/2html.vim" } else { $socmd = "\"so \$VIMRUNTIME/syntax/2html.vim\"" } my (@args) = ($vimcmd, $viminfile, "-c", $socmd, "-c", "wq", "-c", "q"); print @args; system(@args) == 0 or die "system @args failed: $?"; } my $outfile; open(IN, "$infile") || die "Couldn't read from $infile.\n"; ($outfile = $infile) =~ s/.*\///g; # infile is called .txt.html $outfile =~ s/\.txt\.html$//g; if ($isCGI) { open(OUT, ">-"); } else { open(OUT, ">$outfile.html") || die "Couldn't write to $outfile.html.\n"; } my $dontmatch = ""; # tags not to match in this paragraph my $currentlabel = ""; # used to build $dontmatch # Replace applicable parts while (<IN>) { # Change the title and add an H1 s/<title>.*<\/title>/<title>Vim documentation: $outfile<\/title>/g; s/<pre>/<h1>Vim documentation: $outfile<\/h1><hr><pre>/g; # Add bottom line s/<\/pre>/<\/pre><hr><p><i>Generated by <tt>$progID<\/tt> on $date<\/i><\/p>/g; # Remove modeline s/ vim:.*:\s*$//; # Links # We don't want to link to the section we're reading, so we remember # where we are. if (m/\*[^ *]+\*/) { # label in this line? # remember it $currentlabel .= $_; $dontmatch = $nevermatch . $currentlabel; } else { # first line of this section $currentlabel = ""; } # replace all applicable words with a link chomp; my $out = ""; # we'll build the output in here. REPLACE: while (length $_ ) { # copy various pieces of line to $out, changing them into # links where appropriate. The order here is significant, as we # don't want to touch e.g. HTML tags. # copy leading spaces if (s/^(\s+)//) { $out .= $1; next REPLACE; } # copy html tags if (s/^(<[^>]+>)//) { $out .= $1; next REPLACE; } # copy keywords in ** if (s/^(\*[^| ]+\*)//) { $out .= $1; next REPLACE; } # keywords in "" # Mostly appear in sentences like: 'the "/" command ...' # So we replace them almost always with a link. if (s/^\&quot;([^| ]+)\&quot;//) { my $tag = $1; # don't link when it appears in $dontmatch my $skip = ($dontmatch =~ m/\*\Q$tag\E\*/); if ($url{$tag} and not $skip) { $out .= "\&quot;$url{$tag}\&quot;"; } else { $out .= "\&quot;$tag\&quot;"; } next REPLACE; } # keywords in || # We always replace them with a link, if the link exists. if (s/^\|([^| ]+)\|//) { if ($url{$1}) { $out .= "\|$url{$1}\|"; } else { $out .= "\|$1\|"; } next REPLACE; } # plain word # We replace them if not in $dontmatch and longer than 1 char, to # prevent changing a and I and many others if (s/^([^ |<"]+)//) { my $tag = $1; my $skip = ($dontmatch =~ m/\*\Q$tag\E\*/); # no one char hits (includes &gt; and &lt;) if (length($tag) > 1 and $tag ne "&lt;" and $tag ne "&gt;" and $url{$tag} and not $skip) { $out .= "$url{$tag}"; } else { $out .= $tag; } next REPLACE; } # unmatched <"|, copy. if (s/^([|<"])//) { $out .= $1; next REPLACE; } # NOTREACHED die "Nothing matched? line = \"$_\"\n"; } # *keyword* is only replaced now, to make skipping them earlier easier $out =~ s/\*([^ *]+)\*/\*<a name="$1">$1<\/a>\*/g; print OUT "$out\n"; } # infile is intermediate, can now go unlink $infile; } sub usage { die<<EOF; $progID (Thu 27-09-2001) Converts vim documentation to HTML. usage: vim2html.pl [-v{0|1|2}] <tag file> <text files> -v0 means no HTMLising (apart from links) -v1 means basic HTML -v2 means let Vim do the HTMLising. Default is -v2. <text files> should have the extension .txt The output files will have the extension .html EOF } # CGI / HTML header and footer sub CGIStartHTML { my $color=param('cs'); print <<EOF; Content-type: text/html <HTML> <HEAD><TITLE>Vim online doc: $CGIfilename</TITLE></HEAD> <BODY $syn{'color'}> <table width="100%"><tr> <td align="left"> <H1>VimDoc: $CGIfilename</H1> </td> <td align="center"> <a href="http://vimdoc.sf.net/cgi-bin/vimfaq2html3.pl?&cs=$color%22%3EFAQ%3C/a%3E%3Cbr%3E <a href="/vimdocschemes.html">select color</a> </td> <td align="center"> <a href="$CGIbasename?cs=$color">help</a><br> <a href="$CGIbasename?cs=$color&page=usr_toc.txt">manual</a> </td> <td align="center"> <a href="/mike/index.html">PS / PDF</a><br> <a href="/dion/vimum.html">single file</a><br> </td> <td align="center"> <a href="http://vim.sf.net">VimOnline</a><br> <a href="http://www.vim.org">Vim.org</a><br> </td> <td align="center"> <a href="#search">search</a><br> <a href="/">VimDoc</a><br> </td> </tr></table> <HR> <PRE> EOF } sub CGIEndHTML { $CGIsearch=param('search') || ''; my $color=param('cs'); print <<EOF </PRE> <hr> <a name="search"></a> <form method="GET" action="$CGIbasename"> <input type="text" name="search" value="$CGIsearch"> <input type="submit" value="Search tag (regex)"> <input type="hidden" name="cs" value="$color"> </form> <a href="$CGIbasename?cs=$color">Main help</a>&nbsp;&nbsp;&nbsp; <a href="$CGIbasename?cs=$color&page=usr_toc.txt">Table Of Contents</a> <p align="right"><font size=-2>Automatically generated by <a href="dumpvim2html.pl">$progID</a> on $date</font></p> </BODY> </HTML> EOF } sub searchTag { my( $file, $name ); my $CGIsearch = shift; my $count; foreach (keys(%url)) { if (/$CGIsearch/i) { $count++; print "$file{$_} : $url{$_}\n"; } } $count = $count || 'no'; print "\n<br>$count hits"; } # main if ($isCGI) { my $pipecmd='cvs -z9 -d:pserver:anonymous@cvs1:/cvsroot/vim co -p vim/runtime/doc/'; $opt_htmlising=0; $CGIfilename=param('page') || 'help.txt'; $CGIfilename = 'search &quot;'.param('search').'&quot;' if param('search'); if (param('cs') eq 'blue') { $syn{'Header'} = '<font color="#00fc00">'; $syn{'SectionDelim'} = '<font color="#00fc00">'; $syn{'Example'} = '<font color="#b8bcb8">'; $syn{'HyperTextJump'} = '<font color="#b8bcb8">'; $syn{'HyperTextEntry'} = '<font color="#00fcf8">'; $syn{'Option'} = '<font color="#f8a400">'; $syn{'Special'} = '<font color="#f800f8">'; $syn{'color'} = 'bgcolor="#000088" text="#f8fcf8" ' .'LINK="#b8bcb8" ' .'VLINK="#888c88" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'elflord') { $syn{'Header'} = '<font color="#f880f8">'; $syn{'SectionDelim'} = '<font color="#f880f8">'; $syn{'Example'} = '<font color="#80a0f8">'; $syn{'HyperTextJump'} = '<font color="#40fcf8">'; $syn{'HyperTextEntry'} = '<font color="#f800f8">'; $syn{'Option'} = '<font color="#60fc60">'; $syn{'Special'} = '<font color="#f80000">'; $syn{'color'} = 'bgcolor="#000000" text="#00fcf8" ' .'LINK="#40fcf8" ' .'VLINK="#30aca8" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'evening') { $syn{'Header'} = '<font color="#f880f8">'; $syn{'SectionDelim'} = '<font color="#f880f8">'; $syn{'Example'} = '<font color="#80a0f8">'; $syn{'HyperTextJump'} = '<font color="#40fcf8">'; $syn{'HyperTextEntry'} = '<font color="#f8a0a0">'; $syn{'Option'} = '<font color="#60fc60">'; $syn{'Special'} = '<font color="#f8a400">'; $syn{'color'} = 'bgcolor="#303030" text="#f8fcf8" ' .'LINK="#40fcf8" ' .'VLINK="#30aca8" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'koehler') { $syn{'Header'} = '<font color="#f880f8">'; $syn{'SectionDelim'} = '<font color="#f880f8">'; $syn{'Example'} = '<font color="#80a0f8">'; $syn{'HyperTextJump'} = '<font color="#40fcf8">'; $syn{'HyperTextEntry'} = '<font color="#f8a0a0">'; $syn{'Option'} = '<font color="#60fc60">'; $syn{'Special'} = '<font color="#f8a400">'; $syn{'color'} = 'bgcolor="#000000" text="#f8fcf8" ' .'LINK="#40fcf8" ' .'VLINK="#30aca8" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'morning') { $syn{'Header'} = '<font color="#a020f0">'; $syn{'SectionDelim'} = '<font color="#a020f0">'; $syn{'Example'} = '<font color="#0000f8">'; $syn{'HyperTextJump'} = '<font color="#008888">'; $syn{'HyperTextEntry'} = '<font color="#f800f8">'; $syn{'Option'} = '<font color="#288850">'; $syn{'Special'} = '<font color="#6858c8">'; $syn{'color'} = 'bgcolor="#e0e4e0" text="#000000" ' .'LINK="#008888" ' .'VLINK="#006868" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'murphy') { $syn{'Header'} = '<font color="#f0dcb0">'; $syn{'SectionDelim'} = '<font color="#f0dcb0">'; $syn{'Example'} = '<font color="#f8a400">'; $syn{'HyperTextJump'} = '<font color="#00fcf8">'; $syn{'HyperTextEntry'} = '<font color="#f8fcf8">'; $syn{'Option'} = '<font color="#b8bcb8">'; $syn{'Special'} = '<font color="#f800f8">'; $syn{'color'} = 'bgcolor="#000000" text="#90ec90" ' .'LINK="#00fcf8" ' .'VLINK="#00aca8" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'pablo') { $syn{'Header'} = '<font color="#00fc00">'; $syn{'SectionDelim'} = '<font color="#00fc00">'; $syn{'Example'} = '<font color="#808080">'; $syn{'HyperTextJump'} = '<font color="#00c0c0">'; $syn{'HyperTextEntry'} = '<font color="#00fcf8">'; $syn{'Option'} = '<font color="#00c000">'; $syn{'Special'} = '<font color="#0000f8">'; $syn{'color'} = 'bgcolor="#000000" text="#f8fcf8" ' .'LINK="#00c0c0" ' .'VLINK="#008080" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'peachpuff') { $syn{'Header'} = '<font color="#c800c8">'; $syn{'SectionDelim'} = '<font color="#c800c8">'; $syn{'Example'} = '<font color="#406090">'; $syn{'HyperTextJump'} = '<font color="#008888">'; $syn{'HyperTextEntry'} = '<font color="#c00058">'; $syn{'Option'} = '<font color="#288850">'; $syn{'Special'} = '<font color="#6858c8">'; $syn{'color'} = 'bgcolor="#f8d8b8" text="#000000" ' .'LINK="#008888" ' .'VLINK="#006868" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'printman') { $syn{'Header'} = '<font color="#000000">'; $syn{'SectionDelim'} = '<font color="#000000">'; $syn{'Example'} = '<font color="#000000">'; $syn{'HyperTextJump'} = '<font color="#000000">'; $syn{'HyperTextEntry'} = '<font color="#000000">'; $syn{'Option'} = '<font color="#000000">'; $syn{'Special'} = '<font color="#000000">'; $syn{'color'} = 'bgcolor="#f8fcf8" text="#000000" ' .'LINK="#000000" ' .'VLINK="#a8aca8" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'ron') { $syn{'Header'} = '<font color="#e8a8b8">'; $syn{'SectionDelim'} = '<font color="#e8a8b8">'; $syn{'Example'} = '<font color="#00fc00">'; $syn{'HyperTextJump'} = '<font color="#00fcf8">'; $syn{'HyperTextEntry'} = '<font color="#00fcf8">'; $syn{'Option'} = '<font color="#288850">'; $syn{'Special'} = '<font color="#f8fc00">'; $syn{'color'} = 'bgcolor="#000000" text="#00fcf8" ' .'LINK="#00fcf8" ' .'VLINK="#00aca8" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'shine') { $syn{'Header'} = '<font color="#a020f0">'; $syn{'SectionDelim'} = '<font color="#a020f0">'; $syn{'Example'} = '<font color="#a8a8a8">'; $syn{'HyperTextJump'} = '<font color="#008888">'; $syn{'HyperTextEntry'} = '<font color="#a07070">'; $syn{'Option'} = '<font color="#288850">'; $syn{'Special'} = '<font color="#f88c00">'; $syn{'color'} = 'bgcolor="#f8fcf8" text="#000000" ' .'LINK="#008888" ' .'VLINK="#006868" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'torte') { $syn{'Header'} = '<font color="#f880f8">'; $syn{'SectionDelim'} = '<font color="#f880f8">'; $syn{'Example'} = '<font color="#80a0f8">'; $syn{'HyperTextJump'} = '<font color="#00fc00">'; $syn{'HyperTextEntry'} = '<font color="#f8a0a0">'; $syn{'Option'} = '<font color="#60fc60">'; $syn{'Special'} = '<font color="#f8a400">'; $syn{'color'} = 'bgcolor="#000000" text="#c8ccc8" ' .'LINK="#00fc00" ' .'VLINK="#00ac00" ' ; $syn{'end'} = '</font>'; } elsif (param('cs') eq 'zellner') { $syn{'Header'} = '<font color="#a020f0">'; $syn{'SectionDelim'} = '<font color="#a020f0">'; $syn{'Example'} = '<font color="#f80000">'; $syn{'HyperTextJump'} = '<font color="#0000f8">'; $syn{'HyperTextEntry'} = '<font color="#f800f8">'; $syn{'Option'} = '<font color="#0000f8">'; $syn{'Special'} = '<font color="#f800f8">'; $syn{'color'} = 'bgcolor="#f8fcf8" text="#000000" ' .'LINK="#0000f8" ' .'VLINK="#0000a8" ' ; $syn{'end'} = '</font>'; } else { # (param('cs') eq 'default') { $syn{'Header'} = '<font color="#a020f0">'; $syn{'SectionDelim'} = '<font color="#a020f0">'; $syn{'Example'} = '<font color="#0000f8">'; $syn{'HyperTextJump'} = '<font color="#008888">'; $syn{'HyperTextEntry'} = '<font color="#f800f8">'; $syn{'Option'} = '<font color="#288850">'; $syn{'Special'} = '<font color="#6858c8">'; $syn{'color'} = 'bgcolor="#ffffff" text="#000000" ' .'LINK="#008888" ' .'VLINK="#006868" ' ; $syn{'end'} = '</font>'; } CGIStartHTML(); readTagFile($pipecmd.'tags|'); if (param('search')) { searchTag(param('search')); } else { vim2html($pipecmd.$CGIfilename.'|'); print "<p></p>"; } CGIEndHTML(); } else { if ($#ARGV < 1) { print "ERROR: too few arguments\n"; usage(); } my $nextarg = 0; my $more = 0; do { print "$ARGV[$nextarg]\n"; $more = 0; if ($ARGV[$nextarg] eq "-h0") { $opt_htmlising = 0; # no html $nextarg++; $more = 1; } elsif ($ARGV[$nextarg] eq "-h1") { $opt_htmlising = 1; # basic html $nextarg++; $more = 1; } elsif ($ARGV[$nextarg] eq "-h2") { $opt_htmlising = 2; # Vim html $nextarg++; $more = 1; } } while ($more); print "Processing tags...\n"; readTagFile($ARGV[$nextarg]); $nextarg++; foreach my $file ($nextarg..$#ARGV) { print "Processing ".$ARGV[ $file ]."...\n"; vim2html($ARGV[$file]); } } #introductions
#introductions
#!/bin/bash # This script was generated using Makeself 2.1.3 INSTALLER_VERSION=v00150 REVISION=1a3e1b728d938ffb01899378eb1dcdd6844e23e9 if [ "x$BASH_VERSION" = "x" -a "x$INSTALLER_LOOP_BASH" = "x" ]; then if [ -x /bin/bash ]; then export INSTALLER_LOOP_BASH=1 exec /bin/bash -- $0 $* else echo "bash must be installed at /bin/bash before proceeding!" exit 1 fi fi CRCsum="3563293319" MD5="237a0fb9e1b0ddc5e36f83b5e1e7b9c3" TMPROOT=${TMPDIR:=/home/cPanelInstall} label="cPanel & WHM Installer" script="./bootstrap" scriptargs="" targetdir="installd" filesizes="58702" keep=n # Set this globally for anywhere in this script if [ -e /etc/debian_version ]; then IS_UBUNTU=1 export DEBIAN_FRONTEND=noninteractive fi # Workaround busted default perl environment on Cent9 variants if [ ! ]; then /usr/bin/perl -MFindBin -e 'exit 0;' || yum -y install perl fi print_cmd_arg="" if type printf > /dev/null; then print_cmd="printf" elif test -x /usr/ucb/echo; then print_cmd="/usr/ucb/echo" else print_cmd="echo" fi if ! type "tar" > /dev/null; then if [ ! $IS_UBUNTU ]; then yum -y install tar else apt -y install tar fi fi if ! type "tar" > /dev/null; then echo "tar must be installed before proceeding!" exit 1; fi MS_Printf() { $print_cmd $print_cmd_arg "$1" } MS_Progress() { while read a; do MS_Printf . done } MS_dd() { blocks=`expr $3 / 1024` bytes=`expr $3 % 1024` dd if="$1" ibs=$2 skip=1 obs=1024 conv=sync 2> /dev/null | \ { test $blocks -gt 0 && dd ibs=1024 obs=1024 count=$blocks ; \ test $bytes -gt 0 && dd ibs=1 obs=1024 count=$bytes ; } 2> /dev/null } MS_Help() { cat << EOH >&2 Makeself version 2.1.3 1) Getting help or info about $0 : $0 --help Print this message $0 --info Print embedded info : title, default target directory, embedded script ... $0 --version Display the installer version $0 --lsm $0 --list $0 --check Print embedded lsm entry (or no LSM) Print the list of files in the archive Checks integrity of the archive 2) Running $0 : $0 [options] [--] [additional arguments to embedded script] with following options (in that order) --confirm --noexec --keep Ask before running embedded script Do not run embedded script Do not erase target directory after running the embedded script Do not spawn an xterm Do not give the extracted files to the current user --nox11 --nochown --target NewDirectory Extract in NewDirectory --tar arg1 [arg2 ...] Access the contents of the archive through the tar command --force --skip-cloudlinux --skip-imunifyav --skip-wptoolkit --skipapache --skipreposetup --experimental-os=X Force to install cPanel on a non recommended configuration Skip the automatic convert to CloudLinux even if licensed Skip the automatic installation of ImunifyAV (free) Skip the automatic installation of WordPress Toolkit Skip the Apache installation process Skip the installation of EasyApache 4 YUM repos Useful if you have custom EasyApache repos Tells the installer and cPanel to assume the distribution is a known supported one when it is not. Use of this feature is not recommended or supported; example: --experimental-os=centos-7.4 --tier: Named tier or cPanel version you specifically want to install. example: --tier='stable' or --tier='11.110' or --tier='11.115.9999.0' --source: Source to download cPanel from. Defaults to 'httpupdate.cpanel.net'. example: --source='next.cpanel.net' (for public testing builds). --myip=URL Setup myip url in /etc/cpsources.conf -- Following arguments will be passed to the embedded script EOH } MS_Check() { OLD_PATH=$PATH PATH=${GUESS_MD5_PATH:- "$OLD_PATH:/bin:/usr/bin:/sbin:/usr/local/ssl/bin:/usr/local/bin:/opt/openssl/bin"} MD5_PATH=`exec 2>&-; which md5sum || type md5sum` MD5_PATH=${MD5_PATH:-`exec 2>&-; which md5 || type md5`} PATH=$OLD_PATH MS_Printf "Verifying archive integrity..." offset=`head -n 488 "$1" | wc -c | tr -d " "` verb=$2 i=1 for s in $filesizes do crc=`echo $CRCsum | cut -d" " -f$i` if test -x "$MD5_PATH"; then md5=`echo $MD5 | cut -d" " -f$i` if test $md5 = "00000000000000000000000000000000"; then test x$verb = xy && echo " $1 does not contain an embedded MD5 md5sum=`MS_dd "$1" $offset $s | "$MD5_PATH" | cut -b-32`; if test "$md5sum" != "$md5"; then echo "Error in MD5 checksums: $md5sum is different from $md5" exit 2 else test x$verb = xy && MS_Printf " MD5 checksums are OK." >&2 fi crc="0000000000"; verb=n fi fi if test $crc = "0000000000"; then test x$verb = xy && echo " $1 does not contain a CRC checksum." >&2 else sum1=`MS_dd "$1" $offset $s | cksum | awk '{print $1}'` if test "$sum1" = "$crc"; then test x$verb = xy && MS_Printf " CRC checksums are OK." >&2 else echo "Error in checksums: $sum1 is different from $crc" exit 2; fi fi i=`expr $i + 1` offset=`expr $offset + $s` done echo " All good." checksum." >&2 else >&2 } UnTAR() { tar $1vf - 2>&1 || { echo Extraction failed. > /dev/tty; kill -15 $$; } } finish=true xterm_loop= nox11=n copy=none ownership=y verbose=n initargs="$@" while true do case "$1" in -h | --help) MS_Help exit 0 ;; --version) echo "$INSTALLER_VERSION" exit 0 ;; --info) echo Installer Version: "$INSTALLER_VERSION" echo Installer Revision: "$REVISION" echo Identification: "$label" echo Target directory: "$targetdir" echo Uncompressed size: 260 KB echo Compression: gzip echo Date of packaging: Wed Nov 29 19:13:13 UTC 2023 echo Built with Makeself version 2.1.3 on linux-gnu echo Build command was: "utils/makeself installd latest cPanel & WHM Installer ./bootstrap" if test x$script != x; then echo Script run after extraction: echo " " $script $scriptargs fi if test x"" = xcopy; then echo "Archive will copy itself to a temporary location" fi if test x"n" = xy; then echo "directory $targetdir is permanent" else echo "$targetdir will be removed after extraction" fi exit 0 ;; --dumpconf) echo LABEL=\"$label\" echo SCRIPT=\"$script\" echo SCRIPTARGS=\"$scriptargs\" echo archdirname=\"installd\" echo KEEP=n echo COMPRESS=gzip echo filesizes=\"$filesizes\" echo CRCsum=\"$CRCsum\" echo MD5sum=\"$MD5\" echo OLDUSIZE=260 echo OLDSKIP=489 exit 0 ;; --lsm) cat << EOLSM No LSM. EOLSM exit 0 ;; --list) echo Target directory: $targetdir offset=`head -n 488 "$0" | wc -c | tr -d " "` for s in $filesizes do MS_dd "$0" $offset $s | eval "gzip -cd" | UnTAR t offset=`expr $offset + $s` done exit 0 ;; --tar) offset=`head -n 488 "$0" | wc -c | tr -d " "` arg1="$2" if ! shift 2; then MS_Help exit 1 fi for s in $filesizes do MS_dd "$0" $offset $s | eval "gzip -cd" | tar "$arg1" - $* offset=`expr $offset + $s` done exit 0 ;; --check) MS_Check "$0" y exit 0 ;; --confirm) verbose=y shift ;; --noexec) script="" shift ;; --keep) keep=y shift ;; --target) keep=y targetdir=${2:-.} if ! shift 2; then MS_Help exit 1 fi ;; --nox11) nox11=y shift ;; --nochown) ownership=n shift ;; --xwin) finish="echo Press Return to close this window...; read junk" xterm_loop=1 shift ;; --phase2) copy=phase2 shift ;; --force) scriptargs="$scriptargs $1" shift ;; --skip-cloudlinux) scriptargs="$scriptargs $1" shift ;; --skip-imunifyav) scriptargs="$scriptargs $1" shift ;; --skip-wptoolkit) scriptargs="$scriptargs $1" shift ;; --skipapache) scriptargs="$scriptargs $1" shift ;; --skiplicensecheck) scriptargs="$scriptargs $1" shift ;; --skipreposetup) scriptargs="$scriptargs $1" shift ;; --stop_at_update_now) scriptargs="$scriptargs $1" shift ;; --stop_after_update_now) scriptargs="$scriptargs $1" shift ;; --experimental-os=*) scriptargs="$scriptargs $1" shift ;; --tier=*) scriptargs="$scriptargs $1" shift ;; --source=*) scriptargs="$scriptargs $1" shift ;; --myip=*) scriptargs="$scriptargs $1" shift ;; --) shift ;; -*) echo Unrecognized flag : "$1" >&2 MS_Help exit 1 ;; *) break ;; esac done case "$copy" in copy) SCRIPT_COPY="$TMPROOT/makeself$$" echo "Copying to a temporary location..." >&2 cp "$0" "$SCRIPT_COPY" chmod +x "$SCRIPT_COPY" cd "$TMPROOT" exec "$SCRIPT_COPY" --phase2 ;; phase2) finish="$finish ; rm -f $0" ;; esac if test "$nox11" = "n"; then if tty -s; then # Do we have a terminal? X? if test x"$DISPLAY" != x -a x"$xterm_loop" = x; then # No, but do we have if xset q > /dev/null 2>&1; then # Check for valid DISPLAY variable GUESS_XTERMS="xterm rxvt dtterm eterm Eterm kvt konsole aterm" for a in $GUESS_XTERMS; do fi fi : else fi fi if type $a >/dev/null 2>&1; then XTERM=$a break fi done chmod a+x $0 || echo Please add execution rights on $0 if test `echo "$0" | cut -c1` = "/"; then # Spawn a terminal! exec $XTERM -title "$label" -e "$0" --xwin "$initargs" else exec $XTERM -title "$label" -e "./$0" --xwin "$initargs" fi if test "$targetdir" = "."; then tmpdir="." else if test "$keep" = y; then echo "Creating directory $targetdir" >&2 tmpdir="$targetdir" else tmpdir="$TMPROOT/selfgz$$" fi mkdir -p $tmpdir || { echo 'Cannot create target directory' $tmpdir >&2 echo 'You should try option --target OtherDirectory' >&2 eval $finish exit 1 } fi location="`pwd`" if test x$SETUP_NOCHECK != x1; then MS_Check "$0" fi offset=`head -n 488 "$0" | wc -c | tr -d " "` if test x"$verbose" = xy; then MS_Printf "About to extract 260 KB in $tmpdir ... Proceed ? [Y/n] " read yn if test x"$yn" = xn; then eval $finish; exit 1 fi fi MS_Printf "Uncompressing $label" res=3 if test "$keep" = n; then trap 'echo Signal caught, cleaning up >&2; cd $TMPROOT; /bin/rm -rf $tmpdir; eval $finish; exit 15' 1 2 3 15 fi for s in $filesizes do if MS_dd "$0" $offset $s | eval "gzip -cd" | ( cd "$tmpdir"; UnTAR x ) | MS_Progress; then if test x"$ownership" = xy; then (PATH=/usr/xpg4/bin:$PATH; cd "$tmpdir"; chown -R `id -u` .; chgrp -R `id -g` .) fi else fi echo echo "Unable to decompress $0" >&2 eval $finish; exit 1 offset=`expr $offset + $s` done echo cd "$tmpdir" res=0 if test x"$script" != x; then if test x"$verbose" = xy; then else MS_Printf "OK to execute: $script $scriptargs $* ? [Y/n] " read yn if test x"$yn" = x -o x"$yn" = xy -o x"$yn" = xY; then eval $script $scriptargs $*; res=$?; fi eval $script $scriptargs $*; res=$? fi if test $res -ne 0; then test x"$verbose" = xy && echo "The program '$script' returned an error code ($res)" >&2 fi fi if test "$keep" = n; then cd $TMPROOT /bin/rm -rf $tmpdir fi eval $finish; exit $res
WEB3 #introductions
Web3 #introductions
NOSTR
image
https://music.apple.com/us/album/wally-world/1638397262
https://music.apple.com/us/album/wally-world/1638397262 #introductions