Skip to content

Commit

Permalink
✨ Add more Git commands
Browse files Browse the repository at this point in the history
siguici committed Jan 18, 2025
1 parent cd08ddd commit 90aa523
Showing 2 changed files with 65 additions and 8 deletions.
39 changes: 34 additions & 5 deletions packages/core/src/git.ts
Original file line number Diff line number Diff line change
@@ -12,13 +12,26 @@ export class Git extends Runner {
return this.$('init', options);
}

status(options: ProcessOptions = defaultOptions) {
return this.$('status', options);
}

add(
files: string | string[] = '.',
{ force = false, patch = false }: { force?: boolean; patch?: boolean } = {},
options: ProcessOptions = defaultOptions
) {
files = this.parseArgs(files);
const args = this.parseArgs(files);

if (force) {
args.push('--force');
}

return this.$(['add', ...files], options);
if (patch) {
args.push('--patch');
}

return this.$(['add', ...args], options);
}

commit(message: string, options: ProcessOptions = defaultOptions) {
@@ -40,6 +53,18 @@ export class Git extends Runner {
) {
return this.$(`pull ${remote} ${branch}`, options);
}

branch(name?: string, options: ProcessOptions = defaultOptions) {
return name ? this.$(`branch ${name}`, options) : this.$('branch', options);
}

checkout(branch: string, options: ProcessOptions = defaultOptions) {
return this.$(`checkout ${branch}`, options);
}

merge(branch: string, options: ProcessOptions = defaultOptions) {
return this.$(`merge ${branch}`, options);
}
}

export function git(): Git {
@@ -48,12 +73,16 @@ export function git(): Git {

const _git = git();

const [init, add, commit, push, pull] = [
const [init, status, add, commit, push, pull, branch, checkout, merge] = [
_git.init,
_git.status,
_git.add,
_git.commit,
_git.push,
_git.pull
_git.pull,
_git.branch,
_git.checkout,
_git.merge
];

export { init, add, commit, push, pull };
export { init, status, add, commit, push, pull, branch, checkout, merge };
34 changes: 31 additions & 3 deletions packages/core/src/index.ts
Original file line number Diff line number Diff line change
@@ -151,6 +151,10 @@ export class Panam extends Runtime {
return this.pm.jsrX(executable, options);
}

status(options: ProcessOptions = defaultOptions) {
return this.git.status(options);
}

async commit(message: string, options: ProcessOptions = defaultOptions) {
return this.git.commit(message, options);
}
@@ -170,6 +174,18 @@ export class Panam extends Runtime {
) {
return this.git.push(remote, branch, options);
}

branch(name?: string, options: ProcessOptions = defaultOptions) {
return this.git.branch(name, options);
}

checkout(branch: string, options: ProcessOptions = defaultOptions) {
return this.git.checkout(branch, options);
}

merge(branch: string, options: ProcessOptions = defaultOptions) {
return this.git.merge(branch, options);
}
}

export function panam(
@@ -201,9 +217,13 @@ const [
jsrExec,
jsrDlx,
jsrX,
status,
commit,
push,
pull
pull,
branch,
checkout,
merge
] = [
_panam.name,
_panam.realname,
@@ -224,9 +244,13 @@ const [
_panam.jsrExec,
_panam.jsrDlx,
_panam.jsrX,
_panam.status,
_panam.commit,
_panam.push,
_panam.pull
_panam.pull,
_panam.branch,
_panam.checkout,
_panam.merge
];

export {
@@ -249,9 +273,13 @@ export {
jsrExec,
jsrDlx,
jsrX,
status,
commit,
push,
pull
pull,
branch,
checkout,
merge
};

export default _panam;

0 comments on commit 90aa523

Please sign in to comment.