66 lines
1.5 KiB
Text
66 lines
1.5 KiB
Text
import * from "../config.ab"
|
|
import * from "../git/branch.ab"
|
|
|
|
fun branch(feature: Text): Text {
|
|
let prefix = get_feature_prefix()
|
|
|
|
return "{prefix}{feature}"
|
|
}
|
|
|
|
fun feature_start(feature: Text, description: Text): Null {
|
|
let branch = branch(feature)
|
|
|
|
unsafe branch_create(branch, get_dev_branch())
|
|
unsafe branch_set_description(branch, description)
|
|
}
|
|
|
|
fun feature_checkout(feature: Text): Null {
|
|
unsafe branch_checkout(branch(feature))
|
|
}
|
|
|
|
fun feature_publish(feature: Text): Null {
|
|
unsafe branch_push(
|
|
branch(feature),
|
|
get_push_remote()
|
|
)
|
|
}
|
|
|
|
fun feature_finish(feature: Text): Null {
|
|
echo "Finish feature {feature}"
|
|
}
|
|
|
|
fun feature_delete(feature: Text): Null {
|
|
let dev_branch = get_dev_branch()
|
|
let branch = branch(feature)
|
|
|
|
if branch_get_current() == dev_branch {
|
|
branch_checkout(dev_branch)
|
|
}
|
|
|
|
branch_delete(branch)
|
|
}
|
|
|
|
fun feature_rebase(feature: Text): Null {
|
|
echo "Rebase feature {feature}"
|
|
}
|
|
|
|
fun help(args: [Text]): Null {
|
|
echo "Feature help"
|
|
}
|
|
|
|
pub fun feature_cmd(args: [Text]): Null {
|
|
let cmd = args[1]
|
|
let feature = args[2]
|
|
|
|
if {
|
|
cmd == "": help(args)
|
|
cmd == "start": feature_start(feature, args[3])
|
|
cmd == "checkout": feature_checkout(feature)
|
|
cmd == "publish": feature_publish(feature)
|
|
cmd == "finish": feature_finish(feature)
|
|
cmd == "rebase": feature_rebase(feature)
|
|
cmd == "delete": feature_delete(feature)
|
|
else: echo "Unknown command feature '{cmd}'"
|
|
}
|
|
}
|
|
|