diff --git a/create-project.nix b/create-project.nix deleted file mode 100644 index ba45fac..0000000 --- a/create-project.nix +++ /dev/null @@ -1,12 +0,0 @@ -{pkgs, ...}: let - blueprints = ../project-blueprints; - mainScript = builtins.readFile ./main.nu; - scriptWithSubstitutions = - builtins.replaceStrings - ["@BLUEPRINTS@"] - ["${blueprints}"] - mainScript; -in '' - #!${pkgs.nushell}/bin/nu - ${scriptWithSubstitutions} -'' diff --git a/home/modules/create-project/create-project.nix b/home/modules/create-project/create-project.nix index 7f11962..e8695fb 100644 --- a/home/modules/create-project/create-project.nix +++ b/home/modules/create-project/create-project.nix @@ -3,72 +3,71 @@ lib, ... }: let - blueprints = ./. + "/project-blueprints"; + blueprints = ./project-blueprints; in { home.packages = [ (pkgs.writeScriptBin "create-project" '' - #!${pkgs.nushell}/bin/nu + #!${pkgs.nushell}/bin/nu - def main [ - type?: string - name?: string - --local (-l) - ] { + def main [ + name?: string + type?: string + --local (-l) + ] { + if $name == null or $type == null { + print "Usage: create-project [Options: -l]" + exit 1 + } - if $name == null or $type == null { - print "Usage: create-project [Options: -l]" - exit 1 - } + if ($name | str contains "/") or ($name | str contains ".") { + print "This is not a valid name for a project" + exit 1 + } - if ($name | str contains "/") or ($name | str contains ".") { - print "This is not a valid name for a project" - exit 1 - } + if ($type | str contains "/") or ($type | str contains ".") { + print "This is not a valid project type" + exit 1 + } - if ($type | str contains "/") or ($type | str contains ".") { - print "This is not a valid project type" - exit 1 - } + let blueprint_dir = $"${toString blueprints}/($type)" - let blueprint_dir = $"${blueprints}/($type)" + if ($blueprint_dir | path type) != "dir" { + print "This project type doesn't exist" + exit 1 + } - if ($blueprint_dir | path type) != "dir" { - print "This project type doesn't exist" - exit 1 - } + mkdir $name + cd $name - mkdir $name - cd $name + if (ls $blueprint_dir | length) > 0 { + glob $"($blueprint_dir)/*" | each { |file| cp $file . } + ^chmod -R u+w . + } - if (ls $blueprint_dir | length) > 0 { - glob $"($blueprint_dir)/*" | each { |file| cp $file . } - chmod -R u+w . - } + if ("./init.sh" | path type) == "file" { + bash "./init.sh" $name + rm "init.sh" + } - if ("./init.sh" | path type) == "file" { - bash "./init.sh" $name - rm "init.sh" - } + echo "use flake" | save .envrc + direnv allow - echo "use flake" | save .envrc - direnv allow + git init + git add . + git commit -m "Project setup" - git init - git add . - git commit -m "Project setup" + if $local { + print "You are all done" + exit 0 + } - if $local { - print "You are all done" - exit 0 - } + ${lib.getExe pkgs.tea} repos create --name $name + git remote add origin $"https://git.stribrny.org/max_ag/($name).git" + git push -u origin main - ${lib.getExe pkgs.tea} repos create --name $name - git remote add origin $"https://git.stribrny.org/max_ag/($name).git" - git push -u origin main - - print "You are all done" - exit 0 - } + print "You are all done" + exit 0 + } '') ]; } diff --git a/main.nu b/main.nu deleted file mode 100644 index 5ac95b5..0000000 --- a/main.nu +++ /dev/null @@ -1,59 +0,0 @@ -def main [ - name?: string - type?: string - --local (-l) -] { - if $name == null or $type == null { - print "Usage: create-project [Options: -l]" - exit 1 - } - - if ($name | str contains "/") or ($name | str contains ".") { - print "This is not a valid name for a project" - exit 1 - } - - if ($type | str contains "/") or ($type | str contains ".") { - print "This is not a valid project type" - exit 1 - } - - let blueprint_dir = $"@BLUEPRINTS@/($type)" - - if ($blueprint_dir | path type) != "dir" { - print "This project type doesn't exist" - exit 1 - } - - mkdir $name - cd $name - - if (ls $blueprint_dir | length) > 0 { - glob $"($blueprint_dir)/*" | each { |file| cp $file . } - ^chmod -R u+w . - } - - if ("./init.sh" | path type) == "file" { - bash "./init.sh" $name - rm "init.sh" - } - - echo "use flake" | save .envrc - direnv allow - - git init - git add . - git commit -m "Project setup" - - if $local { - print "You are all done" - exit 0 - } - - tea repos create --name $name - git remote add origin $"https://git.stribrny.org/max_ag/($name).git" - git push -u origin main - - print "You are all done" - exit 0 -}