#Title: Pip'less, Brew'less ... and broke

## Introduction

Hello and welcome. I have been here awhile and want to become
more active and share my tinkering. I am interested in all things
Sdf.org especially Gopher and later I will look at Gemini. I want to
investigate the possibilities of SDF as much as I can. With a little
creativity I think there is a lot of potential.

The following steps where done with a MetaARPA account, I am almost
certain these steps will NOT work with a lower account membership.  

This is my first how-to if you want to call it that. The inspriation
was my frustration with not having a few basic tools that I have used
over the years on different systems, which lead to a decentralized
kind of mess with no way in to my home network. I built multiple
solutions over the years but nothing smoother than accessing a public
system that I don't maintain and I can reach from anywhere. Using
BBOARD or app request for every tiny little thing is cumbersome for
all involved so I looked into a few tools that I like to use and
seeing if I could get them loaded. I would caution to not get too
crazy these are very small apps and don't pose any possible damage
that I can see.  


+=============+===========================================+
|    NAME     |                DESCRIPTION                |
+=============+===========================================+
| Safe Closet | A password vault of sorts written in rust |
+-------------+-------------------------------------------+
| Buku        | CLI bookmark manager                      |
+-------------+-------------------------------------------+
| Topydo      | A  powerful todo app                      |
+-------------+-------------------------------------------+
| Calcurse    | curses terminal calendar|                 |
+-------------+-------------------------------------------+

** It turns out calcurse was already installed in meta! **


+=============+==============================+
| APP MANAGER |         DESCRIPTION          |
+=============+==============================+
| pip(3)      | Not available (use setup.py) |
+-------------+------------------------------+
| Homebrew    | locally installable          |
+-------------+------------------------------+


### Why consider Pip packages and Homebrew without superuser access?

For security reasons it makes sense to limit regular users and keep
access restricted, but if you could install to your home directory
without affecting anything else that would be awesome. A way to
simplify my workflow by using SDF.org as much as possible, reducing 
the need to switch between multiple SSH sessions and accessable world
wide. 

Things covered in this article:
- How to install as a standard user (Meta ARPA).
- Method to install software using pip packages that contain setup.py
  and Homebrew in your home directory.
- Practical benefits and use of local home drive installations.
- References at the bottom of the article for further reading.

Let's see how you can enhance your SDF.org experience by using
package managers without needing superuser rights.
For the first example are not really using pip but we are working
with the package itself and Python. Which still
achieves the goal of installing the desired software.
 
### Step-by-Step Guide: Installing TopyDo and Homebrew
Topydo is a powerful todo list CLI application using the todo.txt 

#### 1. Installing TopyDo
- **Locate the GitHub repository**: Find and clone the repository for
TopyDo.

	|git clone https://github.com/topydo/topydo.git

- **Prepare the Installation**: Navigate to the installation
directory, find `setup.py`, and make it executable (`chmod +x
setup.py`).

	|cd topydo
	|chmod +x setup.py

- **Install TopyDo**: Run the installation with user-level
permissions to avoid needing superuser access:

	|python setup.py install --user

- **Verify the Installation**: Test TopyDo by running basic commands
to ensure it's functioning correctly.

	|# My result installed into the the ~/.local/bin directory
	|cd ~/.local/bin

	|./topydo -h
	|./topydo --v


Add your first todo entry and it creates a todo.txt
	|topydo add "Water the flowers @Home rec:1w"

The example does not do the tool justice, its good tool and maybe I
will write a follow up to show more. 

The topydo github page has a good demo. 

#### 2. Installing Homebrew
- **Create a Homebrew Directory and Download**: Set up a directory
for Homebrew and download the installation script:

(all in one line>)
	|mkdir homebrew && curl -L
	|https://github.com/Homebrew/brew/tarball/master | tar xz 
	|--strip 1 -C homebrew

- **Install Software with Homebrew**: Use Homebrew to install
additional software, such as Buku, a command-line bookmark manager:

	|brew install buku


- **Verify Installation**: Ensure Buku is correctly installed in
`~/homebrew/bin`.

# Add a bookmark (Buku tries to add a description

	|./buku --add https://sdf.org unix,public

#Add a few more then list them with -p
	|./buku -p

#### 3. Installing Safecloset

- **Download and Prepare the Installation**: Obtain the precompiled
package of Safecloset, a tool for securely managing passwords and
secrets, from its official GitHub release page.

https://github.com/Canop/safecloset/releases

- **Make Executable and Test**: Change the permissions to make the
file executable (`chmod +x`) and test to confirm it functions as
intended.
	|chmod +x safecloset

	|./safecloset -o myFirst_safeCloset

Try adding few secret test entries: Press ctrl ? for help

## Conclusion

This exploration on SDF.org reveals that user-level restrictions
don't need to limit your software capabilities. By adapting
installation procedures and utilizing tools like Homebrew and
Python's setup tools, you can still install some of your desired
software and streamline your workflow, all within the constraints of
regular user permissions. I believe these practical examples are
steps that help enrich the experience at sdf and also encourage
further experimentation and discovery in a shared Unix environment.

P.S. the "broke" part in the title had nothing to do with anything
technically. 
Im just broke atm :)


## References

TOPY DO
- https://github.com/topydo/topydo
- https://github.com/todotxt/todo.txt

Homebrew
- https://docs.brew.sh/Installation
- https://en.wikipedia.org/wiki/Getting_Things_Done

BUKU
- https://github.com/jarun/Buku/wiki

SafeCloset
- https://github.com/Canop/safecloset

For the PDF version of this document:
- From gopher menu - Files/pip_n_brew.pdf