https://github.com/spenserblack/boop
Create a file on the filesystem
https://github.com/spenserblack/boop
cli touch utilities utility
Last synced: 4 months ago
JSON representation
Create a file on the filesystem
- Host: GitHub
- URL: https://github.com/spenserblack/boop
- Owner: spenserblack
- License: mit
- Created: 2026-02-27T14:26:52.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-02-28T23:42:49.000Z (4 months ago)
- Last Synced: 2026-03-02T02:41:50.445Z (4 months ago)
- Topics: cli, touch, utilities, utility
- Language: Go
- Homepage:
- Size: 36.1 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `boop`
[](https://github.com/spenserblack/boop/actions/workflows/ci.yml)
[](https://goreportcard.com/report/github.com/spenserblack/boop)
`touch` is officially used to update timestamps for files. But it's often used to create
empty files. `boop` was inspired by *that* usage, and adds a bit more functionality for
creating new files. It is not intended to completely replace `touch`, but help reduce
series of commands that *include* `touch` into just one command.
- Create both files and *directories.* If the filepath ends in a trailing slash, `boop`
will create a directory.
- Set execute permissions when creating a file (does nothing on Windows).
- Create any parent directories that the filepath needs.
## Example
### Before
```shell
# Ensure the containing directory exists
mkdir -p deeply/nested
# Create the empty file
touch deeply/nested/file
# Make the created file executable
chmod +x deeply/nested/file
```
### After
```shell
boop -x deeply/nested/file
```
## Installation
### With `go install`
```shell
go install github.com/spenserblack/boop@latest
```
### From GitHub releases
#### Unix
*You may need to call `sudo sh` instead.*
```shell
curl -fsSL https://github.com/spenserblack/boop/raw/refs/heads/main/scripts/install-from-gh.sh | sh
```