v
This commit is contained in:
parent
7579a52ff9
commit
7fe9b3fda1
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
.mypy_cache
|
||||
deluge_conf
|
||||
bin/
|
||||
code/
|
||||
nuscripts
|
||||
nuscripts/*
|
24
README.md
24
README.md
@ -1,2 +1,24 @@
|
||||
# crystaldev
|
||||
# my crystal development environment
|
||||
|
||||
- make sure nix is installed
|
||||
|
||||
```bash
|
||||
#go to the cloned repo
|
||||
|
||||
#following will start your virtual shell
|
||||
./start.sh
|
||||
|
||||
#then in the shell open the hero shell (based on nushell, will set all paths to make this dir sandboxed)
|
||||
./hero_shell.sh
|
||||
|
||||
#if you want hero and mycelium do
|
||||
herotools install_hero
|
||||
|
||||
#if you want mycelium
|
||||
herotools install_mycelium
|
||||
|
||||
#install v & crystallib
|
||||
herotools install_crystal
|
||||
|
||||
```
|
||||
|
||||
|
10
bash_shell.sh
Executable file
10
bash_shell.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
clear
|
||||
|
||||
export BASE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
export PATH=${BASE}/bin:${BASE}/v:${PATH}
|
||||
|
||||
cd ${BASE}
|
||||
bash
|
105
hero_shell.sh
Executable file
105
hero_shell.sh
Executable file
@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
clear
|
||||
|
||||
export BASE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
export NU_CONFIG_DIR=${BASE}/nuscripts/config
|
||||
|
||||
|
||||
#keys used to see how to checkout code, don't remove
|
||||
if [[ -z "$SSH_AUTH_SOCK" ]]; then
|
||||
echo " - SSH agent is not running."
|
||||
export sshkeys=''
|
||||
else
|
||||
export sshkeys=$(ssh-add -l)
|
||||
fi
|
||||
|
||||
|
||||
function gitcheck {
|
||||
# Check if Git email is set
|
||||
if [ -z "$(git config user.email)" ]; then
|
||||
echo "Git email is not set."
|
||||
read -p "Enter your Git email: " git_email
|
||||
git config --global user.email "$git_email"
|
||||
else
|
||||
echo "Git email is set to: $(git config user.email)"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function github_keyscan {
|
||||
mkdir -p ~/.ssh
|
||||
if ! grep github.com ~/.ssh/known_hosts > /dev/null
|
||||
then
|
||||
ssh-keyscan github.com >> ~/.ssh/known_hosts
|
||||
fi
|
||||
git config --global pull.rebase false
|
||||
|
||||
}
|
||||
|
||||
function nuscript_get {
|
||||
gitcheck
|
||||
github_keyscan
|
||||
export DIR_CODE=$BASE/code
|
||||
mkdir -p $DIR_CODE
|
||||
if [[ -d "$DIR_CODE/nuscripts" ]]
|
||||
then
|
||||
echo
|
||||
else
|
||||
pushd $DIR_CODE 2>&1 >> /dev/null
|
||||
if [[ -z "$sshkeys" ]]; then
|
||||
git clone --depth 1 --no-single-branch https://git.ourworld.tf/despiegk/nuscripts.git
|
||||
else
|
||||
git clone --depth 1 --no-single-branch git@git.ourworld.tf:despiegk/nuscripts.git
|
||||
fi
|
||||
popd 2>&1 >> /dev/null
|
||||
fi
|
||||
rm -f $BASE/nuscripts
|
||||
ln -s "$DIR_CODE/nuscripts" $BASE/nuscripts
|
||||
}
|
||||
|
||||
|
||||
|
||||
# run_hero() {
|
||||
# hero 2>&1 > /dev/null
|
||||
# exit_status=$?
|
||||
# if [ $exit_status -ne 0 ]; then
|
||||
# echo "Failed to start Hero Cmd."
|
||||
# echo "If you're on macOS and encountering security restrictions."
|
||||
# echo "You can do this in System Preferences > Security & Privacy."
|
||||
# echo "Under the Privacy tab, add the Terminal and other Apps from this Distro"
|
||||
# echo "to the list of applications with Access."
|
||||
# fi
|
||||
# }
|
||||
|
||||
# run_nu() {
|
||||
# nu -h 2>&1 > /dev/null
|
||||
# exit_status=$?
|
||||
# if [ $exit_status -ne 0 ]; then
|
||||
# echo "Failed to start Nushell."
|
||||
# fi
|
||||
# }
|
||||
|
||||
# run_mycelium() {
|
||||
# mycelium -h 2>&1 > /dev/null
|
||||
# exit_status=$?
|
||||
# if [ $exit_status -ne 0 ]; then
|
||||
# echo "Failed to start Nushell."
|
||||
# echo "If you're on macOS and encountering security restrictions."
|
||||
# echo "You can do this in System Preferences > Security & Privacy."
|
||||
# echo "Under the Privacy tab, add the Terminal and other Apps from this Distro"
|
||||
# echo "to the list of applications with Access."
|
||||
# fi
|
||||
# }
|
||||
|
||||
|
||||
# run_hero
|
||||
# run_nu
|
||||
# run_mycelium
|
||||
|
||||
cd ${BASE}
|
||||
|
||||
nuscript_get
|
||||
|
||||
nu --config nuscripts/config/config.nu --env-config nuscripts/config/env.nu -e 'source nuscripts/load.nu; $env.PATH = (paths_nix)'
|
10
push_code.sh
Executable file
10
push_code.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
MYDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
cd "$MYDIR"
|
||||
|
||||
echo "Enter the commit message:"
|
||||
read commit_message
|
||||
|
||||
git add . -A ; git commit -m "$commit_message"; git push
|
29
shell.nix
Normal file
29
shell.nix
Normal file
@ -0,0 +1,29 @@
|
||||
let
|
||||
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-23.11";
|
||||
pkgs = import nixpkgs { config = {}; overlays = []; };
|
||||
in
|
||||
|
||||
pkgs.mkShell {
|
||||
packages = with pkgs; [
|
||||
git
|
||||
nushell
|
||||
mc
|
||||
jq
|
||||
# vscode-with-extensions
|
||||
# libtorrent-rasterbar
|
||||
# python311Packages.libtorrent-rasterbar
|
||||
python311Full
|
||||
python311Packages.ipython
|
||||
python311Packages.ipdb
|
||||
python311Packages.rq
|
||||
rsync
|
||||
rustc
|
||||
go
|
||||
|
||||
];
|
||||
# shellHook = ''
|
||||
# echo "Nix shell environment is ready."
|
||||
# hero_shell.sh
|
||||
# '';
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user