枝をマスターに結合する


ラボ3では、ファイル内のリンクが到達可能かどうかチェックするために使用される小さなコマンドラインツールの2つ以上の機能を実装する必要があります.私は、それが私のために厳しい週であったと認めなければなりません.内容は理解するのが難しいことではありませんが、私は自分自身にいくつかの厳しい選択をした.
私の友人は私に簡単な機能を選択して実験室を完了するように言った、出口コードなどを追加するように、私は引数として- jまたは- jフラグを追加することによってJSON出力を許可するよう求めているものを選択することを決めた.私はこの1つはまた、簡単なものであり、人生は難しい方法を介してレッスンを教えていると確信していた.
私が選んだ最初の特徴は、環境変数clicolorが出力の外観を決定できるようにすることです.これは簡単であり、この機能を実装するときに多くの苦労部分はありません.私は最初に問題をissue-8を提出し、このタスクを使用して完了するには
git checkout -b issue-8 master
この機能を完了した後、私はマスターにマスターブランチとマージブランチ発行8を変更し、詳細な変更をチェックすることができますhere.
git checkout master
git merge issue-8
ここでは楽しい/苦労の一部が来る.私が選んだ2つ目は、JSONの出力を- Jか-- JSONのような引数を渡すことで許可することです.私は、私が私のプログラムで他の旗を実行した時から、同様にこれが単純なものであると思っていました.しかし、私は間違っていました.私はissue-9と呼ばれる問題を提出しました、そして、私は私がSHOULD - 8をマスターに合併する前に、問題9のために支店をつくりました.私はこの選択をするために数日を後悔しましたが、これを早く降伏させたくありません.時々私は最後の分のプレーヤー、特に私は何かを完璧に行うことができます願っていますが、それを行うことの困難を実現します.- JやJSONフラグを追加したいなら、以前のロジックとの競合が多かった.私はJSONの出力フラグが欲しいなら、私の古い論理を使用している複数のファイルをサポートすることができません.私は、ちょうど新しいものを加えるために、この機能を削除したくありません.私は立ち往生した.私は他の方法をチェックし、ファイル名をフラグにしているのを見たので、プログラムを実行しようとすると、以下のような形式に従う必要があります.
go run urlChecker --file test/urls.txt -j
私はそれが好きではない.私は再び立ち往生した.数日間、私はエディターを開いて作業したくなかった.最後に、私は以下のように解決する方法を考え出しました.引数の最初の要素をチェックすることによって、それは私が知っているスマートな方法ではありません、しかし、これは私が見つけることができる最高です.
if os.Args[i][0] != '-' {

                //open file and read it
                content, err := ioutil.ReadFile(os.Args[i])
                if err != nil {
                    log.Fatal(err)
                }
                textContent := string(content)

                //call functions to check the availability of each url
                urls = removeDuplicate(extractURL(textContent))

                //check if there are flags for JSON output or not
                if *jflag {

                    checkURLJson(urls)
                } else {

                    fmt.Println()
                    fmt.Println(">>  ***** UrlChecker is working now...... *****  <<")
                    fmt.Println("--------------------------------------------------------------------------------------------------")
                    checkURL(urls)
                }
            }
デッドラインのデッドラインの延長のおかげで、今日はこの機能を完成させました.そして、私がブランチissue-9をマスターにマージしたとき、複雑な衝突で私を拷問することなく、自動的にマージされました.ありがとう、git!
私は自分自身のために設定した障害を克服するためにとても良い感じ、私は私のプログラムの他の多くのバグや不足があることを知っているが、私は言うし、それらを無視して移動することを選択し、移動します.
これがHacktoberfest月であるので、私は明日までに少なくとも1つのPRを終えなければなりません、そして、私はまだそれのために何もしませんでした.私はずっと心配していて、怒ります.
あなたが興味がある場合には、この研究室を通して解決された2つの問題の下のリンクをクリックしてください.
issue-8 : implementation
issue-9 : implementation