Table of Contents
Description
ShellPAK allows for the automatic installation and configuration of my personal GNU Bash shell environment as well as the configuration of the following programs:
This code is specific to my own needs and is here in the hopes it will be useful as a reference.
Requirements
- GNU Bash version 4.0 or greater
- GNU Emacs 27.1 or greater
- GNU Make
- rsync
Supported Platforms
The following operating systems are supported:
- CentOS
- macOS (Mac OS X)
- NetBSD
- OpenBSD
- Ubuntu
- openSUSE
- MS-Windows (experimental! (Emacs only))
Obtaining ShellPAK
As of ShellPAK is managed by the Fossil distributed version control system. To check out a repository:
,# Clone the repository
$ fossil clone https://chiselapp.com/user/cfuhrman/repository/shpak ~/shellpak.fossil
# Check out the repository
$ mkdir shellpak
$ cd shellpak
$ fossil open ~/shellpak.fossil
Further information on Fossil can be found at this Quick Start Guide.
Alternate Repositories
ShellPAK is also available for checkout from the following locations:
Be aware that portions of the ShellPAK infrastructure relies on Fossil. Conversion to support the conventions of an alternative revision control system is an exercise left to the user.
Installation
# Install ShellPAK
$ ./setup.sh
Note that during installation, ShellPAK will store dot-files (e.g.,
bashrc
, bash_profile
, etc) in ~/Backup/shell
(or whatever is
specified by the -b
flag). These files will be restored during
un-installation (via the -u
flag)
Other setup options
# Perform a dry-run
$ ./setup.sh -r
# Install into another directory
$ ./setup.sh -d /path/to/directory
# Do not automatically link files during installation
$ ./setup.sh -n
# Set up go programming environment
$ ./setup.sh -g
# Set up Perl::LanguageServer
$ ./setup.sh -l
# Set up python development environment
$ ./setup.sh -p
# Set up python3 development environment
$ PYTHON_VERSION=3 PIP_BIN=pip3 setup.sh -p
# Remove ShellPAK
$ ./setup.sh -u
# Remove ShellPAK & go environment
$ ./setup.sh -u -g
# Change backup directory
$ ./setup.sh -b /path/to/directory
# List runtime options
$ ./setup.sh -h
Previous versions of setup.sh
provided options for installation
of Emacs packages. This is no longer required as Emacs will now
automatically install necessary packages on startup.
Bugs
Please report any bugs or feature requests by filing a ticket via the ShellPAK repository website.
Author
Christopher M. Fuhrman cfuhrman@pobox.com
Copyright
Copyright (c) 2000-2024 Christopher M. Fuhrman All rights reserved.
All files contained herein can be redistributed and/or modified under the terms of the Simplified BSD License (also known as the "2-Clause License" or "FreeBSD License".) unless otherwise noted.