<commit_before># scripts
A collection of scripts and other utilities I have written for my personal usage. All files are copyrighted under the MIT license as specified in `LICENSE` unless otherwise specified. The scripts in this directory invoke other resources in this repo via `/usr/local/scripts` or `~/Scripts`.

## Directory hiearchy
`apps` - Contains scripts to start certain applications or other processes on my computer.
`arch` - Scripts related to the archiving of files on my computer for long-term storage.
`dat` - Contains data to be used by scripts. Private or encrypted data will not be present.
`fun` - Scripts that don't serve any real purpose, and are just for fun.
`sbin` - Scripts that require root access.
`wip` - Scripts that are not complete, do not function properly, or are experimental. Do not expect anything in here to work.
`wm` - Scripts used by bindings (such as media keys) or by my window manager directly. See my dotfiles repo for more information.

## Script summaries
## Top level

#### charge-shutdown.py
A Windows script (for Cygwin) to predict the time needed to charge my phone, and turn off my computer then to prevent overcharging.

#### check-args.sh [<i>anything you want here</i>...]
Prints out all the arguments recieved by the script. Used for making debugging scripts by making sure you're passing arguments the way you think you are.

#### chperms.sh
Makes all `*.py` and `*.sh` files executable. Provides a function called `chperms`.

#### common-password.sh
Determines if your password is one of the most common 10,000 passwords. (If it is, change it immediately, it's a big security hazard for you)

#### detect-logitech-g710.sh
Determine if the interface directory provided by Wattos' Logitech G710+ driver is present or not.

#### fssync.sh
Provides a function called `fssync` that basically acts like rsync, but in both directions.

#### has-dependencies.sh <i>packge-name</i>...
Looks for the given packages on your system. By default, uses the pacman package manager for Arch Linux, though this can be easily changed.

#### hashsum.py <i>algorithm</i> <i>file-name</i>...
Allows hashing of whatever hash algorithms are supported by Python.

#### mkdesktop.sh [<i>desktop-file-name</i>] [<i>destination-directory</i>]
Makes a desktop file from the template in `dat/`. You can choose where you want it, though by default it goes to `~/Desktop`.

#### mouse-sensitivity.sh
Disables mouse acceleration under X. You may want to fiddle with the `Device Accel Constant Deceleration` value to get a mouse movement rate you like.

#### package.sh
Creates archives of the given directories to back them up by providing a function called `pack`.

#### parse-xml.sh
Takes piped input with XML data and either prints it in a `key:value` format or, if arguments are given, only prints the pairs for the given keys.
<commit_msg>Updated README with makemake<commit_after># scripts
A collection of scripts and other utilities I have written for my personal usage. All files are copyrighted under the MIT license as specified in `LICENSE` unless otherwise specified. The scripts in this directory invoke other resources in this repo via `/usr/local/scripts` or `~/Scripts`.

## Directory hiearchy
`apps` - Contains scripts to start certain applications or other processes on my computer.
`arch` - Scripts related to the archiving of files on my computer for long-term storage.
`dat` - Contains data to be used by scripts. Private or encrypted data will not be present.
`fun` - Scripts that don't serve any real purpose, and are just for fun.
`sbin` - Scripts that require root access.
`wip` - Scripts that are not complete, do not function properly, or are experimental. Do not expect anything in here to work.
`wm` - Scripts used by bindings (such as media keys) or by my window manager directly. See my dotfiles repo for more information.

## Script summaries
## Top level

#### charge-shutdown.py
A Windows script (for Cygwin) to predict the time needed to charge my phone, and turn off my computer then to prevent overcharging.

#### check-args.sh [<i>anything you want here</i>...]
Prints out all the arguments recieved by the script. Used for making debugging scripts by making sure you're passing arguments the way you think you are.

#### chperms.sh
Makes all `*.py` and `*.sh` files executable. Provides a function called `chperms`.

#### common-password.sh
Determines if your password is one of the most common 10,000 passwords. (If it is, change it immediately, it's a big security hazard for you)

#### detect-logitech-g710.sh
Determine if the interface directory provided by Wattos' Logitech G710+ driver is present or not.

#### fssync.sh
Provides a function called `fssync` that basically acts like rsync, but in both directions.

#### has-dependencies.sh <i>packge-name</i>...
Looks for the given packages on your system. By default, uses the pacman package manager for Arch Linux, though this can be easily changed.

#### hashsum.py <i>algorithm</i> <i>file-name</i>...
Allows hashing of whatever hash algorithms are supported by Python.

#### makemake.sh <i>directory</i>...
Creates a directory with a template Makefile inside. I wrote this so I could create projects for school easily.

#### mkdesktop.sh [<i>desktop-file-name</i>] [<i>destination-directory</i>]
Makes a desktop file from the template in `dat/`. You can choose where you want it, though by default it goes to `~/Desktop`.

#### mouse-sensitivity.sh
Disables mouse acceleration under X. You may want to fiddle with the `Device Accel Constant Deceleration` value to get a mouse movement rate you like.

#### package.sh
Creates archives of the given directories to back them up by providing a function called `pack`.

#### parse-xml.sh
Takes piped input with XML data and either prints it in a `key:value` format or, if arguments are given, only prints the pairs for the given keys.

{'fraction_non_alphanumeric': 0.08416596104995766, 'fraction_numerical': 0.0037256562235393736, 'mean_word_length': 4.301615798922801, 'pattern_counts': {'":': 0, '<': 29, '<?xml version=': 0, '>': 29, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1610060', 'n_tokens_mistral': 1627, 'n_tokens_neox': 1536, 'n_words': 860}