From: Chris Koeritz Date: Sun, 14 Nov 2021 14:49:39 +0000 (-0500) Subject: version 1.40.130 release X-Git-Tag: 2.140.130 X-Git-Url: https://feistymeow.org/gitweb/?a=commitdiff_plain;h=f7f0b88983e7c6f5220f67c163df11245119cbed;p=feisty_meow.git version 1.40.130 release ongoing cleanups in scripts, nicer check register template, simple user story template, simple placard templates for trash and recycling buckets, bug fixes i'm sure, new scripts for finding newest and oldest files, script for dumping out all certs in a cert chain PEM file, surprisingly many edits in core files so need to go back and look at that, but onward to forward progress my mangs. --- diff --git a/documentation/feisty_meow_command_reference.txt b/documentation/feisty_meow_command_reference.txt index 796f7e65..d885f0fa 100644 --- a/documentation/feisty_meow_command_reference.txt +++ b/documentation/feisty_meow_command_reference.txt @@ -179,8 +179,8 @@ 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). + application 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. diff --git a/infobase/document_templates/check_register.odt b/infobase/document_templates/check_register.odt index fba791b6..150c6a5f 100644 Binary files a/infobase/document_templates/check_register.odt and b/infobase/document_templates/check_register.odt differ diff --git a/infobase/document_templates/dry_trash_sign.odp b/infobase/document_templates/dry_trash_sign.odp new file mode 100644 index 00000000..a8129b0f Binary files /dev/null and b/infobase/document_templates/dry_trash_sign.odp differ diff --git a/infobase/document_templates/recycling_bin_sign.odp b/infobase/document_templates/recycling_bin_sign.odp new file mode 100644 index 00000000..ffd2c39f Binary files /dev/null and b/infobase/document_templates/recycling_bin_sign.odp differ diff --git a/infobase/document_templates/user_story_template.txt b/infobase/document_templates/user_story_template.txt new file mode 100644 index 00000000..d5b8eaf7 --- /dev/null +++ b/infobase/document_templates/user_story_template.txt @@ -0,0 +1,6 @@ + +A typical "user story" in Scrum goes like this... + +As user/role X, I want feature/item Y, because of business purpose Z. + + diff --git a/infobase/document_templates/wet_trash_sign.odp b/infobase/document_templates/wet_trash_sign.odp new file mode 100644 index 00000000..804e1047 Binary files /dev/null and b/infobase/document_templates/wet_trash_sign.odp differ diff --git a/infobase/fortunes.dat b/infobase/fortunes.dat index 312db4a5..69e5f01f 100644 --- a/infobase/fortunes.dat +++ b/infobase/fortunes.dat @@ -2609,8 +2609,9 @@ And you may ask yourself "Am I right? Am I wrong?" And you may say to yourself "MY GOD! WHAT HAVE I DONE?" -- The Talking Heads ~ -The nice thing about standards is that there are -so many of them to choose from. +The nice thing about standards is that you have so many to choose from; +furthermore, if you do not like any of them, +you can just wait for next year's model. -- Andrew S. Tanenbaum ~ A bore is a man who, when you ask him how he is, will tell you. @@ -35011,8 +35012,8 @@ the bodhimind. -- Glenn Mullin, "The Practice of Kalachakra", foreword by H.H. the Dalai Lama, published by Snow Lion Publications ~ -After suffering severe puncture wounds without shooting any goop on my -opponent, I realized I was simply outgunned. Never bring caulk to a +After suffering severe puncture wounds without shooting any goop on my +opponent, I realized I was simply outgunned. Never bring caulk to a nailgun fight. -- Stephanie S. Thompson ~ @@ -42956,7 +42957,7 @@ Without achieving anything, your aim will be spontaneously accomplished. Trying to find the pain in life is the renunciation of hinayana. Trying to find the ambition in life, trying to reach higher goals, is the bodhisattva's ambition in the mahayana. Trying to find the subtleties of -life is the tantric discovery of mystical experience in the vajrayana.   +life is the tantric discovery of mystical experience in the vajrayana. -- Milarepa, from "Milarepa: Lessons from the Life and Songs of Tibet's Great Yogi", by Chögyam Trungpa, published by Shambhala Publications ~ @@ -43004,7 +43005,7 @@ people need. According to the Buddhist point of view, an artist's intention is compassion. Buddhist artists create in order to make a link with other beings through their inner pure elements, and to transform their outer ordinary gross -elements into enlightenment by means of that connection.   +elements into enlightenment by means of that connection. -- Thinley Norbu, from "Magic Dance: The Display of the Self-Nature of the Five Wisdom Dakinis", published by Shambhala Publications ~ @@ -43110,7 +43111,7 @@ hungry ghosts, animals, humans, and so forth. When they fall, mentally they suffer greatly. Therefore, sentient beings born in the states of the six wanderers have nothing but suffering. If we think about that, compassion can arise. -  -- Khenchen Thrangu, "Essential Practice: Lectures on KamalashÄ«la's +  -- Khenchen Thrangu, "Essential Practice: Lectures on KamalashÄ«la's Stages of Meditation in the Middle Way School", published by Shambhala Publications ~ @@ -43129,7 +43130,7 @@ ripened. The benefit of hearing, thinking, and meditating, in terms of causing all persons to possess happiness and the causes of happiness, is inconceivable, but if it is not dedicated, then when anger arises, it will be destroyed. This benefit cannot be seen with the eye, but it is inconceivable. -  -- Kensur Lekden, from "Meditations of a Tibetan Tantric Abbot: The Main +  -- Kensur Lekden, from "Meditations of a Tibetan Tantric Abbot: The Main Practices of the Mahayana Buddhist Path", translated and edited by Jeffrey Hopkins, published by Shambhala Publications ~ @@ -43153,7 +43154,7 @@ drink now, this lifetime is short. Our longest condition of life is our countless future lives. If you consider only this which you can see now and you do not consider all the future lives which you cannot see, you will incur immeasurable fault. You will harm yourself. -  -- Kensur Lekden, from "Meditations of a Tibetan Tantric Abbot: The Main +  -- Kensur Lekden, from "Meditations of a Tibetan Tantric Abbot: The Main Practices of the Mahayana Buddhist Path", translated and edited by Jeffrey Hopkins, published by Shambhala Publications ~ @@ -43248,7 +43249,7 @@ It is better to make an effort. We have to develop endeavor. Thus with patience I will strive with diligence. For in such diligence enlightenment is found. If no wind blows, then nothing stirs, - And neither is there merit without diligence.   + And neither is there merit without diligence. -- H.H. the Fourteenth Dalai Lama, from "The Bodhisattva Guide: A Commentary on The Way of the Bodhisattva", The Bodhisattva Guide was originally @@ -43323,7 +43324,7 @@ What is there to prevent the dawn of Dharma's light? Hunger, thirst, cold, and the like--all forms of physical affliction-- Together with sadness, fear, and all such mental suffering, Can, through the teachings, enhance the purifying path -And, unburdened by avoidance or indulgence, adorn the mind!   +And, unburdened by avoidance or indulgence, adorn the mind! -- Patrul Rinpoche, from "Beyond the Ordinary Mind: Dzogchen, Rimé, and the Path of Perfect Wisdom", translated by Adam Pearcey, published by @@ -43379,7 +43380,7 @@ Do not latch onto happiness; do not eliminate misery. Thereby everything is accomplished. Attachment to pleasure brings misery. Total clarity, being non-conceptual, -Is self-refreshing pristine awareness.   +Is self-refreshing pristine awareness. -- Longchenpa, from "You Are the Eyes of the World", published by Shambhala Publications ~ @@ -43399,7 +43400,7 @@ The enlightened mind, devoid of concepts The sun of fundamental nature, bright and clear, Will rise up from within. In this realization, changeless and unmoving, -There is nothing to be added, nothing to remove.   +There is nothing to be added, nothing to remove. -- Longchenpa, from "Finding Rest in Meditation", published by Shambhala Publications ~ @@ -43502,7 +43503,7 @@ Through the blessings of the divine three foundations, May you quickly find the emptiness of your own mind, And from the kingdom of the ever-pure great perfection, Bring about the great aims of boundless beings. -  -- from "Gendun Chopel: Tibet's Modern Visionary", by Donald S. Lopez +  -- from "Gendun Chopel: Tibet's Modern Visionary", by Donald S. Lopez Jr., published by Shambhala Publications ~ Parallel to compassion, the Buddhist teachings emphasize loving-kindness--the @@ -43564,7 +43565,7 @@ transcending suffering. He said, "If a monk harms others, he is not a monk." I am a Buddhist monk, so I try to practice accordingly. When people think this practice is something unique and special and call me a leader of world peace, I feel almost ashamed! -  -- H.H. the Fourteenth Dalai Lama, from "The Bodhisattva Guide", published +  -- H.H. the Fourteenth Dalai Lama, from "The Bodhisattva Guide", published by Shambhala Publications ~ We have talked about impermanence and how painful it is to acknowledge that @@ -43592,7 +43593,7 @@ Since beginningless time the nature has been peace itself. Direct perfect enlightenment [with regard to] all aspects, and abandonment of the stains along with their imprints [are called] buddha and nirvana respectively. -In truth, these are not two different things.   +In truth, these are not two different things. -- Maitreya, Jamgon Kongtrul Lodro Taye, Khenpo Tsultrim Gyamtso, and Asanga in "Buddha Nature: The Mahayana Uttaratantra Shastra with Commentary", @@ -43620,7 +43621,7 @@ and real. But here, describing the self as being composed of aggregates can help us see ourselves more accurately. The word skandha can be translated literally as "heap." This definition, when applied to ourselves, can help us see that we do not have a cohesive, real, and solid self. We are just a -heap of stuff — flesh, blood, veins, nerves, bones, hair, cartilage, and so +heap of stuff--flesh, blood, veins, nerves, bones, hair, cartilage, and so on. When we sort through this heap, what are we actually? None of the elements of the heap is actually "me." We are a mere mishmash of material conditions that we have identified with and labeled "I." @@ -43635,9 +43636,9 @@ feet. I get that." But is it possible for anyone to stand on their own two feet without their mother, father, or guardian to guide them? When we are born, we are completely helpless and dependent. We would never survive without the help of others. There is truly no such thing as autonomy. So if -you want to live in accordance with the nature of things—which means living -in grace—practically speaking, it will require some humility and gratitude -for the ways in which your tradition has come down to you with so much care.   +you want to live in accordance with the nature of things--which means living +in grace--practically speaking, it will require some humility and gratitude +for the ways in which your tradition has come down to you with so much care. -- Elizabeth Mattis Namgyel, from "The Logic of Faith: The Buddhist Approach to Finding Certainty Beyond Belief and Doubt", published by Shambhala Publications @@ -43652,7 +43653,7 @@ meditation, thoughts are nothing other than impediments to what we are trying to do. So, when we are practicing meditation, we have to maintain the attitude, "This is my time to meditate and now I am not trying to think thoughts. If I let myself think, I am wasting this time I have to practice." -  -- Khenchen Thrangu, from "The Mahamudra Lineage Prayer: A Guide to +  -- Khenchen Thrangu, from "The Mahamudra Lineage Prayer: A Guide to Practice", published by Shambhala Publications ~ The arrogant mind never stops searching for identity, and this identity always @@ -43662,11 +43663,11 @@ creating a more elaborate persona: "the rebel," "the maverick," "the suffering artist," "the fearless leader." We can hold onto these labels on a "good" day. But when we feel insecure about our attributes, or our lack thereof, we start to wonder how to define ourselves; we wonder who it is we really are. -Regardless of whether we’re having a good day or a low self-esteem day, the -point is, we haven’t found a way to relax, to be natural, unself-conscious. -We don’t know how to take our seat in ordinariness and feel comfortable in -our own skin. We’re always searching for something to be.    -  -- Dzigar Kongtrul, from "Light Comes Through: Buddhist Teachings on +Regardless of whether we're having a good day or a low self-esteem day, the +point is, we haven't found a way to relax, to be natural, unself-conscious. +We don't know how to take our seat in ordinariness and feel comfortable in +our own skin. We're always searching for something to be. +  -- Dzigar Kongtrul, from "Light Comes Through: Buddhist Teachings on Awakening to Our Natural Intelligence", published by Shambhala Publications ~ @@ -43680,8 +43681,8 @@ Elevate your experience and remain wide-open like the sky. Expand your mindfulness and remain pervasive like the earth. Steady your attention and remain unshakable like a mountain. Brighten your awareness and remain shining like a flame. -Clear your thought-free wakefulness and remain lucid like a crystal.   - -- Dakpo Tashi Namgyal, "Clarifying the Natural State", from "Jewels of +Clear your thought-free wakefulness and remain lucid like a crystal. + -- Dakpo Tashi Namgyal, "Clarifying the Natural State", from "Jewels of Enlightenment: Wisdom Teachings from the Great Tibetan Masters", compiled and translated by Erik Pema Kunsang, published by Shambhala Publications ~ @@ -43958,4 +43959,158 @@ being, regardless of the problem--regardless of how distorted their current attitudes and behavior are. That's how strong spiritual love is. -- Jeffrey Hopkins, from "A Truthful Heart: Buddhist Practices for Connecting with Others", Shambhala Publications +~ +this is not confirmed yet, but UVa is changing the name of its funding tokens. +UVa is moving away from the PTAO payment codes (Project, Task, Award, and +Organization) to a new acronym using "Cost center, Activity, Program, Spend +category" or... CAPS!!! +finally all my hard work in fallout new vegas will be paying off. +~ +Rob's Meeting Mantra: + +Is what I am thinking necessary to say? +Is it necessary for this to be said by ME? +Is it necessary for me to say this RIGHT NOW? + + -- Rob Diethorn +~ +fred's chow mantra: + just eat when you're hungry, + and be sure you're hungry and not just sating an appetite, + because scheduled food times are irrelevant to your body, + and can lead to overfeeding unless you're malnourished; + so let the body decide when to eat, + and use your brain to decide what you feed it. + -- fred t. hamster +~ +No problem can withstand the assault of sustained thinking. + -- Voltaire +~ +Clear thinking requires courage rather than intelligence. + -- Thomas Szasz +~ +Did you ever stop to think, and forget to start again? + -- Winnie the Pooh +~ +It is well for people who think, +to change their minds occasionally +in order to keep them clean. + -- Luther Burbank +~ +Language shapes the way we think, and determines what we can think about. + -- Benjamin Lee Whorf +~ +Misery is almost always the result of thinking. + -- Joseph Joubert +~ +Most of the mistakes in thinking +are inadequacies of perception +rather than mistakes of logic. + -- Edward de Bono +~ +Thought is the blossom; language the bud; action the fruit behind it. + -- Ralph Waldo Emerson +~ +What we think, we become. -- Shakyamuni Buddha +~ +pseudo-code for our daily lives: + +repeat: + if (not one_thing) then { + other_thing + } +:forever +~ +U R brilliant, +U need 2 keep working on that shine, +U can't lord it over others, +U R your own completeness as they are theirs. + -- fred t. hamster +~ +and goddess said to me, she said like, "i am omni-sexual and pan-gender... +bitches." i apologize for her language, but that's what she said. + -- fred t. hamster +~ + +vape temperature mantra for cannabis +(also a haiku if you don't pronounce the numbers...) + + things are tastiest, + celsius degrees ranging 164 -> 228, + dank vaporizer. + + get lightly toasted 164+, + proceed on to half baked at 180+, + way fully baked at 200+. + + dude, know when it's cooked, + never go over 230 ever, + we vape you long time. + -- fred t. hamster +~ + I found I was able to get a lot of tension off my shoulders by almost +"outing" myself in the press in that way, in very early circumstances. So +I wasn't going to get people crawling out the woodwork saying [seedy, muck- +raking voice]: "I'll tell you something about David Bowie that you don't +know..." I wasn't going to have any of that. I knew that at some point I +was going to have to say something about my life. And, again, Ziggy enabled +me to make things more comfortable for myself. There was an excitement that +the age of exploration was really finally here. Which is what I was going +through. It perfectly mirrored my lifestyle at the time. It was exactly what +was happening to me. There was nothing that I wasn't willing to try, to +explore and see if it was really part of my psyche or my nature. I was +terribly exploratory in every way, not just culturally but sexually and... +God, there was nothing I would leave alone. Like a--it's a terrible pun, +but--like a dog with a bone, I suppose! So I buried it! + The quote has taken on far more in retrospect than actually it was at the +time. I'm quite proud that I did it. On the other hand I didn't want to +carry a banner for any group of people, and I was as worried about that as +the aftermath. Being approached by organisations. I didn't want that. I +didn't feel like part of a group. I didn't like that aspect of it: this is +going to start overshadowing my writing and everything else that I do. +But there you go. + -- David Bowie, in Mojo, July 2002 +~ +I am King Gesar of Ling, +not so long ago named king +and principal ruler of the six provinces of Ling, +mandated by the gods to be the destined leader +and the one to quell the demons of the dark side. +Since I am the one entrusted with this aspiration, +my deeds and actions must follow. + -- from "The Taming of the Demons: From the Epic of Gesar of Ling", + translated by Jane Hawes, David Shapiro, and Lama Chönam, published + by Shambhala Publications +~ +  One of the stories that drew me to Zen was about how one of our Zen +ancestors responded to both insult and praise. In this story, Hakuin Zenji +was falsely accused of impregnating a young girl who lived in the village near +his hermitage. When her parents and the villagers came to accuse him, he said +merely, "Is that so?" + When the baby was born, Hakuin received the infant and cared for the child +with the help of a wet nurse. Sometime later, the girl confessed to her +parents that a village boy was the father of her child. Those who had accused +him earlier came then to reclaim the child and to praise Hakuin. + In response to their praise, he simply said, again, "Is that so?" + -- Reb Anderson, from "Entering the Mind of Buddha: Zen and the Six Heroic + Practices of Bodhisattvas", published by Shambhala Publications +~ +One day in a lecture Suzuki Roshi said, "When you see one leaf falling, you +may say, Oh, autumn is here! One leaf is not just one leaf; it means the +whole autumn. Here you already understand the all-pervading power of your +practice. Your practice covers everything." + -- Shunryu Suzuki, from "Zen Is Right Here: Teaching Stories and Anecdotes + of Shunryu Suzuki, author of Zen Mind, Beginner's Mind", published by + Shambhala Publications +~ +Compared with the force of the all-powerful weapons that exist today, we are +nothing, even less than ants. And yet those weapons were not made by demons +or aliens from another planet. They were made by humans just like me and +you... If we ever press the red button, others will do the same. If we bomb +them, bombs will rain on us. That's cause and effect, and it will just go +on and on. So what can we do? Only one thing can help us: loving-kindness. +Loving-kindness is the very foundation of a civilized world. + -- Chokyi Nyima Rinpoche, from "Sadness, Love, Openness: The Buddhist Path + of Joy", published by Shambhala Publications +~ diff --git a/infobase/patterns/gimp/whiteboard_cleaner_notes.txt b/infobase/patterns/gimp/whiteboard_cleaner_notes.txt index 9dfb1139..e68bdab8 100644 --- a/infobase/patterns/gimp/whiteboard_cleaner_notes.txt +++ b/infobase/patterns/gimp/whiteboard_cleaner_notes.txt @@ -1,6 +1,15 @@ how to clean whiteboard snapshots in general: + http://matthew.mceachen.us/blog/how-to-clean-up-photos-of-whiteboards-with-gimp-403.html + apparently the URL above is defunct. + + new URL on this topic: https://gist.github.com/adsr303/74b044534914cc9b3345920e8b8234f4 + requires a bit of gimp knowledge. + +==== + +[untested] script for whiteboard cleaning in batch can be found in this folder also. the batch-whiteboard-clean.scm script should go in: ~/.gimp-2.6/scripts diff --git a/octopi/library/sockets/tcpip_stack.cpp b/octopi/library/sockets/tcpip_stack.cpp index bb144e88..6ef9141c 100644 --- a/octopi/library/sockets/tcpip_stack.cpp +++ b/octopi/library/sockets/tcpip_stack.cpp @@ -35,6 +35,7 @@ using namespace basis; using namespace loggers; using namespace structures; +using namespace textual; namespace sockets { diff --git a/octopi/library/tests_sockets/makefile b/octopi/library/tests_sockets/makefile index 0d8a2cd2..6b0352c9 100644 --- a/octopi/library/tests_sockets/makefile +++ b/octopi/library/tests_sockets/makefile @@ -3,14 +3,14 @@ include cpp/variables.def PROJECT = tests_sockets TYPE = test SOURCE = bcast_spocketer.cpp spocket_tester.cpp -TARGETS = test_address.exe test_bcast_spocket.exe test_enum_adapters.exe \ - test_sequence_tracker.exe test_span_manager.exe test_spocket.exe test_ucast_spocket.exe +TARGETS = test_address.exe test_bcast_spocket.exe test_sequence_tracker.exe \ + test_span_manager.exe test_spocket.exe test_ucast_spocket.exe +ifneq "$(OS_SUBCLASS)" "darwin" + TARGETS += test_enum_adapters.exe +endif LOCAL_LIBS_USED = sockets unit_test application configuration loggers textual timely \ processes filesystem structures basis VCPP_USE_SOCK = t -#ifeq "$(COMPILER)" "VISUAL_CPP" -# LIBS_USED += ws2_32.lib -#endif RUN_TARGETS = $(ACTUAL_TARGETS) include cpp/rules.def diff --git a/production/feisty_meow_config.ini b/production/feisty_meow_config.ini index 73d939f1..08c2c00c 100644 --- a/production/feisty_meow_config.ini +++ b/production/feisty_meow_config.ini @@ -3,7 +3,7 @@ # specifies the version of the code that is being constructed here. major=2 minor=140 -revision=129 +revision=130 build=420 # specifies the remainder of the version record info. diff --git a/readme.txt b/readme.txt index e77c89ab..4b52f9ba 100644 --- a/readme.txt +++ b/readme.txt @@ -15,6 +15,8 @@ If you have stored it elsewhere, then please adapt the commands accordingly. How to get the feisty meow codebase +These steps assume that you have the "git" tool available. + | On Microsoft Windows, install the Cygwin tools as documented here: | /opt/feistymeow.org/feisty_meow/documentation/cygwin_install_list.txt (local file) or | https://feistymeow.org/feisty_meow/documentation/cygwin_install_list.txt (web) @@ -26,6 +28,11 @@ $ git clone git://feistymeow.org/feisty_meow How to load the feisty meow script environment +Prepare your host by installing the packages needed to bootstrap feisty meow. +If this fails, then you may need the manual installation steps at the end of +this file. +$ bash /opt/feistymeow.org/feisty_meow/scripts/core/prep_feisty_host.sh + Set up the feisty_meow scripts; this is only needed once, when you first get the codebase. $ bash /opt/feistymeow.org/feisty_meow/scripts/core/reconfigure_feisty_meow.sh @@ -52,26 +59,6 @@ https://feistymeow.org/feisty_meow/documentation/feisty_meow_command_reference.t ============== -How to install the feisty meow script dependencies - -A couple of perl modules are required by some of the scripts (including the -differ utility and the feisty meow customization system). They can be -installed with either apt or CPAN. - -Install using apt (on Ubuntu or Debian-based OS): -$ sudo apt install libfile-which-perl libtext-diff-perl - -Install using yum (on Centos or similar distros): -$ yum install perl-File-Which perl-Text-Diff - -or Install using perl's CPAN: -$ sudo cpan install Text::Diff File::Which - -or on Cygwin (MS-Windows), install with apt-cyg: -$ apt-cyg install perl-File-Which perl-Text-Diff - -============== - How to update the feisty meow codebase to the latest online version This assumes that a somewhat current version of feisty meow is already @@ -84,25 +71,6 @@ $ rpuffer $FEISTY_MEOW_APEX ; regenerate ============== -How to install the build dependencies for feisty meow - -These dependencies are used for building the applications, tools and tests -in the "nucleus", "octopi", "graphiq" and other C++ collections. - -| Ubuntu / Debian: -| $ sudo apt install build-essential librtmp-dev libcurl4-gnutls-dev libssl-dev - -| Centos / Redhat / Fedora: -| $ sudo yum install gcc gcc-c++ openssl-devel.x86_64 curl-devel - -The "kona" collection depends on Java version 8 or better. - -| Ubuntu: -| Set up the java PPA archive as described here: -| https://launchpad.net/~webupd8team/+archive/ubuntu/java - -============== - How to build the feisty meow codebase Run the following command to build the feisty meow libraries and applications. @@ -155,4 +123,43 @@ More information is available at the official site: https://feistymeow.org ============== +Manual Installation Steps: + +How to install the feisty meow script dependencies... + +A couple of perl modules are required by some of the scripts (including the +differ utility and the feisty meow customization system). They can be +installed with either apt or CPAN. + +Install using apt (on Ubuntu or Debian-based OS): +$ sudo apt install libfile-which-perl libtext-diff-perl + +Install using yum (on Centos or similar distros): +$ yum install perl-File-Which perl-Text-Diff + +or Install using perl's CPAN: +$ sudo cpan install Text::Diff File::Which + +or on Cygwin (MS-Windows), install with apt-cyg: +$ apt-cyg install perl-File-Which perl-Text-Diff + +How to install the build dependencies for feisty meow... + +These dependencies are used for building the applications, tools and tests +in the "nucleus", "octopi", "graphiq" and other C++ collections. + +| Ubuntu / Debian: +| $ sudo apt install build-essential librtmp-dev libcurl4-gnutls-dev libssl-dev + +| Centos / Redhat / Fedora: +| $ sudo yum install gcc gcc-c++ openssl-devel.x86_64 curl-devel + +The "kona" collection depends on Java version 8 or better. + +| Ubuntu: +| Set up the java PPA archive as described here: +| https://launchpad.net/~webupd8team/+archive/ubuntu/java + +============== + diff --git a/scripts/agenda/info_overload_report.sh b/scripts/agenda/info_overload_report.sh index dcb5f171..793f6566 100644 --- a/scripts/agenda/info_overload_report.sh +++ b/scripts/agenda/info_overload_report.sh @@ -112,6 +112,10 @@ full_report+="count\tcomplexity\tweight (kb)\tcategory\n\ ================================================================\n\ " +#### + +# this group is for hierarchies which we expect to have a stable name. + #hmmm: don't fail if the hierarchy doesn't exist. # high priority stuff would be called urgent. @@ -145,14 +149,14 @@ analyze_hierarchy_and_report $CLOUD_BASE/blue_sky "blue sky is the limit ideas" #### -# vocation is a prefix for anything i consider part of my life's work. -analyze_by_dir_patterns "life's work and other oddities" $CLOUD_BASE/vocation* +# this group is found based on matching a pattern, since we may not use a single +# standardized name for it, or maybe there are prefixes for similar items (like project-). # scan all the items declared as active projects. analyze_by_dir_patterns "active issues" $CLOUD_BASE/*active* -# rub alongside all the travel notes to see if any have interesting burrs. -analyze_by_dir_patterns "travel plans" $CLOUD_BASE/walkabout* +# vocation is a prefix for anything i consider part of my life's work. +analyze_by_dir_patterns "life's work and other oddities" $CLOUD_BASE/vocation* # scan across all appropriately named project or research folders. analyze_by_dir_patterns "running projects" $CLOUD_BASE/*project* $CLOUD_BASE/*research* @@ -160,12 +164,26 @@ analyze_by_dir_patterns "running projects" $CLOUD_BASE/*project* $CLOUD_BASE/*re # look for our mad scientist style efforts. analyze_by_dir_patterns "lab experiments" $CLOUD_BASE/*experiment* +# we also are running some businesses. get those notes in. +analyze_by_dir_patterns "business ops" $CLOUD_BASE/*business* + +# find any charity actions that need to be taken. +analyze_by_dir_patterns "charitable" $CLOUD_BASE/*charit* + +# rub alongside all the travel notes to see if any have interesting burrs. +analyze_by_dir_patterns "travel plans" $CLOUD_BASE/*travel* + # snag any work related items for that category. analyze_by_dir_patterns "jobby work tasks" $CLOUD_BASE/job* # scan all the trivial project folders. analyze_by_dir_patterns "trivialities and back burner items" $CLOUD_BASE/trivia* $CLOUD_BASE/backburn* +# okay, fudge. if there are game tasks, then count them too. what are they, nothing? not so. +analyze_by_dir_patterns "play time and games" $CLOUD_BASE/*gaming* $CLOUD_BASE/*game* + +#### + full_report+="================================================================\n\ " full_report+="$(format_report_line "$total_overload" "$total_weight" "$total_complexity" "total overload")" diff --git a/scripts/core/common.alias b/scripts/core/common.alias index 5143f048..eb076940 100644 --- a/scripts/core/common.alias +++ b/scripts/core/common.alias @@ -36,7 +36,7 @@ define_yeti_alias copy='\cp -i -v' define_yeti_alias cp='\cp -i -v' define_yeti_alias del='perl $FEISTY_MEOW_SCRIPTS/files/safedel.pl' define_yeti_alias deltree='perl $FEISTY_MEOW_SCRIPTS/files/safedel.pl' -define_yeti_alias df='\df -mh' +define_yeti_alias df='clean_df -h' define_yeti_alias dir='perl $FEISTY_MEOW_SCRIPTS/files/summing_dir.pl' define_yeti_alias du='\du -h' define_yeti_alias erase='perl $FEISTY_MEOW_SCRIPTS/files/safedel.pl' @@ -68,6 +68,7 @@ define_yeti_alias get_feisty='rpuffer $FEISTY_MEOW_APEX; regenerate' define_yeti_alias halt='sudo shutdown -h now' define_yeti_alias i=inventory define_yeti_alias l='perl $FEISTY_MEOW_SCRIPTS/files/summing_dir.pl' +define_yeti_alias larch='list_arch' define_yeti_alias ll='ls_dot_add=-a perl $FEISTY_MEOW_SCRIPTS/files/summing_dir.pl' define_yeti_alias ls='ls -HhFC $color_add' define_yeti_alias lsd='ls -hl' diff --git a/scripts/core/functions.sh b/scripts/core/functions.sh index 35808d2e..c5a4f87d 100644 --- a/scripts/core/functions.sh +++ b/scripts/core/functions.sh @@ -40,11 +40,19 @@ if [ -z "$skip_all" ]; then { to_find="$1"; shift local WHICHER="$(\which which 2>/dev/null)" +#>&2 echo "got whicher as: $WHICHER" if [ $? -ne 0 ]; then # there is no which command here. we produce nothing due to this. echo + return 2 fi - echo $($WHICHER $to_find 2>/dev/null) + local sporkenz # must be defined local here, before call, or we don't get exit value?! + sporkenz=$($WHICHER "$to_find" 2>/dev/null) +#>&2 echo "broken with this line, but here is exit val: $?" + local err=$? +#>&2 echo "got whicher as: $WHICHER" + echo $sporkenz + return $err } # makes a directory of the name specified and then tries to change the @@ -214,27 +222,19 @@ if [ -z "$skip_all" ]; then function ssh() { local args=($@) - # we remember the old terminal title, then force the TERM variable to a more generic - # version for the other side (just 'linux'); we don't want the remote side still - # thinking it's running xterm. - save_terminal_title - -#hmmm: why were we doing this? it scorches the user's logged in session, leaving it without proper terminal handling. -# # we save the value of TERM; we don't want to leave the user's terminal -# # brain dead once we come back from this function. -# local oldterm="$TERM" -# export TERM=linux - + save_terminal_title # remember the current terminal title. /usr/bin/ssh -C "${args[@]}" -# removed -Y flag because considered dangerous to trust remote hosts to not abuse our X session. - -# # restore the terminal variable also. -# TERM="$oldterm" +#hmmm: removed -Y flag because considered dangerous to trust remote hosts to not abuse our X session. + restore_terminal_title + } + # this version of ssh preserves the use of the -Y flag for when X forwarding is needed. + function yssh() + { + local args=($@) + save_terminal_title # remember the current terminal title. + /usr/bin/ssh -Y "${args[@]}" restore_terminal_title - if [ ! -z "$DEBUG_FEISTY_MEOW" ]; then - echo TERM title restored to prior value - fi } ############## @@ -509,9 +509,16 @@ if [ -z "$skip_all" ]; then bash $FEISTY_MEOW_SCRIPTS/core/reconfigure_feisty_meow.sh echo # force a full reload by turning off sentinel variables and methods. - unset -v CORE_VARIABLES_LOADED FEISTY_MEOW_LOADING_DOCK USER_CUSTOMIZATIONS_LOADED + unset -v CORE_VARIABLES_LOADED FEISTY_MEOW_LOADING_DOCK USER_CUSTOMIZATIONS_LOADED \ + BUILD_VARS_LOADED unalias CORE_ALIASES_LOADED &>/dev/null unset -f function_sentinel + + # reuse the original path if we can. + if [ ! -z "$FEISTY_MEOW_ORIGINAL_PATH" ]; then + export PATH="$FEISTY_MEOW_ORIGINAL_PATH" + fi + # reload feisty meow environment in current shell. log_feisty_meow_event "reloading the feisty meow scripts for $USER in current shell." source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" @@ -769,11 +776,11 @@ return 0 { count=$1; shift if [ -z "$count" ]; then - count=79 + count=$(($COLUMNS - 1)) fi echo local i - for ((i=0; i < $count - 1; i++)); do + for ((i=0; i < $count; i++)); do echo -n "=" done echo @@ -941,7 +948,10 @@ return 0 ############## # space 'em all: fixes naming for all of the files of the appropriate types - # in the directories specified. + # in the directories specified. we skip any file with a dot in front, to + # respect their hidden nature. currently the set of files we'll rename is + # very boutique; it's in this function, and just happens to be the types of + # files we work with a lot. function spacemall() { local -a dirs=("${@}") if [ ${#dirs[@]} -eq 0 ]; then @@ -952,9 +962,11 @@ return 0 #hmmm: any way to do the below more nicely or reusably? #hmmm: yes! a variable with a list of files that are considered TEXT_FILE_EXTENSIONS or something like that. #hmmm: yes continued! also a variable for BINARY_FILE_EXTENSIONS to avoid those, where we need to in other scripts. +#hmmm: wait, we actually have a mix here, since this is a renaming function and not a searching function; get it straight! +#hmmm: would the composition of those two types of extensions cover all the files i want to rename? they have to be "important". find "${dirs[@]}" -follow -maxdepth 1 -mindepth 1 -type f -and -not -iname ".[a-zA-Z0-9]*" | \ grep -i \ -"csv\|doc\|docx\|eml\|html\|jpeg\|jpg\|m4a\|mov\|mp3\|ods\|odt\|pdf\|png\|ppt\|pptx\|rtf\|txt\|vsd\|vsdx\|wav\|xls\|xlsx\|xml\|zip" | \ +"csv\|doc\|docx\|eml\|html\|jpeg\|jpg\|m4a\|mov\|mp3\|odp\|ods\|odt\|pdf\|png\|ppt\|pptx\|rtf\|txt\|vsd\|vsdx\|wav\|xls\|xlsx\|xml\|zip" | \ sed -e 's/^/"/' | sed -e 's/$/"/' | \ xargs bash "$FEISTY_MEOW_SCRIPTS/files/spacem.sh" # drop the temp file now that we're done. diff --git a/scripts/core/inventory.sh b/scripts/core/inventory.sh index aa5b0494..d32c86c7 100644 --- a/scripts/core/inventory.sh +++ b/scripts/core/inventory.sh @@ -20,15 +20,16 @@ if [ $OPERATING_SYSTEM == "UNIX" ]; then #Usage: sw_vers [-productName|-productVersion|-buildVersion] osname="$(sw_vers -productName 2>/dev/null)" osver="$(sw_vers -productVersion 2>/dev/null)" +#echo "osname = '$osname' and osver = '$osver'" if [[ "$osver" =~ ^10\.15.*$ ]]; then codename="Catalina" elif [[ "$osver" =~ ^10\.14.*$ ]]; then codename="Mojave" elif [[ "$osver" =~ ^10\.13.*$ ]]; then codename="High Sierra" - elif [[ "$osver" =~ ^11\.*$ ]]; then + elif [[ "$osver" =~ ^11\..*$ ]]; then codename="Big Sur" - elif [[ "$osver" =~ ^12\.*$ ]]; then + elif [[ "$osver" =~ ^12\..*$ ]]; then codename="Monterey" else codename="$(sw_vers -buildVersion 2>/dev/null)" diff --git a/scripts/core/is_feisty_up.sh b/scripts/core/is_feisty_up.sh new file mode 100644 index 00000000..1f4b2d8f --- /dev/null +++ b/scripts/core/is_feisty_up.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# tells the caller if the feisty_meow scripts have been initialized +# successfully or not, as far as we can tell. +# any parameter passed will cause us to go into debugging mode. + +do_debug="$1"; shift + +if [ \ + -z "$FEISTY_MEOW_APEX" -o \ + -z "$CORE_VARIABLES_LOADED" -o \ + -z "$FEISTY_MEOW_LOADING_DOCK" \ + ]; then + if [ ! -z "$do_debug" ]; then + echo "Bailing out because a crucial Feisty Meow initialization variable is missing." + fi + exit 1 +fi + +# we got through the minimal gauntlet, so claim we're initialized. +if [ ! -z "$do_debug" ]; then + echo "Looking good for every Feisty Meow initialization variable that we check." +fi +exit 0 + + diff --git a/scripts/core/launch_feisty_meow.sh b/scripts/core/launch_feisty_meow.sh index 1e7e6c99..2f8aca08 100644 --- a/scripts/core/launch_feisty_meow.sh +++ b/scripts/core/launch_feisty_meow.sh @@ -18,6 +18,13 @@ ############## +# first step--capture the current path if we haven't already. +if [ -z "$FEISTY_MEOW_ORIGINAL_PATH" ]; then + export FEISTY_MEOW_ORIGINAL_PATH="$PATH" +fi + +############## + # this script cannot handle figuring out where it lives, so approaches that # get the THISDIR will fail. this is a consequence of this always being used # in bash's 'source' directive, which does not pass the script name as @@ -118,7 +125,7 @@ if [ "$NO_REPAIRS_NEEDED" == "true" ]; then # this is our single entry point we can use without knowing any variables # yet in the initialization process. export FEISTY_MEOW_LOADING_DOCK="$HOME/.zz_feisty_loading" - #hmmm: the above is kind of a constant. that's not so great. +#hmmm: the above is kind of a constant. that's not so great. # make sure our main variables are established. FEISTY_MEOW_VARIABLES_LOADING_FILE="$FEISTY_MEOW_LOADING_DOCK/fmc_variables.sh" diff --git a/scripts/core/prep_feisty_host.sh b/scripts/core/prep_feisty_host.sh new file mode 100644 index 00000000..07b95ae0 --- /dev/null +++ b/scripts/core/prep_feisty_host.sh @@ -0,0 +1,152 @@ +#!/bin/bash + +# this is the feisty meow host preparation script. it installs all the packages required to run and build feisty meow scripts and applications. +# this script may still be a bit incomplete; we definitely use a lot of unix and linux tools in different scripts. + +# preconditions and dependencies--this script itself depends on: +# feisty meow +# bash +# anything else? + +#### + +# something borrowed... +function exit_on_error() { + if [ $? -ne 0 ]; then + echo -e "\n\nan important action failed and this script will stop:\n\n$*\n\n*** Exiting script..." + error_sound + exit 1 + fi +} + +#### + +# load feisty meow environment here, but first test that we *can* load it. + +#hmmm: currently, this script needs the system to have already been configured? +# that's the implication of calling launch_feisty... +# can we find that same bootstrapping code that will reconfigure first? +#more about this... +# hmmm: we need clean starty type approach! must not expect feisty to already be configured for use! +# e.g.?? $ bash /opt/feistymeow.org/feisty_meow/scripts/core/reconfigure_feisty_meow.sh +# hmmm: above ALSO ESSENTIAL TO GET RIGHT! + +PHASE_MESSAGE="Checking integrity of Feisty Meow subsystem" +if [ -z $FEISTY_MEOW_APEX ]; then + false; exit_on_error $PHASE_MESSAGE +fi + +# simple brute force check. can we go there? +pushd $FEISTY_MEOW_APEX &> /dev/null +exit_on_error locating feisty meow top-level folder +popd &> /dev/null + +# now ask feisty if it's there; should work as long as our scripts are in place. +bash $FEISTY_MEOW_APEX/scripts/core/is_feisty_up.sh +exit_on_error $PHASE_MESSAGE + +# standard load-up. +#hmmm: this will currently fail if reconfigure has never been called. +source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" + +#### + +# first the crucial bits for scripts to work... + +PHASE_MESSAGE="installing perl file and diff modules" + +# ubuntu or debian or other apt-based OSes... +if whichable apt; then + sudo apt install libfile-which-perl libtext-diff-perl + exit_on_error $PHASE_MESSAGE +# rpm based with yum available... +elif whichable yum; then + sudo yum install perl-File-Which perl-Text-Diff + exit_on_error $PHASE_MESSAGE +# macos based... +elif [ ! -z "$IS_DARWIN" ]; then + +#hmmm: not quite right yet... + brew install blah blah? lots? + exit_on_error $PHASE_MESSAGE + +# windows-based with cygwin (or we'll fail out). +elif [ "$OS" == "Windows_NT" ]; then + +#hmmm: install apt-cyg! +# we need this to do the following step, so why not automate that? +# can we at least check for the packages we absolutely need? + +#hmmm: can we bootstrap and still survive on the basic cygwin modules if already installed? +# then we could use our huge list to get the rest! + +#hmmm: is there any other way to get the missing ones, that we need for apt-cyg? + + apt-cyg install perl-File-Which perl-Text-Diff + exit_on_error $PHASE_MESSAGE +fi + +#### + +# then the builder packages... + +PHASE_MESSAGE="installing code builder packages" + +# ubuntu or debian or other apt-based OSes... +if whichable apt; then + sudo apt install build-essential librtmp-dev libcurl4-gnutls-dev libssl-dev + exit_on_error $PHASE_MESSAGE +# rpm based with yum available... +elif whichable yum; then + sudo yum install gcc gcc-c++ openssl-devel.x86_64 curl-devel + exit_on_error $PHASE_MESSAGE +# macos based... +elif [ ! -z "$IS_DARWIN" ]; then + +#hmmm: not quite right yet... + brew install blork blork? lots? + exit_on_error $PHASE_MESSAGE + +# windows-based with cygwin (or we'll fail out). +elif [ "$OS" == "Windows_NT" ]; then + +#hmmm: unknown list needed still... + apt-cyg install fugazi combustinatorinibasil scampnific + exit_on_error $PHASE_MESSAGE +fi + +#### + +# install other external packages and whatnot. + +#hmmm: anything else to get installed? + #hmmm: java? + #hmmm: python? + #hmmm: perl itself!? + + +#### + +# get ready to finish up. + +#...finishing steps... if any. + +# all done now. +exit 0 + +#### + + +############################# +#scav line +############################# + +The "kona" collection depends on Java version 8 or better. +| Ubuntu: +| Set up the java PPA archive as described here: +| https://launchpad.net/~webupd8team/+archive/ubuntu/java + +#not needed at the moment. +#echo "bailing because script is immature. farts!" +#exit 1 + diff --git a/scripts/customize/fred/fred_common.alias b/scripts/customize/fred/fred_common.alias index fc40f19e..9ee52c5a 100644 --- a/scripts/customize/fred/fred_common.alias +++ b/scripts/customize/fred/fred_common.alias @@ -19,6 +19,8 @@ define_yeti_alias update_soapbox='source "$FEISTY_MEOW_SCRIPTS/archival/general_ # does the updating thing on the new tiny flat drive that for a while was serving the ps4 shuttle service but now is an honest ext4 drive. define_yeti_alias update_slimpickenz='source "$FEISTY_MEOW_SCRIPTS/archival/general_updater.sh"; update_archive_drive "/media/fred/slimpickenz"' +# another drive to update; this is a salvaged 5 tb drive. +define_yeti_alias update_flabtastic='source "$FEISTY_MEOW_SCRIPTS/archival/general_updater.sh"; update_archive_drive "/media/fred/flabtastic"' # moo and unmoo mount the local folders i use most. #no longer used. we are doing mostly full directory stores without nfs mounts these days. diff --git a/scripts/customize/fred/fred_variables.sh b/scripts/customize/fred/fred_variables.sh index 00f9637b..660bfa64 100644 --- a/scripts/customize/fred/fred_variables.sh +++ b/scripts/customize/fred/fred_variables.sh @@ -2,7 +2,10 @@ # these are my personal overrides. --fred. if [ -z "$USER_CUSTOMIZATIONS_LOADED" ]; then - # if we don't see the nethack variable defined, this probably hasn't run yet. + # if we don't see the customizations variable defined, this probably hasn't run yet. + + # stuff our special bins in front of the other bin paths. + export PATH=/usr/local/fred/bin:$PATH # The nuage directory is a cloud-like repository of our personal data, managed as a git repo. export CLOUD_BASE=$HOME/nuage diff --git a/scripts/customize/fred/scripts/jobby/onedrive_backerer.sh b/scripts/customize/fred/scripts/jobby/onedrive_backerer.sh new file mode 100644 index 00000000..1adfa9bb --- /dev/null +++ b/scripts/customize/fred/scripts/jobby/onedrive_backerer.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# backs up the uva onedrive folder (which itself is fed from the cloud). + +source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" + +pushd ~/data +exit_on_error changing to data folder. + +zip -r ~/onedrive_backup_uva_$(date_stringer).zip onedrive-uva-live -x \*.ova -x \*.webarchive +exit_on_error zipping up the uva onedrive folder. + + +popd + + diff --git a/scripts/files/clean_df.sh b/scripts/files/clean_df.sh new file mode 100644 index 00000000..48d55622 --- /dev/null +++ b/scripts/files/clean_df.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# so simple but very handy; drops any partitions that we don't care about before showing the df listing. + +\df -h "${@}" | grep -v "loop\|udev\|tmpfs" diff --git a/scripts/files/find_latest_files.sh b/scripts/files/find_latest_files.sh new file mode 100755 index 00000000..27959618 --- /dev/null +++ b/scripts/files/find_latest_files.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# find last written files, made friendly for dell by avoiding the .clusterConfig directory. + +for pathname in "${@}"; do + + echo ============== + echo latest on path: $pathname + echo + + find "$pathname" -path "$pathname/.clusterConfig" -prune -o -type f -print0 | xargs -0 stat --format '%Y :%y %n' | sort -nr | cut -d: -f2- | head -n 20 + + echo; echo + +done + diff --git a/scripts/generator/build_variables.sh b/scripts/generator/build_variables.sh index 3031d317..6e8fa38e 100644 --- a/scripts/generator/build_variables.sh +++ b/scripts/generator/build_variables.sh @@ -181,7 +181,7 @@ if [ -z "$got_bad" ]; then # where we store the binaries used for building the rest of the code base. export CLAM_BINARIES="$RUNTIME_PATH/clam_bin" - # the final destination for the new binaries which provide the hoople + # the final destination for the new binaries which provide the # build with all the applications it needs to get going. export TARGETS_STORE="$RUNTIME_PATH/binaries" # targets directory is meaningful to clam, which will use it for output. diff --git a/scripts/multimedia/sound_play.sh b/scripts/multimedia/sound_play.sh index 962efd61..382d7738 100644 --- a/scripts/multimedia/sound_play.sh +++ b/scripts/multimedia/sound_play.sh @@ -11,20 +11,23 @@ fi export PLAYCMD=/usr/bin/play if [ ! -f "$PLAYCMD" ]; then - PLAYCMD=echo + PLAYCMD='echo Unknown sound player...' fi -if [ ! -z "$(psfind artsd)" ]; then - # we see artsd running... +if [ ! -z "$(which afplay)" ]; then +#echo we see afplay available... + PLAYCMD=afplay +elif [ ! -z "$(psfind artsd)" ]; then +#echo we see artsd running... PLAYCMD=artsplay elif [ ! -z "$(psfind esd)" ]; then - # we see esd running... +#echo we see esd running... PLAYCMD=esdplay elif [ ! -z "$(psfind pulseaudio)" ]; then - # we see pulse running... +#echo we see pulse running... PLAYCMD="padsp aplay" elif [ ! -z "$WINDIR" ]; then - # kludge for win32; we provide our own sound player. +#echo kludge for win32; we provide our own sound player. PLAYCMD=playsound else echo "I don't know how to play sounds for this OS and sound system." diff --git a/scripts/rev_control/version_control.sh b/scripts/rev_control/version_control.sh index dcde45c6..96a8558e 100644 --- a/scripts/rev_control/version_control.sh +++ b/scripts/rev_control/version_control.sh @@ -14,6 +14,9 @@ source "$FEISTY_MEOW_SCRIPTS/tty/terminal_titler.sh" # the maximum depth that the recursive functions will try to go below the starting directory. export MAX_DEPTH=5 +# the name of our "don't check this stuff in" file. +export NO_CHECKIN=".no-checkin" + # use our splitter tool for lengthy output if it's available. if [ ! -z "$(whichable splitter)" ]; then TO_SPLITTER="$(whichable splitter)" @@ -61,7 +64,7 @@ function do_revctrl_checkin() nicedir=$(\pwd) fi local blatt_report="echo -ne \nchecking in '$nicedir'... " - local tell_no_checkin="echo -ne \nskipping check-in due to presence of .no-checkin sentinel file: $nicedir" + local tell_no_checkin="echo -ne \nskipping check-in due to presence of $NO_CHECKIN sentinel file: $nicedir" pushd "$directory" &>/dev/null #hmmm: overly elaborate sections below here, but we do want precise handling for git case. @@ -69,8 +72,8 @@ function do_revctrl_checkin() if test_writeable "CVS"; then do_revctrl_simple_update "$directory" exit_on_error "updating repository; this issue should be fixed before check-in." - if [ -f ".no-checkin" ]; then -# echo -ne "\nskipping check-in due to presence of .no-checkin sentinel file: $directory" + if [ -f "$NO_CHECKIN" ]; then +# echo -ne "\nskipping check-in due to presence of $NO_CHECKIN sentinel file: $directory" $tell_no_checkin else $blatt_report @@ -82,8 +85,8 @@ function do_revctrl_checkin() if test_writeable ".svn"; then do_revctrl_simple_update "$directory" exit_on_error "updating repository; this issue should be fixed before check-in." - if [ -f ".no-checkin" ]; then -# echo -ne "\nskipping check-in due to presence of .no-checkin sentinel file: $directory" + if [ -f "$NO_CHECKIN" ]; then +# echo -ne "\nskipping check-in due to presence of $NO_CHECKIN sentinel file: $directory" $tell_no_checkin else $blatt_report @@ -97,8 +100,8 @@ function do_revctrl_checkin() # take steps to make sure the branch integrity is good and we're up to date against remote repos. do_revctrl_careful_update "$(\pwd)" - if [ -f ".no-checkin" ]; then -# echo -ne "\nskipping check-in due to presence of .no-checkin sentinel file: $directory" + if [ -f "$NO_CHECKIN" ]; then +# echo -ne "\nskipping check-in due to presence of $NO_CHECKIN sentinel file: $directory" $tell_no_checkin else $blatt_report @@ -176,8 +179,8 @@ function do_revctrl_report_new pushd "$directory" &>/dev/null # only update if we see a repository living there. - if [ -f ".no-checkin" ]; then - echo -ne "\nskipping reporting due to presence of .no-checkin sentinel file: $directory" + if [ -f "$NO_CHECKIN" ]; then + echo -ne "\nskipping reporting due to presence of $NO_CHECKIN sentinel file: $directory" elif [ -d ".svn" ]; then # this action so far only makes sense and is needed for svn. bash $FEISTY_MEOW_SCRIPTS/rev_control/svnapply.sh \? echo diff --git a/scripts/rip_burn/blu_burn.sh b/scripts/rip_burn/blu_burn.sh index 33317c0e..f862798d 100644 --- a/scripts/rip_burn/blu_burn.sh +++ b/scripts/rip_burn/blu_burn.sh @@ -1,6 +1,8 @@ #!/bin/bash -# burns a bluray disc image onto a physical medium. +# burns a bluray or dvd data disc image onto a physical medium. + +source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" function show_usage() { @@ -35,3 +37,5 @@ growisofs -dvd-compat -Z ${device_name}=${iso_name} #used to be appended to above line: -speed=2 #trying with letting it go default speed. has been working for us recently. +exit_on_error growing ISO FS from image ${iso_name} + diff --git a/scripts/rip_burn/blu_image.sh b/scripts/rip_burn/blu_image.sh index e4d27536..04212e54 100644 --- a/scripts/rip_burn/blu_image.sh +++ b/scripts/rip_burn/blu_image.sh @@ -1,5 +1,9 @@ #!/bin/bash +# make a dvd data disc image suitable for burning on bluray. + +source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" + function show_usage() { echo "This script needs two parameters, (1) an ISO file to create, and" @@ -29,3 +33,5 @@ fi genisoimage -r -J -joliet-long -o "$iso_name" "$folder_name" +exit_on_error generating ISO image from folder ${folder_name} + diff --git a/scripts/rip_burn/checker_report.sh b/scripts/rip_burn/checker_report.sh index 34d844ca..270a0620 100644 --- a/scripts/rip_burn/checker_report.sh +++ b/scripts/rip_burn/checker_report.sh @@ -32,4 +32,3 @@ done <"$temp_file_list" rm "$temp_file_list" - diff --git a/scripts/rip_burn/dvd_image.sh b/scripts/rip_burn/dvd_image.sh index 67c2d54a..791d7cba 100644 --- a/scripts/rip_burn/dvd_image.sh +++ b/scripts/rip_burn/dvd_image.sh @@ -1,5 +1,10 @@ #!/bin/bash +# makes a playable dvd movie disc image from a folder. +# the folder has to contain a ripped and decrypted DVD. + +source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" + function show_usage() { echo "This script needs two parameters, (1) an ISO file to create, and" @@ -30,4 +35,5 @@ fi mkisofs -dvd-video -o "$iso_name" "$folder_name" +exit_on_error making ISO filesystem from folder ${folder_name} diff --git a/scripts/security/show_all_cert_chains.sh b/scripts/security/show_all_cert_chains.sh index 1fe4125b..f36415a0 100644 --- a/scripts/security/show_all_cert_chains.sh +++ b/scripts/security/show_all_cert_chains.sh @@ -1,5 +1,10 @@ #!/bin/bash +# displays every certificate in a PEM file that has a whole certificate chain. +# this is surprisingly annoying to get anything to output, so we codified it. + +# by chris koeritz + file="$1"; shift if [ -z "$file" -o ! -f "$file" ]; then echo This script requires a PEM-format file name to show the certificates within. diff --git a/scripts/system/is_reboot_needed.sh b/scripts/system/is_reboot_needed.sh new file mode 100644 index 00000000..26d65a78 --- /dev/null +++ b/scripts/system/is_reboot_needed.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# returns an error value if reboot IS required due to some recent +# updates. otherwise returns a normal zero exit value indicating +# that things are peachy. + +if [ -f /var/run/reboot-required ]; then + echo 'reboot required' + exit 1 +fi +exit 0 + +#hmmm: add other OS versions, e.g. +# redhat/centos: $ needs-restarting -r ; echo $? +# shows if needs to be rebooted and returns an error if does need reboot +# diff --git a/walrus/utilities/ebooks/ebook_readers.txt b/walrus/utilities/ebooks/ebook_readers.txt new file mode 100644 index 00000000..3a854e4a --- /dev/null +++ b/walrus/utilities/ebooks/ebook_readers.txt @@ -0,0 +1,5 @@ + +calibre: + current go-to choice for ebook viewer on linux. + + diff --git a/walrus/utilities/multimedia/multimedia_tools.txt b/walrus/utilities/multimedia/multimedia_tools.txt index fafdee11..e3dbb794 100644 --- a/walrus/utilities/multimedia/multimedia_tools.txt +++ b/walrus/utilities/multimedia/multimedia_tools.txt @@ -6,22 +6,31 @@ audio tools + k3b is good for ripping+converting cd audio to mp3 or other formats. ++ asunder is a great ripper for CDs and supports a lot of output formats. + + for lossless music compression, the flac and shorten (shn) formats are -very nice. there are some canonical tools for each platform for these. + very nice. there are some canonical tools for each platform for these. + for converting from ogg and such to mp3 and m4a and such, use the -gnome tool called 'soundconverter'. + gnome tool called 'soundconverter'. ++ musicbrainz provides a freedb style gateway for looking up albums, artists and songs... + https://wiki.musicbrainz.org/History:FreeDB_Gateway + use this instead of the old freedb URL: + http://freedb.musicbrainz.org:80/~cddb/cddb.cgi ++ gnudb: works in apps that need exact old freedb format, had more success + in asunder with gnudb + => gnudb.gnudb.org 8880 -------------------------------- music library manager and player -------------------------------- + lollypop is our current choice for managing a large music library and -playing back songs in it. + playing back songs in it. + banshee used to be our app of choice for managing our music library, but it -seems to no longer be updated. + seems to no longer be updated. --------------------------------- @@ -35,8 +44,8 @@ dvd burner and dvd player support + for dvd processing, vobcopy is a must. + for dvd playing and ripping in general, decss is needed. -it's available in the restricted packages on ubuntu. -lots of articles describe how to set that up. + it's available in the restricted packages on ubuntu. + lots of articles describe how to set that up. + vlc is a good player for dvds. @@ -46,10 +55,10 @@ ripping music using a turntable audacity is the go-to tool for ripping music from vinyl records and many other audio toaster processes: -http://www.audacityteam.org/ + http://www.audacityteam.org/ this article helps a lot to get the music off of vinyl records using a usb turntable: -https://www.linux.com/news/using-usb-turntable-linux + https://www.linux.com/news/using-usb-turntable-linux ---------------- @@ -57,26 +66,26 @@ movie processing ---------------- avidemux: -if you need to manipulate a video, for example to rotate it or transcode it to a different -format, then avidemux works great. + if you need to manipulate a video, for example to rotate it or transcode it to a different + format, then avidemux works great. openshot: -if you need to jam a bunch of videos together, crossfade them, and that kind of stuff, -then try openshot. it also supports simple saving with different quality levels, which -lets you drop a bunch of size at the expense of the picture. sometimes needed. + if you need to jam a bunch of videos together, crossfade them, and that kind of stuff, + then try openshot. it also supports simple saving with different quality levels, which + lets you drop a bunch of size at the expense of the picture. sometimes needed. --------------------------- music collection management --------------------------- dupeguru: -found this to be pretty helpful in finding my duplicate songs. it is able to analyze -when the files are the same, even if their names don't match. -check: did it even compare by metadata? not remembering currently. + found this to be pretty helpful in finding my duplicate songs. it is able to analyze + when the files are the same, even if their names don't match. + check: did it even compare by metadata? not remembering currently. fdupes: -another useful tool for finding duplicate tracks in a music collection, but relies on exact -matches in the names(?). was not so powerful as dupeguru, but still useful. + another useful tool for finding duplicate tracks in a music collection, but relies on exact + matches in the names(?). was not so powerful as dupeguru, but still useful. ----------------------------- @@ -84,8 +93,8 @@ picture collection management ----------------------------- shotwell: -currently the top picture manipulation and manager tool i use at home. -the imaginations folder is based on the date management in shotwell. + currently the top picture manipulation and manager tool i use at home. + the imaginations folder is based on the date management in shotwell.