Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(git): Fix stash spec #2397

Merged
merged 1 commit into from
Jun 26, 2024
Merged

feat(git): Fix stash spec #2397

merged 1 commit into from
Jun 26, 2024

Conversation

injust
Copy link
Contributor

@injust injust commented Jun 26, 2024

Update git stash spec to better match https://git-scm.com/docs/git-stash#_synopsis.

This is a quick fix to remove annoying insertValue values for git stash subcommands that do not take mandatory arguments/options.

Also fixed some typos and made the message argument optional for git stash create.

Update `git stash` spec to better match https://git-scm.com/docs/git-stash#_synopsis.

This is a quick fix to remove annoying `insertValue` values for `git stash` subcommands that do not take mandatory arguments/options.

Also fixed some typos and made the `message` argument optional for `git stash create`.
@withfig-bot
Copy link
Collaborator

withfig-bot commented Jun 26, 2024

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@withfig-bot
Copy link
Collaborator

Overview

src/git.ts:

Info:

Single Functions:

postProcess:

 function (out) {
      const output = filterMessages(out);

      if (output.startsWith("fatal:")) {
        return [];
      }

      return output.split("\n").map((line) => {
        return {
          name: line.substring(0, 7),
          icon: "fig://icon?type=node",
          description: line.substring(7),
        };
      });
    }

postProcess:

 function (out) {
      const output = filterMessages(out);

      if (output.startsWith("fatal:")) {
        return [];
      }

      return output.split("\n").map((line) => {
        return {
          name: line.substring(0, 7),
          icon: "fig://icon?type=node",
          description: line.substring(7),
        };
      });
    }

postProcess:

 function (out) {
      const output = filterMessages(out);

      if (output.startsWith("fatal:")) {
        return [];
      }

      return output.split("\n").map((file) => {
        return {
          // account for conventional commit messages
          name: file.split(":").slice(2).join(":"),
          insertValue: file.split(":")[0],
          icon: `fig://icon?type=node`,
        };
      });
    }

postProcess:

 function (out, tokens) {
      const output = filterMessages(out);

      if (output.startsWith("fatal:")) {
        return [];
      }

      return output.split("\n").map((file) => {
        return {
          name: file,
          insertValue: (!tokens.includes("--") ? "-- " : "") + file,
          icon: `fig://icon?type=file`,
          description: "Staged file",
        };
      });
    }

postProcess:

 function (out) {
      const remoteURLs = out.split("\n").reduce((dict, line) => {
        const pair = line.split("\t");
        const remote = pair[0];
        const url = pair[1].split(" ")[0];

        dict[remote] = url;
        return dict;
      }, {});

      return Object.keys(remoteURLs).map((remote) => {
        const url = remoteURLs[remote];
        let icon = "box";
        if (url.includes("github.com")) {
          icon = "github";
        }

        if (url.includes("gitlab.com")) {
          icon = "gitlab";
        }

        if (url.includes("heroku.com")) {
          icon = "heroku";
        }
        return {
          name: remote,
          icon: `fig://icon?type=${icon}`,
          description: "Remote",
        };
      });
    }

postProcess:

 function (output) {
      return output.split("\n").map((tag) => ({
        name: tag,
        icon: "🏷️",
      }));
    }

script:

 function (context) {
      if (context.includes("--staged") || context.includes("--cached")) {
        return [
          "bash",
          "-c",
          `git --no-optional-locks status --short | sed -ne '/^M /p' -e '/A /p'`,
        ];
      } else {
        return [
          "bash",
          "-c",
          `git --no-optional-locks status --short | sed -ne '/M /p' -e '/A /p'`,
        ];
      }
    }

URLs:

  • http://developercertificate.org
  • http://developercertificate.org

@withfig-bot
Copy link
Collaborator

Hello @injust,
thank you very much for creating a Pull Request!
Here is a small checklist to get this PR merged as quickly as possible:

  • Do all subcommands / options which take arguments include the args property (args: {})?
  • Are all options modular? E.g. -a -u -x instead of -aux
  • Have all other checks passed?

Please add a 👍 as a reaction to this comment to show that you read this.

withfig-bot added a commit that referenced this pull request Jun 26, 2024
@grant0417 grant0417 merged commit f9c336f into withfig:master Jun 26, 2024
5 checks passed
@withfig withfig locked and limited conversation to collaborators Jun 26, 2024
@injust injust deleted the patch-2 branch June 26, 2024 21:40
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants