How to tell `complete` to fall-back to its default?












4














I'm using the complete bash-builtinin to enable arbitrary auto-completion for my python script. I set it up with:



complete -C './script.py --compgen "$@"' ./script.py


Such that whenever bash attempts to auto-complete it invokes my script with a flag --compgen that tells my script to do auto completion. This works fine.



However I want to be able to fall-back to bash's default behaviour in some situations from within script.py. Is there a way to tell complete that it should rerun without calling my script and do its default-thing instead?



Basically, I want to avoid re-implementing file-name expansion, when referring to a file.










share|improve this question




















  • 2




    Not sure I understand, but can't you just use compgen -o default in your script?
    – mickp
    Dec 27 '18 at 15:16










  • I could if I had thought of that. Sometimes it's the super face-palmy solutions that you miss. Care to extend it to an answer? Not sure how to call a bash-builtin from python.
    – bitmask
    Dec 27 '18 at 15:19
















4














I'm using the complete bash-builtinin to enable arbitrary auto-completion for my python script. I set it up with:



complete -C './script.py --compgen "$@"' ./script.py


Such that whenever bash attempts to auto-complete it invokes my script with a flag --compgen that tells my script to do auto completion. This works fine.



However I want to be able to fall-back to bash's default behaviour in some situations from within script.py. Is there a way to tell complete that it should rerun without calling my script and do its default-thing instead?



Basically, I want to avoid re-implementing file-name expansion, when referring to a file.










share|improve this question




















  • 2




    Not sure I understand, but can't you just use compgen -o default in your script?
    – mickp
    Dec 27 '18 at 15:16










  • I could if I had thought of that. Sometimes it's the super face-palmy solutions that you miss. Care to extend it to an answer? Not sure how to call a bash-builtin from python.
    – bitmask
    Dec 27 '18 at 15:19














4












4








4


1





I'm using the complete bash-builtinin to enable arbitrary auto-completion for my python script. I set it up with:



complete -C './script.py --compgen "$@"' ./script.py


Such that whenever bash attempts to auto-complete it invokes my script with a flag --compgen that tells my script to do auto completion. This works fine.



However I want to be able to fall-back to bash's default behaviour in some situations from within script.py. Is there a way to tell complete that it should rerun without calling my script and do its default-thing instead?



Basically, I want to avoid re-implementing file-name expansion, when referring to a file.










share|improve this question















I'm using the complete bash-builtinin to enable arbitrary auto-completion for my python script. I set it up with:



complete -C './script.py --compgen "$@"' ./script.py


Such that whenever bash attempts to auto-complete it invokes my script with a flag --compgen that tells my script to do auto completion. This works fine.



However I want to be able to fall-back to bash's default behaviour in some situations from within script.py. Is there a way to tell complete that it should rerun without calling my script and do its default-thing instead?



Basically, I want to avoid re-implementing file-name expansion, when referring to a file.







python bash bash-completion complete






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 27 '18 at 15:18

























asked Dec 27 '18 at 14:56









bitmask

16.5k1063122




16.5k1063122








  • 2




    Not sure I understand, but can't you just use compgen -o default in your script?
    – mickp
    Dec 27 '18 at 15:16










  • I could if I had thought of that. Sometimes it's the super face-palmy solutions that you miss. Care to extend it to an answer? Not sure how to call a bash-builtin from python.
    – bitmask
    Dec 27 '18 at 15:19














  • 2




    Not sure I understand, but can't you just use compgen -o default in your script?
    – mickp
    Dec 27 '18 at 15:16










  • I could if I had thought of that. Sometimes it's the super face-palmy solutions that you miss. Care to extend it to an answer? Not sure how to call a bash-builtin from python.
    – bitmask
    Dec 27 '18 at 15:19








2




2




Not sure I understand, but can't you just use compgen -o default in your script?
– mickp
Dec 27 '18 at 15:16




Not sure I understand, but can't you just use compgen -o default in your script?
– mickp
Dec 27 '18 at 15:16












I could if I had thought of that. Sometimes it's the super face-palmy solutions that you miss. Care to extend it to an answer? Not sure how to call a bash-builtin from python.
– bitmask
Dec 27 '18 at 15:19




I could if I had thought of that. Sometimes it's the super face-palmy solutions that you miss. Care to extend it to an answer? Not sure how to call a bash-builtin from python.
– bitmask
Dec 27 '18 at 15:19












1 Answer
1






active

oldest

votes


















4














Try this in your Python code:



import os
# if failed:
os.system("bash -c 'compgen -o default'")





share|improve this answer





















  • One can even append the partial argument being examined after default. Exactly what I was looking for.
    – bitmask
    Dec 27 '18 at 15:34











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53946961%2fhow-to-tell-complete-to-fall-back-to-its-default%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









4














Try this in your Python code:



import os
# if failed:
os.system("bash -c 'compgen -o default'")





share|improve this answer





















  • One can even append the partial argument being examined after default. Exactly what I was looking for.
    – bitmask
    Dec 27 '18 at 15:34
















4














Try this in your Python code:



import os
# if failed:
os.system("bash -c 'compgen -o default'")





share|improve this answer





















  • One can even append the partial argument being examined after default. Exactly what I was looking for.
    – bitmask
    Dec 27 '18 at 15:34














4












4








4






Try this in your Python code:



import os
# if failed:
os.system("bash -c 'compgen -o default'")





share|improve this answer












Try this in your Python code:



import os
# if failed:
os.system("bash -c 'compgen -o default'")






share|improve this answer












share|improve this answer



share|improve this answer










answered Dec 27 '18 at 15:26









iBug

18.6k53361




18.6k53361












  • One can even append the partial argument being examined after default. Exactly what I was looking for.
    – bitmask
    Dec 27 '18 at 15:34


















  • One can even append the partial argument being examined after default. Exactly what I was looking for.
    – bitmask
    Dec 27 '18 at 15:34
















One can even append the partial argument being examined after default. Exactly what I was looking for.
– bitmask
Dec 27 '18 at 15:34




One can even append the partial argument being examined after default. Exactly what I was looking for.
– bitmask
Dec 27 '18 at 15:34


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53946961%2fhow-to-tell-complete-to-fall-back-to-its-default%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Monofisismo

Angular Downloading a file using contenturl with Basic Authentication

Olmecas