fixed doc errors plus vm script mods
[feisty_meow.git] / documentation / feisty_meow_command_reference.txt
1
2 Welcome, adventurous script user.
3
4 These are the handiest commands available in the Feisty Meow scripts.
5 Note that each script is expected to be self-documenting.  Try running it
6 with a "--help" flag (or with no parameters in some cases) to print the
7 built-in docs.  At worst, you may have to read the script (that is a
8 "documentation fail" on our part; please let us know).
9
10 setup and loading commands
11 ==========================
12
13 + read "readme.txt" in the top of the feisty meow codebase, or
14 + read it online at: https://feistymeow.org/feisty_meow/readme.txt
15
16 generally useful commands
17 =========================
18
19   pwd:
20   reports similarly to the good old system "pwd", but translates the $HOME
21   variable into the '~' name.  e.g., if you're fred in /home/fred/turnips
22   and you run 'pwd', then it will print: ~/turnips
23
24   i:
25   take inventory.  prints out some time and relative dimension in space
26   information and shows the current directory's contents.
27
28   dir or l (lower-case L):
29   show the directory with a "summing" feature that calculates the full size
30   consumed by all files in the listing, with somewhat esthetic output.
31
32   ls:
33   the standard ls command (not the summing directory), but with ls colors
34   enabled.
35
36   del or rm:
37   invoke "safedel" feature to remove the files specified.  this archives the
38   deleted files in "$TMP/zz_safedel_keep" and writes a report of the deletion
39   history in "$TMP/zz_safedel_report.txt".
40
41 note: currently there is no "empty the trash" function aside from running a
42 command such as:
43   # \rm -rf $TMP/zz_safedel*
44 the backslash forces bash to run the "rm" tool from the path rather than
45 using the feisty meow alias.  a trash flushing feature is planned for the
46 somewhat near future.
47
48 revision control commands
49 =========================
50
51 all revision control commands bring up the editor in the EDITOR environment
52 variable when creating commit messages.  you need to actually save and quit
53 from that editor when you're done writing your commit message.
54
55   here's a guide to writing good commit messages:
56   + https://robots.thoughtbot.com/5-useful-tips-for-a-better-commit-message
57
58 ========
59 the first suite of commands takes a list of directory names as parameters and
60 then operates on those names.
61 ========
62
63   rgetem:
64   does a simple update (or pull) of the repository paths provided on the
65   command line.  this will only get things from the main origin that the
66   repository is hooked up with, so it is super quick compared to the next
67   couple commands.
68
69   rpuffer:
70   update the repositories provided on the command line by "puffing them out",
71   which means that the upstream repositories that feed the local one will be
72   synched up with it.  this is quite important to do when a git repository has
73   multiple branches, since unmerged changes upstream can really snarl up your
74   checkin.  this is basically a heavyweight version of rgetem.
75
76   rcheckin:
77   checks in the list of repositories passed on the command line.  in git
78   parlance, this adds all modified or untracked files, then commits all
79   changes in the repository, and finally pushes up the changes to the remote
80   online repository.  before doing the checkin, this will do a full "rpuffer"
81   update on the repository to ensure that there are no unmerged upstream
82   changes that could cause problems later.
83
84 ========
85 the next suite of commands uses the REPOSITORY_LIST environment variable as
86 the set of revision controlled folders to operate on.  the feisty meow scripts
87 automatically add the feisty meow top-level (the apex) to this list to ensure
88 that updates are received when available.
89 ========
90
91   getem:
92   update all repositories in the REPOSITORY_LIST from their upstream remote
93   counterparts.  fast.
94
95   puffer:
96   puffs out the REPOSITORY_LIST items to merge upstream changes.
97
98   checkin:
99   checks in all changes in the REPOSITORY_LIST to their remote repositories.
100
101 ========
102 some assorted other revision control commands:
103 ========
104
105   feisty_branch:
106   shows the current branch that is checked out.
107
108   this command will move your feisty meow codebase to the development branch:
109   pushd $FEISTY_MEOW_APEX; git checkout dev; popd
110
111   and this command will get you back onto the mainline branch:
112   pushd $FEISTY_MEOW_APEX; git checkout master; popd
113
114 =============================
115 the site avenger script suite
116 =============================
117
118 the site avenger tools (inherited from the avbash project) are commands for
119 managing web sites.  these scripts offer a lot of power to the developer, and
120 of course that comes with great responsibility...
121
122 the site avenger scripts are configured by "app" files stored in the "config"
123 directory (in $FEISTY_MEOW_SCRIPTS/site_avenger/config).  the scripts
124 seek out a config file named after the application, e.g. they look for
125 "winterportlibrary.app" if the application name is "winterportlibrary".
126 the basic config file "default.app" is used for any application that is unknown
127 in the config directory.  any of the variable definitions provided in
128 default.app can be overridden to change how the applications, and associated
129 web site and domain, are configured.  see "mapsdemo.app" for an example of
130 overriding the domain name for the mapsdemo application.
131
132   revamp_cakelampvm:
133   establishes permissions and ownership to make the virtual machine and its
134   services behave properly.  if something goes wonky, try running this script.
135   this script is also the main vehicle for delivering configuration changes
136   to the cakelampvm.  we are trying really hard to never release a version 2
137   of the vm, since we can patch it as needed using the revamp script.  let's
138   see how well that works out...
139
140   standup:
141   brings up an application or web site from scratch (potentially) by creating
142   an appropriate domain name, writing a basic apache site config file, pulling
143   the application from a git repository, and "powering up" the application via
144   composer.  this is most powerful and effective on php sites, but can also be
145   used for other types of websites.  note that this, and all of the scripts
146   here, are heavily biased for site avenger based development at saco designs.
147   to make these scripts truly your own, write configuration files (see above)
148   that define the proper folders and repository for your applications.
149
150   teardown:
151   takes down a site previously brought up by the standup command.  this just
152   eliminates the domain and the apache site though; the code is left in place
153   to prevent disaster.
154   
155   powerup:
156   similar to standup, but just gets the application source out and powers it
157   up with composer.
158
159 (note: automatic database configuration and inflation is in the pipeline for
160 the powerup command, but is not ready yet.)
161   
162   avcoreup:
163   updates the avcore portion of a site avenger application.  this command can
164   accept an application name within which to update, or it can auto-pick the
165   applicatin for you from the available checked out ones in ~/apps (the default
166   storage folder for all site avenger style sites).
167
168   siteup:
169   updates the entire checked out repository for a site avenger application.
170   supports app name on the command line, or auto-picks the app.
171
172   sitepush:
173   checks in the source code and other site assets for a site avenger app.
174   supports passing an app name on the command line, or auto-picks the app.
175
176   satis-refresh:
177   updates satis for a site(?).
178
179 note: satis-refresh is the one site avenger command that hasn't been "feisty meowicized" yet.
180
181 lower level scripts used by site avenger scripts
182 ------------------------------------------------
183
184   add_domain and remove_domain: (from system script collection)
185   adds (or removes) a DNS domain to the bind9 configuration.  the domain
186   tools, are very sensitive to any edits within the chunks of code they have
187   written.  when it comes time to remove the domain again, the script will eat
188   the number of lines it expects to find after the beginning of the domain
189   definition that it added.  to avoid any issues, if you need to edit the bind
190   config files, be sure to do it way above or way below the auto-generated
191   domain chunks.
192
193   add_apache_site and remove_apache_site: (from system script collection)
194   creates (or removes) an apache compatible site definition.  this will rely
195   on the site's domain previously having been added to the DNS.
196
197 note: currently we only implement the http site, but we're planning to add https support via self-signed certificates soon.
198
199