-\r
-recommended packages to install in cygwin's setup\r
-if you're going to use cygwin on windows:\r
-\r
-first, keep all the standard packages that cygwin will enable.\r
-second, add these packages to get the full recommended set...\r
-\r
-===========\r
-\r
-using apt-cyg (https://github.com/transcode-open/apt-cyg),\r
-this is the only command needed:\r
-\r
-apt-cyg install bc crypt emacs email expect gcc-g++ git gitk gvim inetutils \\r
- libcrypt-devel libcurl-devel libgnutls-devel make mutt ncftp openssh \\r
- openssl-devel perl python subversion time unzip util-linux vim xinit \\r
- xterm zip\r
-\r
-\r
-===========\r
-\r
-list broken out by category:\r
-\r
-shells:\r
- python\r
- perl\r
-\r
-network:\r
- ncftp\r
- openssh\r
-\r
-editors:\r
- vim\r
- gvim\r
- emacs\r
-\r
-revision control:\r
- git\r
- gitk\r
- subversion\r
-\r
-general tools:\r
- bc\r
- expect\r
- util-linux\r
- inetutils\r
- email\r
- mutt\r
- unzip\r
- zip\r
- crypt\r
- time\r
-\r
-libraries:\r
- libcurl-devel\r
- libgnutls-devel \r
- openssl-devel\r
-\r
-build tools:\r
- gcc4\r
- make\r
-\r
-x window support:\r
- xterm\r
- xinit\r
-\r
+
+The cygwin setup app is available at: http://cygwin.com
+
+The default packages selected by Cygwin are a good starting point for running
+Feisty Meow on windows. If you supplement this set with a few additional
+packages, you can rely on the apt-cyg tool rather than having to run the
+Cygwin setup program (which can be a little fiddly). Here is a step by step
+process to getting going with apt-cyg:
+
+1) Install Cygwin.
+
+Run the Cygwin setup exe from their website. Keep all the default packages
+that the installer suggests, but add the following additional ones (the
+easiest way to add additional packages is to switch to the "Full" view for the
+package list and then search for the terms below):
+
+ + lynx
+ + wget
+ + subversion
+
+2) Install apt-cyg.
+
+The apt-cyg program brings the convenience of the Debian and Ubuntu installer
+application (apt) to Cygwin. This program does require a couple of additional
+setup steps.
+
+This material is drawn from the apt-cyg home page:
+ https://github.com/transcode-open/apt-cyg
+
+Start the cygwin bash prompt (there should be a desktop icon or start menu
+icon for it called something like "cygwin64") and run the following
+commands (omitting the '#' in front):
+
+ # lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
+ # install apt-cyg /bin
+
+3) Install the basic set of cygwin apps and libraries.
+
+These tools are not necessarily needed by the Feisty Meow scripts, but they
+are all required to create a sane and useful Unix or Linux environment on
+MS-Windows. You may find you will want additional packages installed in the
+future, and you can use this same approach.
+
+In the cygwin bash prompt, type this command:
+
+# apt-cyg install bc crypt cygutils emacs email expect gcc-g++ git gitk \
+ gvim inetutils less lynx make mutt ncftp openssh perl procps python \
+ sharutils shutdown subversion time unzip util-linux vim wget xinit \
+ xterm zip
+
+You may have cleverly spotted that we repeated some package names that were
+already installed using the Cygwin setup program in step 1. That is fine and
+should just fetch the latest versions.
+
+Later, to update the apt-cyg package datebase to the latest available on the
+internet, you can run this command:
+
+# apt-cyg update
+
+We don't currently know of an analog in apt-cyg of the "apt dist-upgrade"
+command, which fetches all updated versions of the installed packages. We
+think the install command above will upgrade packages when there are new ones
+available. Also, the cygwin setup tool (bless its heart) may automatically
+update packages if you run it again (you don't need to select anything again,
+but just run through the install process to get the latest).
+
+==> hmmm: verify above claims.
+
+
--- /dev/null
+
+Welcome, adventurous script user.
+
+These are the handiest commands available in the Feisty Meow scripts.
+Note that each script is expected to be self-documenting. Try running it
+with a "--help" flag (or with no parameters in some cases) to print the
+built-in docs. At worst, you may have to read the script (that is a
+"documentation fail" on our part; please let us know).
+
+setup and loading commands
+==========================
+
++ read "readme.txt" in the top of the feisty meow codebase, or
++ read it online at: https://feistymeow.org/feisty_meow/readme.txt
+
+generally useful commands
+=========================
+
+ pwd:
+ reports similarly to the good old system "pwd", but translates the $HOME
+ variable into the '~' name. e.g., if you're fred in /home/fred/turnips
+ and you run 'pwd', then it will print: ~/turnips
+
+ i:
+ take inventory. prints out some time and relative dimension in space
+ information and shows the current directory's contents.
+
+ dir or l (lower-case L):
+ show the directory with a "summing" feature that calculates the full size
+ consumed by all files in the listing, with somewhat esthetic output.
+
+ ls:
+ the standard ls command (not the summing directory), but with ls colors
+ enabled.
+
+ del or rm:
+ invoke "safedel" feature to remove the files specified. this archives the
+ deleted files in "$TMP/zz_safedel_keep" and writes a report of the deletion
+ history in "$TMP/zz_safedel_report.txt".
+
+note: currently there is no "empty the trash" function aside from running a
+command such as:
+ # \rm -rf $TMP/zz_safedel*
+the backslash forces bash to run the "rm" tool from the path rather than
+using the feisty meow alias. a trash flushing feature is planned for the
+somewhat near future.
+
+revision control commands
+=========================
+
+all revision control commands bring up the editor in the EDITOR environment
+variable when creating commit messages. you need to actually save and quit
+from that editor when you're done writing your commit message.
+
+ here's a guide to writing good commit messages:
+ + https://robots.thoughtbot.com/5-useful-tips-for-a-better-commit-message
+
+========
+the first suite of commands takes a list of directory names as parameters and
+then operates on those names.
+========
+
+ rgetem:
+ does a simple update (or pull) of the repository paths provided on the
+ command line. this will only get things from the main origin that the
+ repository is hooked up with, so it is super quick compared to the next
+ couple commands.
+
+ rpuffer:
+ update the repositories provided on the command line by "puffing them out",
+ which means that the upstream repositories that feed the local one will be
+ synched up with it. this is quite important to do when a git repository has
+ multiple branches, since unmerged changes upstream can really snarl up your
+ checkin. this is basically a heavyweight version of rgetem.
+
+ rcheckin:
+ checks in the list of repositories passed on the command line. in git
+ parlance, this adds all modified or untracked files, then commits all
+ changes in the repository, and finally pushes up the changes to the remote
+ online repository. before doing the checkin, this will do a full "rpuffer"
+ update on the repository to ensure that there are no unmerged upstream
+ changes that could cause problems later.
+
+========
+the next suite of commands uses the REPOSITORY_LIST environment variable as
+the set of revision controlled folders to operate on. the feisty meow scripts
+automatically add the feisty meow top-level (the apex) to this list to ensure
+that updates are received when available.
+========
+
+ getem:
+ update all repositories in the REPOSITORY_LIST from their upstream remote
+ counterparts. fast.
+
+ puffer:
+ puffs out the REPOSITORY_LIST items to merge upstream changes.
+
+ checkin:
+ checks in all changes in the REPOSITORY_LIST to their remote repositories.
+
+========
+some assorted other revision control commands:
+========
+
+ feisty_branch:
+ shows the current branch that is checked out.
+
+ this command will move your feisty meow codebase to the development branch:
+ pushd $FEISTY_MEOW_APEX; git checkout dev; popd
+
+ and this command will get you back onto the mainline branch:
+ pushd $FEISTY_MEOW_APEX; git checkout master; popd
+
+=============================
+the site avenger script suite
+=============================
+
+the site avenger tools (inherited from the avbash project) are commands for
+managing web sites. these scripts offer a lot of power to the developer, and
+of course that comes with great responsibility...
+
+the site avenger scripts are configured by "app" files stored in the "config"
+directory (in $FEISTY_MEOW_SCRIPTS/scripts/site_avenger/config). the scripts
+seek out a config file named after the application, e.g. they look for
+"winterportlibrary.app" if the application name is "winterportlibrary".
+the basic config file "default.app" is used for any application that is unknown
+in the config directory. any of the variable definitions provided in
+default.app can be overridden to change how the applications, and associated
+web site and domain, are configured. see "mapsdemo.app" for an example of
+overriding the domain name for the mapsdemo application.
+
+ revamp_cakelampvm:
+ establishes permissions and ownership to make the virtual machine and its
+ services behave properly. if something goes wonky, try running this script.
+ this script is also the main vehicle for delivering configuration changes
+ to the cakelampvm. we are trying really hard to never release a version 2
+ of the vm, since we can patch it as needed using the revamp script. let's
+ see how well that works out...
+
+ standup:
+ brings up an application or web site from scratch (potentially) by creating
+ an appropriate domain name, writing a basic apache site config file, pulling
+ the application from a git repository, and "powering up" the application via
+ composer. this is most powerful and effective on php sites, but can also be
+ used for other types of websites. note that this, and all of the scripts
+ here, are heavily biased for site avenger based development at saco designs.
+ to make these scripts truly your own, write configuration files (see above)
+ that define the proper folders and repository for your applications.
+
+ teardown:
+ takes down a site previously brought up by the standup command. this just
+ eliminates the domain and the apache site though; the code is left in place
+ to prevent disaster.
+
+ powerup:
+ similar to standup, but just gets the application source out and powers it
+ up with composer.
+
+(note: automatic database configuration and inflation is in the pipeline for
+the powerup command, but is not ready yet.)
+
+ avcoreup:
+ updates the avcore portion of a site avenger application. this command can
+ accept an application name within which to update, or it can auto-pick the
+ applicatin for you from the available checked out ones in ~/apps (the default
+ storage folder for all site avenger style sites).
+
+ siteup:
+ updates the entire checked out repository for a site avenger application.
+ supports app name on the command line, or auto-picks the app.
+
+ sitepush:
+ checks in the source code and other site assets for a site avenger app.
+ supports passing an app name on the command line, or auto-picks the app.
+
+ satis-refresh:
+ updates satis for a site(?).
+
+note: satis-refresh is the one site avenger command that hasn't been "feisty meowicized" yet.
+
+lower level scripts used by site avenger scripts
+------------------------------------------------
+
+ add_domain and remove_domain: (from system script collection)
+ adds (or removes) a DNS domain to the bind9 configuration. the domain
+ tools, are very sensitive to any edits within the chunks of code they have
+ written. when it comes time to remove the domain again, the script will eat
+ the number of lines it expects to find after the beginning of the domain
+ definition that it added. to avoid any issues, if you need to edit the bind
+ config files, be sure to do it way above or way below the auto-generated
+ domain chunks.
+
+ add_apache_site and remove_apache_site: (from system script collection)
+ creates (or removes) an apache compatible site definition. this will rely
+ on the site's domain previously having been added to the DNS.
+
+note: currently we only implement the http site, but we're planning to add https support via self-signed certificates soon.
+
+
Configuration and Usage</h1>
<h2 style=" text-align: center;">By Chris Koeritz</h2>
<h3 style=" text-align: center;"> Vintage: cakelampvm v002
- Updated: 2017-11-15</h3>
+ Updated: 2017-11-16</h3>
+ <p>The cakelampvm project provides a virtualbox VM that acts as an "internet
+ in a bottle". The virtual machine provides DNS services (<a title="dns server"
+ href="http://www.bind9.net/">bind9</a>), a Web server (<a title="patchy"
+ href="https://httpd.apache.org/">Apache2</a>), a full <a title="ubuntu means compassion and humanity"
+ href="https://www.ubuntu.com/">Ubuntu</a> <a title="it's pronounced leenoox"
+ href="https://www.linuxfoundation.org/">Linux</a> desktop environment,
+ the <a title="flux is change" href="http://fluxbox.org/">Fluxbox</a> <a
+ title="a better windows" href="https://www.x.org/">X window manager</a>,
+ and a suite of tools called the <a title="feisty meow® concerns ltd. website"
+ href="https://feistymeow.org/">Feisty Meow® codebase</a>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ . Together, these services provide you with a very flexible and
+ powerful testbed for web development, especially suited for <a title="it's cake"
+ href="https://cakephp.org/">CakePHP</a>.</p>
+ <p>todo: arrange gritty details to back.</p>
+ <p>TOC GOES HERE.</p>
<h6> </h6>
- <h2>Basic info for the guest VM</h2>
+ <h2><span style="text-decoration: underline;">G</span>uest VM Configuration</h2>
<ul>
- <li>hostname: cakelampvm.com</li>
+ <li>hostname: <a title="the vm's website, when configured properly" href="https://cakelampvm.com/">cakelampvm.com</a></li>
<li>local IP address: 10.28.42.20</li>
- <li>services: DNS (bind9), apache2, fluxbox X windowing system, gnome
- display manager</li>
+ <li>services: DNS (bind9), apache2, fluxbox X windowing system, <a title="not just in the garden"
+ href="https://www.gnome.org/">gnome display manager</a></li>
<li>main user: developer (password distributed separately)</li>
<li>mysql root password: (password distributed separately)</li>
</ul>
+ <h2>Powering up with the Feisty Meow® scripts</h2>
+ <p>[First, let me drop the registered trademark symbol from here on
+ in. I hope its presence above has been sufficiently clear for legal
+ purposes, but now it will just get in the way. Also, capitalization
+ really bores me, and it's the feisty meow codebase anyhow, so that's how
+ it will be written henceforth.]</p>
+ <p>The feisty meow scripts are a cohesive bash scripting environment for
+ getting a variety of tasks done. The scripts recently incorporated
+ the 'avbash' collection from Saco Designs, which provides tools for
+ bringing up CakePHP web sites and managing the collection of repositories
+ for those sites. Each website is considered an "application", and
+ the application name itself (e.g. "winterportlibrary") can often provide
+ all the details for "powering up" the site. The feisty meow team has
+ added additional scripts for managing DNS domains and Apache websites that
+ provide the capability to "stand up" an entire website around an
+ application, with accompanying domain.</p>
+ <p>The scripts for now are documented separately within the Feisty Meow
+ codebase. The <a title="quickstart" href="https://feistymeow.org/feisty_meow/readme.txt">Feisty
+ Meow readme</a> file provides some valuable information on configuring
+ the codebase. If you have the cakelampvm, then this has already been
+ done for you on the vm in the developer account. The script
+ documentation is available in the UHHHHHH page of something..</p>
<h2>How to set up virtualbox for your host PC</h2>
<ol>
<li>Download and install virtualbox: