Multipurpose shell scripts and dotfiles
install | ||
packs | ||
scripts | ||
.dockerignore | ||
.gitignore | ||
Dockerfile | ||
gen-makefile.sh | ||
LICENSE | ||
Makefile | ||
README.md |
My Ubuntu environment
make
-ready bunch of scripts for easily installation of different software.
Requirements
bash
,zsh
or othersh
-compatible shellmake
(optional but recommended)wget
(necessary for some scripts)git
(necessary for some scripts)
Usage
Clone this repo (recommended)
# if git is installed
git clone git@git.axenov.dev:anthony/my-env.git --depth=1
# if git is not installed
wget -qO - https://git.axenov.dev/anthony/my-env/archive/master.tar.gz | tar -zxf -
# switch to repo dir
cd my-env
# get full list of `make` goals
make help
# generate new ./Makefile and get full list of `make` goals
./gen-makefile.sh
I do not recomend to run
make
without arguments. Usemake help
to look around.
Selective straightforward installation
# from remote file
wget -qO - https://git.axenov.dev/anthony/my-env/raw/branch/master/install/apt.sh | bash
# from locally cloned repo
./install/apt.sh
How to add a new software script?
- Create new
./install/*.sh
script.
At the beggining of a file you must write these two lines:#!/bin/bash ##makedesc: Your description for Makefile
- Test your script
- Run
./gen-makefile.sh
to generate new./Makefile
How to create packs?
You can create new file inside ./packs
dir.
Syntax is same as classic makefile with one important and necessary addition -- a comment started with ##
:
##mypack1: Pack description
mypack1: goal1 goal2 goalX ...
...
##mypackX: Pack description
mypackY: goalA goalB
@cp file1 file2
...
...
where:
mypack*
is the pack namegoal*
are script names in./install
Testing in docker (not recommended)
Note that this is almost useless way to test since you'll meet errors in many cases because dockerized OS is not fully-functional and will never be.
You can use docker to test something really simple, e.g. to check general script steps or install cli tools.
In other cases you need virtualized Ubuntu instead of dockerized one, so I strongly recommend you to use VirtualBox or your host machine.
# switch to repo dir
cd my-env
# build and run container
docker build -t myenv . && docker run -it myenv
# or oneliner
docker run -it $(docker build -q .)
Now you can play around with scripts.