Skip to content

make git optional #97

@hellodword

Description

@hellodword

Using git during the generate process assumes certain prerequisites, like having git installed and setting global user.name and user.email. However, I prefer not to set global git user.name and user.email, opting instead to set them per project, which results in an error during generation:

cli/generate.go

Line 145 in 0a713d1

if err := runCmdInDir(dir, "git", "commit", "-am", "init: extism"); err != nil {

Furthermore, based on the code, git is primarily used for cloning, which is not essential.

There's a submodule in https://github.com/extism/c-pdk-template

How about using go-git?

I'm trying to develop an extension system with this project. I aim to assume that the users creating extensions have as few relevant skills as possible, which is one reason why untrusted code is an issue, isn't it?

root@f616081b980c:/tmp# mkdir proj1
root@f616081b980c:/tmp# cd proj1/
root@f616081b980c:/tmp/proj1# git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <name>
hint: 
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint: 
hint: 	git branch -m <name>
Initialized empty Git repository in /tmp/proj1/.git/
root@f616081b980c:/tmp/proj1# git config user.name "Your Name"
root@f616081b980c:/tmp/proj1# git config user.email "you@example.com"
root@f616081b980c:/tmp/proj1# git config -l
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
user.name=Your Name
user.email=you@example.com


root@f616081b980c:/tmp/proj1# extism -v gen plugin -l Go -o plugin
Cloning into 'plugin'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (8/8), done.
Receiving objects: 100% (9/9), done.
remote: Total 9 (delta 0), reused 5 (delta 0), pack-reused 0
Switched to a new branch 'extism-init'
Author identity unknown

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@f616081b980c.(none)')
Error: exit status 128

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions