aboutsummaryrefslogtreecommitdiff
path: root/home/shell/fish
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2023-02-21 12:56:32 -0800
committerFranck Cuny <franck@fcuny.net>2023-02-21 12:59:16 -0800
commitf4a91646c0f1e88160d0d2a1f93730b0a0a634a4 (patch)
tree7e097d1adcbd7b4c872d7e9855b11ac72e455eb6 /home/shell/fish
parentfeat(templates/go): add flake template for go projects (diff)
downloadinfra-f4a91646c0f1e88160d0d2a1f93730b0a0a634a4.tar.gz
feat(home/fish): function to create go projects
A function to create a go project: it creates the git repository, setup the project using a flake template, create an initial commit, push it and ensure we can run drone on it.
Diffstat (limited to 'home/shell/fish')
-rw-r--r--home/shell/fish/functions/new-go-project.fish27
1 files changed, 27 insertions, 0 deletions
diff --git a/home/shell/fish/functions/new-go-project.fish b/home/shell/fish/functions/new-go-project.fish
new file mode 100644
index 0000000..e00a036
--- /dev/null
+++ b/home/shell/fish/functions/new-go-project.fish
@@ -0,0 +1,27 @@
+function new-go-project --description "create a new go project"
+ set -l project_name $argv[1]
+
+ echo "> creating $project_name"
+ cd ~/workspace/
+ mkdir $project_name
+ cd $project_name
+
+ echo "> running `git init'"
+ git init .
+
+ echo "> setting the default template for go projects"
+ nix flake init -t ~/workspace/world/templates#go
+ direnv allow
+
+ echo "> creating initial commit, touch your yubikey"
+ git add .
+ git commit -m 'initial commit'
+
+ echo "> pushing to https://git.fcuny.net/fcuny/$project_name"
+ git remote add origin https://git.fcuny.net/fcuny/$project_name
+ git push origin --all
+
+ echo "> enabling drone CI for the repository"
+ drone --token (pass credentials/ci.fcuny.net) repo sync
+ drone --token (pass credentials/ci.fcuny.net) repo enable fcuny/$project_name
+end