Multipurpose shell scripts and dotfiles
install | ||
packs | ||
scripts | ||
.dockerignore | ||
.gitignore | ||
Dockerfile | ||
gen-makefile.sh | ||
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
# switch to repo dir
cd my-env
# build and run container
docker build -t myenv . && docker run -it myenv
# oneliner
docker run -it $(docker build -q .)
Now you can play around with scripts.