Technical Documentation

Guides, Source Code, Syntax

Joe Corso

May, 24, 2024

Abstract

Reports, Source Code, Syntax on my Computer Science research

1 Project PADS

1.1 Project Proposal

1.1.1 Project Title

PADS (Personal Assistant and Deployment System)

1.1.2 Author(s)

Joe Corso

1.1.3 Date

2023-06-05

1.1.4 Problem Statement

The initiation for the project comes from the need to organize, consolidate, maintain, deploy, and automate coding libraries, web apps, and development environments in to a clear, thoughtful, and easy to understand manner.

1.1.5 Objectives

1.1.6 Scope

1.1.7 Benefits

By consolidating development, deployment, and documentation tasks into a cohesive ecosystem, PADS empowers users to increase productivity, reduce manual overhead, and maintain high-quality, reproducible workflows.

1.1.8 Risks & Challenges

1.1.9 Resources Needed

1.2 Project Overview

1.2.1 Purpose

PADS is a modular, shell-based automation and project management system designed to streamline personal development workflows and infrastructure deployment. It provides a unified command-line interface to manage system-level tasks, Python project scaffolding, documentation generation, and utility tools—all integrated to support reproducibility, scalability, and maintainability.

1.2.2 Background

As a sole developer, it can be difficult to manage multiple projects, and each code snippet. This project was built from the need to have a certain “personal assistant”, which can handle the manual task of building, and maintaining a business infrastructure.

1.2.3 Overview

PADS is divided into modules. Each module maintains it own logic, and documentation. They are grouped by task. Each module has it’s own binary file, and source code directory within the pads directory.

1.2.4 Key Features

1.2.5 Target Audience

1.2.6 Expected Impact

Rapid deploment, and low maintainence of an ecommerce business.

1.3 Design Report

1.3.1 Architecture Overview

PADS is organized into four main modules:

1.3.2 Technology Stack

1.3.3 Data Flow

Input command -> process logic -> Output
                                                         -> run LLM -> Output
pads -> process which command to use -> process OPT/ARGS -> pass command to module -> Output
                                                         -> build env -> Output

paddocs ->

proj ->

sys ->

tools ->

1.3.4 Directory Structure

The PADS project uses a clear directory hierarchy:

pads/
├── sys/ # System-level scripts
├── proj/ # Python project generators and managers
├── paddocs/ # Documentation system source and config
│ ├── src/
│ ├── config/
│ ├── includes/
│ ├── manuscript/
│ ├── output/
│ └── metadata.yaml
├── tools/ # Helper scripts and utilities
├── models/ # LLM prompts, outputs, and evaluation
├── etc/ # Configuration files
├── var/ # Logs and runtime files
├── install/ # Installation and uninstallation scripts
└── tests/ # Unit and integration tests

1.3.5 UI/UX Design

Built in configs for Qtile, KDE Plasma, Arch Linux
Built in Conky Panels showing system performance, mounted devices, etc.
PADS integrates a prompt command:
- located at $PADS_DIR/etc/prompt_command.sh

    promptCommand(){
      local code=$?
      blue="\[$(tput setaf 4)$(tput bold)\]"
      green="\[$(tput setaf 2)$(tput bold)\]"
      red="\[$(tput setaf 1)$(tput bold)\]"
      yellow="\[$(tput setaf 227)$(tput bold)\]"
      orange="\[$(tput setaf 208)$(tput bold)\]"
      grey="\[$(tput setaf 240)$(tput bold)\]"
      r="\[$(tput sgr0)\]"
      bg=${grey}
      ve=${grey}
      f=${grey}
      nx=${grey}
      git=${grey}
      [[ $PWD =~ "git" ]] && git=${orange}
      [[ -n $VIRTUAL_ENV ]] && ve=${orange}
      PS1="[ ${git}${r} ${ve}VE${r} ${blue}\u@\h \W${r} ] \$ "
    }

PADS has it’s own set of logging, and error reporting using signal traps: - located at: \$PADS_DIR/etc/pads.sig

    msg(){
      local code=$?
      [[ ${code} -eq 0 ]] && printf "[ ${grey}INFO${r} ] :: ${1}\n"
    }

    hup_script(){
      notify-send "PADS" "Bye"
    }
    err_script(){
      local code=$?
      printf "[$code]$red ERROR:${BASH_SOURCE##*/}:${FUNCNAME[0]}:$r ${0##*/}.${mod}.$BASH_LINENO:$BASH_COMMAND\n"
      return $code
    }
    quit_script(){
      printf "Quitting...\n"
      exit 1
    }
    interrupt_script(){
      printf "\n^C\n"
      [[ -f ${lock} ]] && echo "rm lock" && rm $lock
      exit 130
    }

    terminate_script(){
      notify-send "Terminated"
      killall $!
    }
    exit_script(){
      code=$?
      # Code goes here
      exit $code
    }

1.3.6 Security Considerations

1.3.7 Scalability Plan

1.4 Technical Report

1.4.1 Introduction

PADS is a modular Bash and Python-based automation system designed to manage personal projects, system tasks, documentation, and integration with large language models (LLMs). It aims to provide a cohesive, reproducible workflow for developers who require both system-level controls and project-level automation.

1.4.2 Methodology

1.4.2.1 Documentation Subsystem (paddocs)

1.4.2.2 LLM Integration

1.4.3 Implementation Details

1.4.4 Results

PADS is a versatile platform combining automation, project management, documentation, and AI-readiness. It enables developers to streamline complex workflows within a structured, secure, and extensible environment.

1.4.5 Analysis

1.4.6 Challenges & Limitations

1.4.7 Recommendations

1.4.8 Conclusion

PADS is a comprehensive, extensible system designed to automate and streamline development and deployment workflows. By combining scripting, documentation, and AI readiness, it positions itself as a future-proof platform for personal and small team project management.

1.4.9 References

NA

1.5 Final Technical Report

1.5.1 Project Summary

PADS is a modular, command-line driven automation and project management system aimed at personal developers and small teams. It integrates system-level operations, project scaffolding, documentation generation, and tooling under a unified interface to simplify complex workflows.

1.5.2 Features Implemented

1.5.3 Future Work


Template generated by ChatGPT
Documentation generated by PADDOCS
Compendium section: 10-docs
Title: Project PADS
Author: Joe Corso
Created: 2022-05-04
Updated: 2025-10-26
Tags: automation, bash
Status: [ Draft / Final / Reviewed ]
Template:
- 00-project-proposal.md
- 01-project-overview.md
- 02-design-report.md
- 03-technical-report.md
- 04-research-log.md
- 05-final-report.md
License: “All Rights Reserved”
Schema: technical
Version: 0.1.1
Branding: Operation Mindmap

1.6 Paddocs

This manual is for PADDOCS (1.1.0, 2025-10-25) A module which self-generates documentation

1.6.1 Introduction

Paddocs is a module for PADS which self generates documentation from code into a technical manual, blog, info, and man pages. This documentation was generated using the same library. You can generate the book layout into the ~/dev/pads/paddocs/ directory. Write the documentation within the programs files using the headers outlined in Notes. Build the documentation with -b, then generate the docs with -g. You can also use paddocs to generate report templates, metadata for the book, covers, bibliography info. etc.

1.6.1.1 Before you start

Before you begin, make sure you meet these prerequisites:

1.6.1.2 Get started

  1. Download:
    $ git clone https://github.com/padsRepo/paddocs
  1. Install:
    $ makepkg -si

1.6.1.3 What’s next

  1. Build the book:
   $ paddocs -b book && paddocs -b metadata
  1. Write your inline-documentation using the headers outlined in Notes
  2. Make a directory same as your command name under manuscript/<sectionName>/<cmd>
  3. Copy the report schema you need from /assets/schemas to /manuscript/<sectionName>/
  4. Generate your documentation:
   $ paddocs -c <cmd> -l <lang> -b doc && paddocs -g book html
  1. View it in the browser:
   $ paddocs -s
   $ http://127.0.0.1:8000

1.6.2 Synopsis

<cmd> -[<argument>] [<name>]
paddocs -[b:,c:,g:,l:,s,v,h] [<name>]

1.6.3 Options

-b <name>                        Build <name> to manuscript/
                                 <type> is one of: book, metadata, readme, license, doc, man
-c <name>                        Command to generate docs for
-g <type> <prefix> <sectionName> Generate <name> to output/
                                 <type> is one of: markdown, html, pdf, section, chapter, man
-l <name>                        Coding language to use for the code block.
-s                               Run python -m http.server and exit
-v                               Show Version
-h                               Show Usage

1.6.4 Modules / Components

Script Description
parse.sh Configure the necessary vars for the template
build.sh Make and save the template with the parsed vars
generate.sh Create the full book, sections, or chapters

1.6.5 API Reference

Function/Class Module Parameters Returns Description
parseBash parse.sh shell_tags 0 success 1 error If -l ${lang} is bash configure vars from given -c ${cmd}
parsePython parse.sh python_tags 0 success 1 error If -l ${lang} is python configure vars from given -c ${cmd}
book build.sh -b book 0 success 1 error Build the skeleton directory for a new project
metadata build.sh -b metadata 0 success 1 error Generate metadata.yaml file for the book
readme build.sh -b readme 0 success 1 error Generate README.md file from given -c ${cmd}
license build.sh -b license 0 success 1 error Generate LICENSE file from give -c ${cmd}
man build.sh -b man 0 success 1 error Generate GROFF man page from given -c ${cmd} to manuscript/11-manual/\${cmd}
doc build.sh -b doc 0 success 1 error Generate Technical Documentation from given -c ${cmd} to manuscript/10-docs/\${cmd}
genBook generate.sh -g book [<html,pdf,md>] 0 success 1 error Generate entire manuscript to output/book directory in given format
genSection generate.sh -g book [<html,pdf,md>] 0 success 1 error Generate to output/section in given format
genChapter generate.sh -g book [<html,pdf,md>] 0 success 1 error Generate to output/chapter in given format
genMan generate.sh -g man -c ${cmd} 0 success 1 error Generate man to output/man and update /usr/share/man/man1

1.6.6 Examples

paddocs -h
Show the help menu and exit
paddocs -v
Show the version and exit
paddocs -b book
Build the skeleton project for paddocs to \${base_dir}/paddocs/
paddocs -c paddocs -l bash -b docs
Build the technical manual for paddocs into the paddocs/manuscript/10-docs/\<projDir\> directory. This is if you need more of a report. If you want the manpage use man instead.
paddocs -c paddocs -l bash -b man
Build the man page for paddocs into the paddocs/manuscript/11-manual/\<cmd\>.md directory.
paddocs -g book pdf
Generate a PDF compendium of the entire manuscript/ directory to output/compendium.pdf
paddocs -g book html
Generate a PDF compendium of the entire manuscript/ directory to output/compendium.html

1.6.7 Configuration

1.6.7.1 Exit Status:

Code Status
0 Success
1 Failure
127 K18
130 Ctl+C

1.6.7.2 Environment Variables:

Key Value
None N/A

1.6.7.3 Config Files/Directories:

Files/Directories Path Description
${base_dir}/src/paddocs Source Code Directory, Book manuscript, metadata, and output
${base_dir}/etc Directory for trap signals/config files
paddocs ${base_dir}/bin/paddocs Executable Directory
paulBunyan.sh ${base_dir}/etc/paulBunyan.sh Library for logs using trap signals

1.6.8 Advanced Usage

paddocs -s
Run a http.server to view the files in a web browser. Search the url in your browser: http://127.0.0.1:8000
paddocs -c paddocs -l bash -b man && paddocs -g man -c paddocs
Build the man page for paddocs into the paddocs/manuscript/11-manual/\<cmd\>.md directory. Then generate a man page for paddocs. This will automatically mv the tar.gz file to /usr/share/man/man1. After it’s complete you will be able to type man <name> for the man page.
paddocs -c interlink -l python -b doc && paddocs -g section html interlink
Build the technical manual for a python library. Then generate the section for it to /output/section/<cmd>.

1.6.9 Troubleshooting

  1. turn it off and on again
  2. blow on it
  3. say 3 hail mary’s

1.6.10 Contributing

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature-name)
  3. Commit changes (git commit -m "Add feature")
  4. Push branch (git push origin feature-name)
  5. Open a Pull Request

1.6.11 License

MIT License

Copyright (c) 2022 Joe Corso

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

1.6.12 History

1.6.13 Notes

1.6.14 See Also

man paddocs, info pads

1.6.15 Source Code

title="Paddocs"
subtitle="Self-Generating Documentation Module"
version="1.1.0"
OPTSTRING="b:,c:,g:,l:,s,v,h"
synopsis="<cmd> -[<argument>] [<name>]"
syntax="${0##*/} -[${OPTSTRING}] [<name>]"
base_dir="$(dirname "$(readlink -f "${0%/*}")")"

description(){
cat << EOF
* ${title}
* ${subtitle}

EOF
}

usage(){
cat << EOF
Synopsis: $synopsis
Syntax: $syntax
Usage:
  -b <name>                        Build <name> to manuscript/
                                   <type> is one of: book, metadata, readme, license, doc, man
  -c <name>                        Command to generate docs for
  -g <type> <prefix> <sectionName> Generate <name> to output/
                                   <type> is one of: markdown, html, pdf, section, chapter, man
  -l <name>                        Coding language to use for the code block.
  -s                               Run python -m http.server and exit
  -v                               Show Version
  -h                               Show Usage
Ex: paddocs -c pads -l bash -b doc | paddocs -c paddocs -l bash -b man | paddocs -c interlink -l python -b doc && paddocs -g section html interlink
See also: man paddocs, info pads
EOF
}

manual(){
description
usage
}

while getopts ${OPTSTRING} mod; do
case ${mod} in
  b) build=${OPTARG};;
  c) cmd=${OPTARG};;
  g) type=${OPTARG}; prefix=${3}; sectionName=${4};;
  l) lang=${OPTARG};;
  s) server=True;;
  v) echo "${version}"; exit;;
  h) usage; exit;;
  ?) echo " * ${0##*/} -h for help"; exit 2;;
  *) echo "K18 Error"; exit 2;;
esac
done
[[ $# -eq 0 ]] && manual && exit
. "${base_dir}/etc/paulBunyan.sh"
. "${base_dir}/src/paddocs/src/parse.sh"

cd $base_dir/src/paddocs

if [[ ${lang} == "bash" ]]; then
  parseBash
elif [[ ${lang} == "python" ]]; then
  parsePython && [[ $? -eq 0 ]] && INFO "\nBuild: ${build} \nCMD: ${cmd} \nFile: file:/\${saveDir}/10-${cmd}.md \n" && exit
elif [[ -n $server ]]; then
  python -m http.server 8000 &
fi  

[[ -n ${build} ]] && . "$base_dir/src/paddocs/src/build.sh" && $build && [[ $? -eq 0 ]] && INFO "\nBuild: ${build} \nCMD: ${cmd} \nFile: file://${savePath} \n" && exit
[[ -n ${type} ]] && . "${base_dir}/src/paddocs/src/generate.sh" && [[ $? -eq 0 ]] && INFO "\nGenerate: file://${save_dir}\n" && exit 0

Template generated by ChatGPT
Documentation generated by PADDOCS
Compendium section: 10-docs
Title: Paddocs
Author: Joe Corso
Tags: [self-generate, documentation, manual, bash]
Status: [ Draft / Final / Reviewed ]
Post ID: paddocs.md
Template: programming-manual.md
License: All Rights Reserved
Schema: manuals
Version: 1.1.0

1.7 PADS

This manual is for PADS (1.1.0, 2025-10-22) Personal Assistant and Deployment System

1.7.1 Introduction

PADS is a shell-based automation framework designed to simplify system tasks and project scaffolding through concise command-line flags. PADS serves as a wrapper around common system and development tasks, providing a more streamlined and user-friendly interface. PADS is designed to support the VCS, Workflow, and development of [Project Starship].

1.7.1.1 Before you start

Before you begin, make sure you meet these prerequisites:

1.7.1.2 Get started

  1. Download: git clone git+ssh://pi@rpi400.local/srv/repo/git/pads.git

  2. Install: makepkg -si

  3. Add to /etc/pacman.conf:

[datasphere]
SigLevel = Optional TrustAll
Server = http://rpi400.local/db/core

[multiverse]
SigLevel = Optional TrustAll
Server = http://rpi400.local/db/extra

1.7.1.3 What’s next

1.7.2 Synopsis

<cmd> -[<module>] -[<argument>] -[<option>] [name...]
pads -[L:,B:,S:,P:,R:,T:,x,v,h] -[arg]

1.7.3 Options

-B <name> <subtitle> Build new binary command
-D <name> Build skeleton directory for given project
-L  Chat with PADS LLM
-S [-h] System Module
-P [-h] Project Module
-R [-h] Utilities Module
-T [-h] Test Module
-x      Set -x
-v      Show Version
-h      Show Usage

1.7.4 Modules / Components

Script Description
-S Managing System Commands
-P Managing Projects
-R Misc helper scripts
-T Testing Commands

1.7.5 API Reference

Function/Class Module Parameters Returns Description
system_manager.sh -S -[b,u,l,r,h,v] [name…] 0 success 1 error Src Code for logic in system scripts
project_manager.sh -P -[m:,s:,d:,h,v] 0 Success 1 Error Src Code for logic in managing projects
tools_manager.sh -R -[s,h,v] [name] 0 Success 1 Error Src Code for logic in Running commands

1.7.6 Examples

pads -Pfm project && pads -Pfs project
In this example we make and start a Flask project named project.
pads -Su
In this example we update the system and enter the password.
pads -Su neofetch ...
In this example we install as many packages as we want seperated by spaces. You can use pacman or yay.

1.7.7 Configuration

1.7.7.1 Exit Status:

Code Status
0 Success
1 Failure
127 K18
130 Ctl+C

1.7.7.2 Environment Variables:

Key Value
NA NA

1.7.7.3 Config Files/Directories:

Files/Directories Path Description
${base_dir}/bin Executable Directory
${base_dir}/docs Documentation generated by [paddocs][#paddocs]
${base_dir}/etc Directory for traps/config files
${base_dir}/lib Libraries used by PADS
${base_dir}/src Source Code for functions

1.7.8 Advanced Usage

paddocs do something
This will make the pc…
paddocs do something
This will make the pc…
paddocs do something
This will make the pc…
paddocs do something
This will make the pc…

1.7.9 Troubleshooting

  1. turn it off and on again
  2. blow on it
  3. say 3 hail mary’s

1.7.10 Contributing

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature-name)
  3. Commit changes (git commit -m "Add feature")
  4. Push branch (git push origin feature-name)
  5. Open a Pull Request

1.7.11 License

MIT License

Copyright (c) 2022 Joe Corso

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

1.7.12 History

1.7.13 Notes

1.7.14 See Also

sys, proj, tools, paddocs, man pads, info pads

1.7.15 Source Code

title="PADS"
subtitle="Personal Assistant and Deployment System"
version="1.1.1"
OPTSTRING="L:,B:,S:,P:,R:,T:,x,v,h"
synopsis="<cmd> -[<module>] -[<argument>] -[<option>] [name...]"
syntax="${0##*/} -[${OPTSTRING}] -[arg]"
base_dir="$(dirname "$(readlink -f "${0%/*}")")"
. "${base_dir}/etc/paulBunyan.sh"
description(){
cat << EOF
* ${title}
* ${subtitle}
EOF
}
usage(){
cat << EOF
Synopsis: $synopsis
Syntax: $syntax
Usage:
  -B <name> <subtitle> Build new binary command
  -D <name> Build skeleton directory for given project
  -L ${opts} Chat with PADS LLM
  -S [-h] System Module
  -P [-h] Project Module
  -R [-h] Utilities Module
  -T [-h] Test Module
  -x      Set -x
  -v      Show Version
  -h      Show Usage
Ex: pads -Pfs <flaskproject> | pads -Su nano neofetch firefox
See also: sys, proj, tools, man pads, info pads
EOF
}
manual(){
description
usage
}
while getopts ${OPTSTRING} mod; do
mod=${mod}
case ${mod} in
  x) set -$mod;;
  B) . "${base_dir}/pads/build_cmd.sh"; exit;;
  D) . "${base_dir}/pads/build_dir.sh"; exit;;
  S) cmd="sysmgr"; param=${OPTARG};;
  P) cmd="projmgr"; param=${OPTARG};;
  R) param=${OPTARG}; cmd="handyman";;
  T)
    param=${OPTARG}; exec $base_dir/bin/sys -$param;
    ;;
  v) echo "${version}"; exit;;
  h) usage; exit;;
  ?) echo " * ${0##*/} -h for help"; exit 2;;
  *) echo "K18 Error"; exit 2;;
esac
done
[[ $# -eq 0 ]] && manual && exit
${base_dir}/bin/${cmd} -${param} ${@:2}

Template generated by ChatGPT
Documentation generated by PADDOCS
Compendium section: 10-docs
Title: PADS
Author: Joe Corso
Tags: [self-generate, documentation, manual, bash]
Status: [ Draft / Final / Reviewed ]
Post ID: pads.md
Template: programming-manual.md
License: All Rights Reserved
Schema: manuals
Version: 1.1.1

1.8 (P)roject Module

This manual is for PROJ (0.0.5, 2025-02-26) A module made for PADS

1.8.1 Introduction

The purpose of this module is to automate project management on your machine. It should build, start, delete and manage the a virual env, projects from differents languages and web frameworks.

1.8.2 Synopsis

<cmd> -[<argument>] -[<option>] [name...]
proj -[p:,f:,g:,h,v] -[m,s,d] <name>

1.8.3 Options

  -p -[m,s,d] <name> Manage a python project
-f -[m,s,d] <name> Manage a flask project
-g -[m,s,d] <name> Manage a pygame project
-h Show usage
-v Show version

1.8.4 Modules / Components

1.8.5 API Reference

1.8.6 Examples

proj -fm project && proj -fs project
In this example we make and start a Flask project named project.
proj -d project
In this example we the project named project.
proj -e flask
In this example we manage the virtual environment name flask.

1.8.7 Configuration

Exit Status:

Code Status
0 Success
1 Failure
127 K18
130 Ctl+C

Environment Variables:

Key Value
$project_dir “${BIN_DIR}/lib/${proj}” “${HOME}/srv/${proj:-$name}” “${HOME}/games/${proj}”
$template_dir “python” “flask” “game”

Config Files/Directories:

Files/Directories Path Description
$HOME/pads/bin/proj Executable Directory
$HOME/pads/src/proj/parseopts Source Code Directory
$HOME/pads/handler/signales/pads.sig Directory for signal handlers

1.8.8 Advanced Usage

1.8.9 Troubleshooting

1.8.10 Contributing

1.8.11 License

MIT License

Copyright (c) 2022 Joe Corso

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

1.8.12 History

1.8.13 Notes

1.8.14 See Also

info pads

1.8.15 Source Code

module="(P)roject Module"
description="For managing projects that are not bash"
version="0.0.5"
author="Joe Corso (https://www.joecorso.com)"
created="$(date -d '20230605')"
docs="https://github.com/padsRepo"
license="MIT License"
OPTSTRING="p:,f:,g:,h,v"
options="-[m,s,d] <name>"
synopsis="<cmd> -[<argument>] -[<option>] [name...]"
syntax="${0##*/} -[${OPTSTRING}] ${options}"
base_dir="$(dirname "$(readlink -f "${0%/*}")")"
description(){
cat << EOF
* ${module}
* ${description}

EOF
}
usage(){
cat << EOF
Synopsis: $synopsis
Syntax: $syntax
Usage:
  -p $options Manage a python project
  -f $options Manage a flask project
  -g $options Manage a pygame project
  -h Show usage
  -v Show version
Ex: ${0##*/} -r neofetch | ${0##*/} -u nano neofetch firefox
See also: man ${0##*/}, man pads, info pads, pads
Author: $author
Version: $version
Created: $created
$license
EOF
}
manual(){
description
usage
}
while getopts $OPTSTRING arg; do
arg=$arg
opt=${OPTARG#*-}
name=${3:-$2}
case $arg in
  p) 
    project_dir="${BIN_DIR}/lib/${proj}"
    template_dir="python"
    echo "This is disabled for now line: $LINENO module: $module_dir/proj/proj"
    exit
    ;;
  f) 
    project_dir="${HOME}/srv/${proj:-$name}"
    template_dir="flask"
    virtualenv_dir="${HOME}/env/flask"
    ;;
  g) 
    project_dir="${HOME}/games/${proj}"
    template_dir="game"
    virtualenv_dir="${HOME}/env/games"
    ;;
  h) manual; exit;;
  v) echo $version; exit;;
  *) echo " * ${0##*/} -${mod}h for help"; exit 2;;
esac
done
[[ $# -eq 0 ]] && manual  && exit 2
. "${base_dir}/src/proj/parseopts"
${opt}_proj

Template generated by ChatGPT
Documentation generated by PADDOCS
Compendium section: 10-docs
Title: (P)roject Module
Author: Joe Corso
Tags: [self-generate, documentation, manual, bash]
Status: [ Draft / Final / Reviewed ]
Post ID: proj.md
Template: programming-manual.md
License: All Rights Reserved
Schema: manuals
Version: 0.0.5

1.9 (S)ystem Module

This manual is for SYS (0.0.5, 2025-02-26) A module made for PADS

1.9.1 Introduction

The purpose of this module is to automate system commands on your machine. It should be able to build your DE, WM, configs, install the OS, set up your bashrc, backup your machine, etc.

1.9.2 Synopsis

<cmd> -[<argument>] -[<option>] [name...]
sys -[b,u,i,l,d,r:,m,s,h,v] [name...]

1.9.3 Options

  -b           Backup System
-u [name...] Update machine. Supply name of package to install.
-i           Update pads' info page
-l           List packages on this machine
-d           Update pads' man page
-r <name...> Remove supplied packages
-m           Set up mariadb
-s           Show system information
-h           Show help
-v           Show version

1.9.4 Modules / Components

1.9.5 API Reference

1.9.6 Examples

sys -m
In this example we set up mariadb on our system, including the secure-install, and generating a user and password.
sys -u
In this example we update the system and enter the password.
sys -u neofetch ranger btop ...
In this example we install as many packages as we want seperated by spaces.
You can use pacman or yay.

1.9.7 Configuration

Exit Status:

Code Status
0 Success
1 Failure
127 K18
130 Ctl+C

Environment Variables:

Key Value
BACKUP_DIR ~/.config/pads/profile.cfg

Config Files/Directories:

Files/Directories Path Description
$PADS_DIR/bin/sys Executable Directory
$PADS_DIR/sys/ Source Code Directory
$PADS_DIR/etc/pads.sig Directory for trap signals/config files

1.9.8 Advanced Usage

1.9.9 Troubleshooting

1.9.10 Contributing

1.9.11 License

MIT License

Copyright (c) 2022 Joe Corso

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

1.9.12 History

1.9.13 Notes

1.9.14 See Also

info pads

1.9.15 Source Code

module="(S)ystem Module"
description="Running system commands on your machine."
version="0.0.5"
author="Joe Corso (https://www.joecorso.com)"
created="$(date -d '20230605')"
docs="https://github.com/padsRepo"
license="MIT License"
packages="${@:2}"
OPTSTRING="b,u,i,l,d,r:,m,s,h,v"
synopsis="<cmd> -[<argument>] -[<option>] [name...]"
syntax="${0##*/} -[$OPTSTRING] [name...]"
base_dir="${PADS_DIR}/sys"
. "${PADS_DIR}/etc/pads.sig"
description(){
cat << EOF
* ${module}
* ${description}

EOF
}
usage(){
cat << EOF
Synopsis: ${synopsis}
Syntax: ${syntax}
Usage:
  -b           Backup System
  -u [name...] Update machine. Supply name of package to install.
  -i           Update pads' info page
  -l           List packages on this machine
  -d           Update pads' man page
  -r <name...> Remove supplied packages
  -m           Set up mariadb
  -s           Show system information
  -h           Show help
  -v           Show version
Ex: ${0##*/} -r neofetch | ${0##*/} -u nano neofetch firefox
See also: man ${0##*/}, man pads, info pads, pads
EOF
}

manual(){
description
usage
}

while getopts $OPTSTRING name; do
arg=$name
case $arg in
  b) function="backup";;
  u) function="update";;
  i) function="updateinfo";;
  l) pacman -Qqen; exit;;
  d) function="updateman";;
  r) sudo pacman -Rcns $packages; exit;;
  m) function="setupmariadb";;
  s) function="sysinfo";;
  h) usage; exit;;
  v) echo "$version"; exit;;
  ?) echo " * ${0##*/} -${mod}${arg}h for help"; exit 2;;
esac
done
[[ -z $arg ]] && manual  && exit
. "${base_dir}/${function}"
[[ $? -eq 0 ]] && msg "Success!" || msg "Failure!"

Template generated by ChatGPT
Documentation generated by PADDOCS
Compendium section: 10-docs
Title: (S)ystem Module
Author: Joe Corso
Tags: [self-generate, documentation, manual, bash]
Status: [ Draft / Final / Reviewed ]
Post ID: sys.md
Template: programming-manual.md
License: All Rights Reserved
Schema: manuals
Version: 0.0.5

1.10 (R)un Module

This manual is for TOOLS (0.0.5, 2025-02-26) A module made for PADS

1.10.1 Introduction

The purpose of this module is to run random scripts on your machine.

1.10.2 Synopsis

<cmd> -[<argument>] -[<option>] [name...]
tools -[s,v,h] [name...]

1.10.3 Options

 -s  
   passgen           Generate a random password  
   note              Take a note  
   buildpkg          Build Package to install  
   conkystart        Start Conky panels  
   timer <int>       Start a countdown timer for 3 seconds  
   progress          Show a progress bar  
   resetpath         Reset default $PATH  

-h Show help
-v Show version

1.10.4 Modules / Components

1.10.5 API Reference

1.10.6 Examples

tools -s genpass
In this example we generate a random password.
tools -s timer 10
In this example we start a countdown timer for 10 seconds.
tools -s note
In this example we start the note taking app.

1.10.7 Configuration

Exit Status:

Code Status
0 Success
1 Failure
127 K18
130 Ctl+C

Environment Variables:

Key Value
None N/A

Config Files/Directories:

Files/Directories Path Description
$HOME/pads/bin/tools Executable Directory
$HOME/pads/src/tools/ Source Code Directory
$HOME/pads/handler/signales/pads.sig Directory for signal handlers

1.10.8 Advanced Usage

1.10.9 Troubleshooting

1.10.10 Contributing

1.10.11 License

MIT License

Copyright (c) 2022 Joe Corso

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

1.10.12 History

1.10.13 Notes

1.10.14 See Also

info pads

1.10.15 Source Code

module="(R)un Module"
description="Running misc scripts. Good for testing"
version="0.0.3"
author="Joe Corso (https://www.joecorso.com)"
created="$(date -d '20230605')"
docs="https://github.com/padsRepo"
license="MIT License"
packages="${@:2}"
OPTSTRING="s,v,h"
synopsis="<cmd> -[<argument>] -[<option>] [name...]"
syntax="${0##*/} -[$OPTSTRING] [name...]"
base_dir="$(dirname "$(readlink -f "${0%/*}")")"
. "${PADS_DIR}/etc/pads.sig"
description(){
cat << EOF
* ${module}
* ${description}

EOF
}
usage(){
cat << EOF
Synopsis: $synopsis
Syntax: $syntax
Usage:
 -s  
     passgen           Generate a random password  
     note              Take a note  
     buildpkg          Build Package to install  
     conkystart        Start Conky panels  
     timer <int>       Start a countdown timer for 3 seconds  
     progress          Show a progress bar  
     resetpath         Reset default \$PATH  
 -h                    Show help  
 -v                    Show version  
Ex: paddocs -c pads -l bash -nmrwxs | paddocs -c paddocs -l bash -wsxp
See also: man paddocs, info pads
EOF
}
manual(){
description
usage
}
while getopts $OPTSTRING arg; do
opt=${OPTARG}
name=${3:-$2}
case ${arg} in
  s) . "${PADS_DIR}/tools/${name}" $OPTARG; exit;;
  v) echo "$version"; exit;;
  h) manual; exit;;
  *) echo "$OPTARG * ${0##*/} -${mod}h for help"; exit 2;;
esac
done
[[ $# -eq 0 ]] && manual  && exit 2

Template generated by ChatGPT
Documentation generated by PADDOCS
Compendium section: 10-docs
Title: (R)un Module
Author: Joe Corso
Tags: [self-generate, documentation, manual, bash]
Status: [ Draft / Final / Reviewed ]
Post ID: tools.md
Template: programming-manual.md
License: All Rights Reserved
Schema: manuals
Version: 0.0.3