about summary refs log tree commit diff
diff options
context:
space:
mode:
-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